Why We Must Ration Health Care - <AUTHOR> http://www.nytimes.com/2009/07/19/magazine/19healthcare-t.html?ref=magazine&pagewanted=all <comment><USER2> If we're going to be making up numbers like "How much is a human life worth?" perhaps we should first make up some less dangerous numbers like, "How much is a tiny little pill worth?" It isn't the free market that came up with "54,000" dollars--and if the government is gracing a company with patent enforcement (really, a price floor), it may as well grace it with a price ceiling as well.

<comment><USER3> I commented on this on another forum as well. I'm a Canadian living in the USA, and the health care costs here are astounding.

As far as I am aware, we do not ration health care in Canada - if it is available and justified, we use it. Why? Because unlike the United States, the Canadian government doesn't pay $54,000 for a few pills. Yes, it's true, our public health system pays _far less_ (sometimes over 70% less) for the _exact_ same drugs from the _exact_ same drug companies.

The problem here is that there is no bargaining power in private health care. The providers don't really care how much they pay for drugs, because any cost is simply passed onto you, the consumer. As consumers you have very little recourse except to take it. A large, centralized health care system has the bargaining power _and_ the incentive to push drug companies for lower and lower rates.

Having now seen how much Americans pay for health care, and how little they get for their money, I have a hard time imagining why people continue to support private health care at all.

<comment><USER2> _how little they get for their money_

I fear that one of the things we get is to subsidize the world with respect to drug innovation. Pfizer, _et al_ , put up the money to develop drugs knowing that they can gouge unwilling customers in the USA (all health care buyers are unwilling--that's why health care isn't a free market).

If the US starts putting ceilings in, the one big side-effect may be a reduction in research.

<comment><USER4> The drug companies spend vastly more money on marketing than they do on research, and furthermore, the vast majority of the research goes into treatments rather than cures, because the former makes money and the latter does not.

The world would be better off without American drug companies dominating the market, even if it meant no Viagra.

<comment><USER5> Strange that you managed to skip the real cost sink for new drugs and medical procedures: testing. The marketing cost is a direct result of the huge cost of getting a basic research breakthrough moved all the way through the process to a safe and effective treatment that has FDA approval.

> the vast majority of the research goes into treatments rather than cures, > because the former makes money and the latter does not.

[citation needed]

This sort of conspiracy-theory bullshit is really annoying because it fails even the most basic logical analysis. If company A develops a treatment for a disease then it will be able to make more over the long-term than company B which develops a cure for a disease. But if company A develops a treatment and two years after it gets through testing company B comes up with a cure for that same disease then company A is going to lose a boatload of money. The only way this would work is if these companies were acting as a colluding cartel, and so far all evidence seems to indicate that the companies hate each other even more than we hate them.

> The world would be better off without American drug companies dominating the > market, even if it meant no Viagra.

I happily invite you to try to live the remainder of your life eschewing treatments developed by American drug companies. Viagra may make a nice whipping-boy for your tirades, but you do know that it was developed when stage 2 testing for an angina drug revealed its more popular side-effect, right? Pfizer did not set out to keep aging baby-boomers smiling, it just happened upon it while actually trying to cure coronary artery disease.

<comment><USER4> _This sort of conspiracy-theory bullshit is really annoying because it fails even the most basic logical analysis. If company A develops a treatment for a disease then it will be able to make more over the long-term than company B which develops a cure for a disease. But if company A develops a treatment and two years after it gets through testing company B comes up with a cure for that same disease then company A is going to lose a boatload of money. The only way this would work is if these companies were acting as a colluding cartel, and so far all evidence seems to indicate that the companies hate each other even more than we hate them._

It doesn't require a "conspiracy theory"; it's simple obvious fact: drug companies don't fund studies to develop and test drugs that won't be profitable. Tell me, why do you think they would pay hundreds of millions of dollars to develop and test a drug that won't make money? Your argument doesn't even make any sense; it _requires_ that drug companies do something that is financially illogical.

</comment></comment></comment></comment></comment></comment><comment><USER6> I don't want to start a deep thread on this, but I do want to point out that one of the advantages of a free market is that you only have to make these choices for _yourself_ , not for others.

You can select an insurance policy with rationing and a $10M lifetime benefit, and I can select an insurance policy without rationing but with a flat $1M lifetime benefit. The system we have now is not free because governments dictate what kind of policies medical insurers can offer, preventing consumers from making many of these types of choices.

When we decide that one size fits all, then the only choice is to have politicians and bureaucrats making these decisions for everyone.

When you make a decision about what your life is worth, that seems morally sane. When someone else makes a decision about how much your life is worth, that seems morally objectionable. Only free markets allow us to mostly avoid the latter choice.

<comment><USER7> If the national health plan is inadequate for the rich, a private system will continue to cater to them. The point of the national plan is to raise the floor.

<comment><USER6> Socializing healthcare drives up costs for everyone, pushing higher quality alternatives out of range for more people. Providers no longer compete on price, and consumers no longer factor price when selecting providers or moderating their use of resources. Combined, these factors will make (and already have been making) private alternatives unrealistic for all but the most wealthy, whereas prior to the government takeover of healthcare, high- quality private care was well within reach for (at least) the lower-middle class.

</comment></comment></comment><comment><USER8> I found this article really interesting but the author didn't talk about promoting wellness which seems to be a very taboo topic in the U.S.

I'm vegan (which reduces heart disease and cancer risks), I don't smoke and I exercise moderately. However the pool of risk into which I am assigned also includes people that eat large amounts of cholesterol, smoke and don't exercise at all.

In this article the author explores the topic of ranking treatments by their effectiveness in terms of QALYs, but a large amount of chronic and acute illnesses can be avoided by improved diet and exercise. As such any system of reform should look at a large piece of education and social change to encourage this.

<comment><USER9> It's true that you are right now subsidizing others health care and someone else will subsidize you when you're sick from something you didn't expect to get.

<comment><USER8> It's not about me subsidizing others, I understand how insurance works it's about disproportionate risk. There isn't an emphasis on creating change in society to encourage people to live lifestyles that needlessly expose them to risk, and burden our health system.

It's unacceptable to not give people treatment for acute problems. However no- one is talking about how a lot of those acute problems are made much more likely by some lifestyles than others.

If you buy car insurance you pay more or less based on your risk factors such as age, experience, points on your license, etc. If people choose to increase their risk for health issues than it seems unreasonable that the rest of us should have to pay for their lifestyle choices.

It also seems like any healthcare reform should attempt to encourage people to reduce unnecessary burden on the system. That might make it more possible to increase the amount available to spend treatments for people with terminal illness, because less our of GDP would be spent on treating unnecessary chronic or acute illnesses.

</comment></comment></comment><comment><USER10> I was a bit surprised that the article took so long to mention that everyone dies eventually. Lots of the rhetoric around this issue (e.g., "saving lives", "sentencing him to death") ignores that everyone is born with a death sentence.

(Sorry if this post makes you get all existential for a while. Seriously.)

</comment><comment><USER8> This is a really interesting article.

The author(1) looks at the reasoning behind healthcare rationing and suggests that it isn't as bad as it appears. Essentially he suggests that it's easy to find media-friendly stories of how rationing healthcare screws some hardworking soul, but that doesn't mean it isn't a good idea.

He look at how we already put a cost on life by limiting the budgets for things like consumer product safety standards, and the amount spent by transport agencies on safety. He argues there is an objective measure that economists have been using for years (quality-adjusted life-year, or QALY) to assess the cost-effectiveness of treatment and that the US government could use this for effective healthcare reform.

He goes on to point out that while it's easy to point out the places in universal health-care systems where people are excluded from treatment because the system tells them it isn't available, it's much hard to find when people self-deny treatment for fiscal reasons. He cites the case of a woman in the U.S. without health insurance who didn't take her blood pressure medication because she bought food for her family. As a results she died in the ER with a brain hemorrhage.

He also compares the system in the U.S. to those of the UK, Canada and Australia, and suggests that health-care reform in the U.S. would not have to be modeled on those systems but could even be modernized to a system that suited the American temperament better. The Australian system, for example, provides universal healthcare, but also allows citizens to buy into private healthcare schemes which do not restrict treatments.

This is just a poor summary and an extremely interesting article.

(1) Peter Singer is professor of bioethics at Princeton University. He is also laureate professor at the University of Melbourne, in Australia. His most recent book is "The Life You Can Save: Acting Now to End World Poverty."

</comment><comment><USER11> ...Why we must reform the current system without involving the federal government.

<comment><USER12> We've already seen how that works; the money is given to the shareholders of insurance companies rather than to the policyholders in need of medical care.

The government does not need to make a profit on healthcare, which is why people are turning to them. (Plus, we've seen this system work in other countries. The US will not be the first country to give everyone healthcare; it will be one of the _last_.)

<comment><USER13> Depends on how you define 'work'. Nationalized healthcare where tried has delivered better results in some dimensions, worse in others. Those countries often rely on medicines and procedures pioneered in the USA's more open medical markets; if we give up that role, who will pick up the slack?

</comment></comment></comment><comment><USER14> Flagged for registration wall... even thought it's the nytimes. If someone wanted to write a synopsis and write a commentary about this article, that would be swell.

<comment><USER15> <http://www.bugmenot.com/view/nytimes.com></comment></comment>


The Safety Boat: Kubernetes and Rust - <AUTHOR> https://msrc-blog.microsoft.com/2020/04/29/the-safety-boat-kubernetes-and-rust/ <comment><USER2> It's a bit weird to see "several weeks" of effort being described as a problematic learning curve. At least the blogpost makes it clear that the effort pays out hugely but still, "several weeks" is not rocket surgery. It's not learning Haskell or category theory! ISTM that they're just running with an assumption that most devs wouldn't be professional and committed to this, which strikes me as an unwitting gatekeeping attitude.

<comment><USER3> Go has a shorter time, and that's the measuring stick in this area.

<comment><USER4> Go _appears_ to have a shorter time, because you don't realize how much higher-level stuff you're just expected to do The Right Way, with no support from the language or libraries. So you're free to think you've finished learning Go, but then the actual learning begins.

<comment><USER5> Agreed. Worked with a senior who "learned go in a week" then faffed around for months (to prod! because he had the implicit trust of management because he was "a genius") deploying broken software with tons of concurrency bugs because he didn't know how to manage shared state.

</comment></comment></comment></comment><comment><USER6> > we caught a significant race condition

It is a data race, not a race condition.

> and which passed the race checker for Go

No, it is not. [https://github.com/helm/helm/pull/7820#issuecomment-60436062...](https://github.com/helm/helm/pull/7820#issuecomment-604360627)

There is a comment by issue author which is literally a go data race detector warning. Like "WARNING: DATA RACE".

<comment><USER7> Data races are a kind of race condition, no?

<comment><USER8> I wasn't sure. After a bit of research, this seems to be a debate [1]. Using the common definitions, it's possible to have a data race that doesn't cause a race condition. [2] It's also possible to have a race condition without a data race.

[1] [https://en.wikipedia.org/wiki/Race_condition#Data_race](https://en.wikipedia.org/wiki/Race_condition#Data_race)

[2] [https://blog.regehr.org/archives/490](https://blog.regehr.org/archives/490)

<comment><USER7> I would argue that "a data race that doesn't cause a race condition" is still, itself, a tiny race condition- just a contained one.

But you're right, this is just choice of terminology. :)

</comment></comment></comment></comment><comment><USER9> The bug they caught [1] is one of the reasons some languages require you to explicitly name your captured variables. You still could have typed that code in, especially if you started with a for loop and then made it parallel (fwiw, perform should have been named something clearly suggesting it was parallel), but you'd at least be confronted with "oh, you went from serial, local state to a capture. Still think it's okay to explicitly borrow that state from this scope?". Then again, that's the point of Rust here :).

Fwiw, it's too bad the commit message didn't say something like "Since we're doing delete on many resources in parallel, we need to hold a lock while updating errs/res.Deleted". The reviewer was also obviously confused at first.

[1] [https://github.com/helm/helm/pull/7820/commits/edb2b7511bcb9...](https://github.com/helm/helm/pull/7820/commits/edb2b7511bcb9dc3c03bad3da1099b7ebffefd0b)

</comment><comment><USER10> "For comparison, last week we caught a significant race condition in another Kubernetes-related project we maintain called Helm (written in Go) that has been there for a year or more, and which passed the race checker for Go. That error would never have escaped the Rust compiler, preventing the bug from ever existing in the first place."

I've heard people brag that Haskell is a great language because it's supposedly easier to write correct code.

Rust has this same reputation?

<comment><USER11> Yes, for much the same reasons. Pretty much any ML-family language has the same effect; just having proper sum types, polymorphism and first class functions (and _not_ having null) goes a long way to preventing huge classes of bugs.

<comment><USER12> The critical feature enabling fearless concurrrency is Rust's borrow checker though, something that the other ML languages don't have.

<comment><USER11> In practice you have fearless concurrency in every other ML language I know, because they're all immutable-first. It's true that if you wrote some code that mutated data then it wouldn't be concurrency-safe, but why would you do that?

</comment></comment></comment></comment><comment><USER13> > One of the biggest ones to point out is that async runtimes are still a bit > unclear. There are currently two different options to choose from, each of > them with their own tradeoffs and problems. Also, many of the implementation > details are tied to specific runtimes, meaning that if you have a dependency > that uses one runtime over another, you'll often be locked into that runtime > choice.

My understanding of how async/await works in Rust is that you can have multiple async runtimes in one Rust program. Is that not the case?

<comment><USER14> That is the case, but it's super awkward to use. Basically, you cannot await a tokio future on an async-std runtime, or an async-std future on a tokio runtime. You can, however, have both runtimes running at the same time, and use some form of message-passing to bridge them.

It's definitely easier to only deal with one runtime. Ideally, we should have some kind of abstraction to allow crates to support both runtimes (e.g. a trait that'd allow creating an async TcpSocket of the right "kind" for your runtime), but AFAIK this is not currently done.

<comment><USER3> > AFAIK this is not currently done.

That's correct; we're still working on these abstractions. It's the end goal that most folks have in mind, though.

<comment><USER15> Can you explain and/or link to the issues? I thought Futures were the abstraction that lets you choose a runtime?

<comment><USER7> Futures are part of the answer, and more specifically the way that the Wakers passed to Future::poll use dynamic dispatch to re-schedule the task.

Other major abstractions that are missing so far include async versions of the Read and Write traits, a Stream trait for the async equivalent of the Iterator trait, and perhaps a way to spawn new tasks.

This series of interviews covers these in more depth: [http://smallcultfollowing.com/babysteps/blog/2020/04/30/asyn...](http://smallcultfollowing.com/babysteps/blog/2020/04/30/async- interviews-my-take-thus-far/)

</comment></comment></comment></comment></comment><comment><USER16> I don't believe for one second that it takes just a couple of weeks to an average SE to be proficient in Rust.

<comment><USER3> It really depends on so many factors it's extremely hard to tell. We've brought folks at Cloudflare up to speed roughly that fast.

"average" and "proficient" are both very variable in that statement, imho.

<comment><USER17> They started with >1 Klabnik units and every person you bring up, it creates a larger pool of folks to lean on for support.

<comment><USER3> I can't take credit here, while I am around to answer questions, getting folks going is not my job.

It is true that we have a chat room with a bunch of folks, of which I'm part.

<comment><USER18> I wouldn't discount what gp is saying though - having an (or a few) experts on hand from the start, can help training the first new convert "the right way" and they can then mentor the next one and so on.

Even just by being availabletto answer questions or help with code review. Doing some pair programming sessions would probably be useful too.

<comment><USER3> Oh yeah, it's helpful for sure. I just don't want to take too much credit!

</comment></comment></comment></comment></comment></comment><comment><USER19> After reading this article, I'm excited about finding a reason to write a component in Rust and WASM. Can anyone recommended the best getting started guide for dipping your toes in the water? This article didn't have a link to anything that seemed appropriate for that goal.

</comment><comment><USER20> It is exciting to see Microsoft is pushing so many efforts into Rust and WASM.

The Rust onboarding experience is incredibly explicit and once things start to click and code compiles, you're on the train.

</comment><comment><USER21> I looked into WASM / WASI last week but couldn't find an answer to this anywhere: can I write a network service in Rust and compile it to WASM / WASI?

I know that wasmtime can execute a WASM module and give it access to a file system. Can that filesystem contain a socket that the WASM module can interact with?

<comment><USER22> Very curious as to why you would want to do that? If you want a network service, WASM does not seem to help with much, only complicate things?

</comment></comment><comment><USER23> Good article but it somehow suggests that because there is no garbage collection you would need to fight the borrow checker. This is not fully true because you could put your data in a Box (so that it is stored on heap instead of the function's stack) and you can wrap it in a mutex with reference counting (Arc+Mutex or Rc+RefCell), which roughly gives you what garbage collection does. Also cloning can avoid solving the borrow-check puzzle if you don't need a shared state. Of course you would not want to pack your code with Arc+Mutex or data copying if performance matters, but it's fine for a beginner to start with when writing Rust and then learn to do the optimized borrow version a bit later when needed.

<comment><USER24> It doesn't give the productivity that GC allows for writing GUI code and UI designers.

Imagine having JetPack Composer, SwiftUI, Qt designer, or WPF/UWP Blend in Rust.

<comment><USER25> Qt is actually a good example because C++ has a similar memory model to Rust (at least with respect to GC). The Qt solution was basically to give everything a "Cow" (copy on write) wrapper, and to use an event loop-based, somewhat manually-annotated GC for objects that want it.

Rust could totally do the same thing, and you could probably make it way easier to use than the mess that is Qt.

<comment><USER24> Having dealt with Gtk-rs, and their current solution being the clone! macro, I am not so sure.

Remember that not only is GUI development with proper tooling very interacting, instead of the FOSS alternatives of code-compile-check visually, there is also the whole eco-system of third parties selling component libraries, with no control how they get integrated into the component toolbox.

So whatever solution one comes up with,it needs to be more productive than forcing users to scatter Rc<RefCells<>>, or fix their code that broke compilation, just because moving a widget on the GUI tree invalidated the borrow checker assumptions.

</comment></comment></comment></comment><comment><USER26> It has a weird taste that Microsoft is preferring Rust over Golang considering that Golang is a Google thing.

Don't get me wrong, all technical arguments are correct and rust does have advantages for cloud software. But this also comes quite handy for MS. :)

<comment><USER24> VSCode support for Go, and some Delve improvements, were actually developed by Microsoft.

</comment></comment><comment><USER27> rust and kubernetes - post with mostly useless hype monsters united.

</comment><comment><USER28> > For comparison, last week we caught a significant race condition in another > Kubernetes-related project we maintain called Helm (written in Go) that has > been there for a year or more, and which passed the race checker for Go. > That error would never have escaped the Rust compiler, preventing the bug > from ever existing in the first place

While the possible security benefits of Rust is interesting in software like Kubernetes, it seems like this whole blog-post is an implicit RIIR proposal for the Kubernetes ecosystem from a Microsoft software engineer which isn't going to happen anytime soon.

> Rust has made great progress in the past year with its async story, but > there are still some issues that are being worked out.

On top of that, there are still many crates that aren't using async-await yet and most are not even 1.0, thus are not stable. I would not touch such crates if they are still immature or even unsafe.

Realistically, a Rust Kubernetes is possible but practically the effort of a production ready version is measured in years.

<comment><USER3> Kubernetes is an ecosystem. It doesn't need to be written in Rust for Rust components to play a part. Helm is not Kubernetes, for example, though your comment seems to blur the two. There are folks writing stuff to interact with the broader ecosystem in Rust. That's one of the interesting bits of networked systems! You can be heterogeneous with languages more easily when the network/api is the boundary.

<comment><USER29> Doesn't microsoft own helm now? Nothing is stopping them rewriting it in rust since it can easily interact with kubernetes via rest api

<comment><USER30> No. Helm is owned by the CNCF.

<comment><USER29> CNCF doesn't "own" anything afaik. If you look at maintainers list most seem to still belong to deis org which is part of msft now

<comment><USER30> CNCF hold the copyrights.

<comment><USER31> That is absolutely not true. The contributors to helm retain full copyright. No assignment or even CLA is used (only a DCO).

<comment><USER30> I stand corrected!</comment></comment></comment></comment></comment></comment></comment></comment>


Penn Jillette's Surprising Success as a Computer Columnist - <AUTHOR> https://tedium.co/2019/09/26/penn-jillette-pc-computing-magazine-columnist/ <comment><USER2> Over the years, I've really come to appreciate Penn Jillette as a public person. Always pops up with new interests and insights.

Believe it or not, something about his recent appearance on Rogan inspired me to cut down my drinking. Just the way he made a life of temperance seem aspirationally cool (and not just cool in a Christian rock sort of way)

<comment><USER3> LOL, "cool as Christian rock" would make for a nice expression!

</comment></comment><comment><USER4> Penn created Desert Bus...worst computer game ever.

[https://www.polygon.com/2013/7/10/4510388/why-teller- created...](https://www.polygon.com/2013/7/10/4510388/why-teller-created- desert-bus-the-worst-video-game-in-history)

<comment><USER5> That article credits _Teller_ only, in the title, and primarily, in the body. And Desert Bus was a _parody_ , not a game per se.

<comment><USER6> I would like to see an update of Desert Bus that uses all the latest 3D technology and satellite data like they put in flight simulators.

I mean, Teller referred to it as "a game that just reflects reality", so how real could you make it?

Recreate a real bus, but the most boring one possible.

...Desert Bus 2020

<comment><USER7> You could probably make a mod for American Truck Simulator VR.

</comment></comment></comment></comment><comment><USER8> I remember reading that column regularly. One in particular that I recall was a joke he proposed for the (then much less serious) airport security. If I'm remembering correctly, back in the day they wanted you to turn laptops on to show someone that it really was just a computer. Jillette proposed that maybe you should set your autoexec file start the computer saying something along the lines of "bomb detonating in 5...4...3...2...1" to freak them out...or it was something like that. Obviously pre-9/11\. You'd probably get detained at the very least (and maybe arrested) if you did something like that these days. Maybe I will be able to find that column again...

Edit: oops, the article mentioned that very incident at the end.

</comment><comment><USER9> This contextualizes the _Hackers_ cameo a little.

</comment><comment><USER10> Am I the only one who remembers logging into Penn's public BBS in the late 80s? Each screen would finish with "push any key to proceed to the next screen" followed by "except that one." Ancient history I know, but he's been into computers since the beginning of the PC was.

<comment><USER11> Was this the Jungle Lord BBS?

</comment></comment><comment><USER12> One of his buddies is Rob Pike.

<comment><USER13> I once got to have dinner with Penn and Rob Pike years ago. I had no idea at the time who Pike was. Looked him up afterwards (this was pre-Wikipedia) and felt like an idiot.

<comment><USER14> Everyone needs to be taken down a peg from time to time.

I knew someone who rode the Monorail in Seattle next to Jeff Bezos. No idea who he was, even after he introduced himself. Told others they "met someone named Jeff Bozos on the train."

Yep, that sounds about right.

</comment></comment></comment><comment><USER15> I love his "thurman" idea.... definitely going to use that the next time someone asks me for help with a computer problem. Ehh, maybe only in April since it's a little mean.

</comment><comment><USER16> The dial-up BBS Penn and Teller ran around 1990 was quite good.

</comment><comment><USER17> I was an avid reader of PC/Computing in middle school and vividly remember calling that fake ad number.

</comment><comment><USER18> I still feel like the duo just cashed in on wrecking the magic of magic by focusing on just revealing the mechanics of how it's done. Obviously, not a problem for dry adults, but there's an in between world of folks who suspend their disbelief and the fun of doing that for the rest of us.

<comment><USER19> "We demand to be taken seriously!"</comment></comment>


Machine Learning Exercises in Python, Part 1 - <AUTHOR> http://www.johnwittenauer.net/machine-learning-exercises-in-python-part-1/ <comment><USER2> Often this sort of material seems to be a collection of methods and understanding them, which is obviously important to being able to use them. However, I usually feel like the example problems are much cleaner and simpler than those I've encountered in business. I feel like there's this missing link between learning the methods and doing something that actually adds significant value for a business using machine learning. Perhaps it's just me or my field though.

I found that usually lots of work involved just transforming or examining data in relatively simple ways or using human expert decisions as to important threshholds for outliers. For example I could run an outlier algorithm on data and either the returned outliers were very obvious and could have been found using a manual query by knowing the business context, or it returned alot of false positive outliers that were useless for the business. Other times, we'd have a predictive model that was good for 95% of cases but would make our company look ridiculous on predictions for the other 5%, so couldn't use it in production-- and the nature of the data was such that we couldn't use the model for only certain value ranges.

Perhaps it was just the nature of our realm of business (telecom), and these approaches are more useful for others (advertising, stock trading, etc). Any experience with business fields where this stuff made a sizable impact for something they productionized in business they can share?

<comment> jim-greer Depending on the business needs, returning outliers can be useful even if there are a bunch of false positives.

I'm not a machine learning guy, but when I was at Kongregate, we had a problem with credit card fraud on our virtual goods platform. It wasn't serious fraudsters, just dipshit teens with their parent's credit card.

I had labeled data: historical transactions, with chargebacks, which I fed into Weka. I included all kinds of stuff we knew about the user. A simple rule-based classifier could pick out risky transactions, with a lot of false positives.

I made a simple tool for our customer service team to review these risky transactions. They would decide whether to warn the user, temporarily block them from buying or temp ban them, or permanently ban them.

This worked pretty well for us. The risk factors were new players, players spending quickly, and users who were dicks - as measured by how often others had muted them in chat, how often they swore in chat, etc.

As an aside, saying "fuck" or "shit" in chat wasn't very predictive of fraud - often those terms aren't signs of an abusive user, since they might just be saying "fuck, I suck at this game". What was predictive was users who said "Gay", "Penis", or "Rape". People who use those terms on a game platform are largely dickheads. So the score for abusiveness became known as the "Gay, Penis, Rape Score" or "GPR" for short.

<comment><USER2> Very cool, thanks! I didn't realize that in certain contexts, many false positive outliers wouldn't necessarily be such a bad thing, especially when they could be further refined with human interaction.

</comment></comment></comment><comment><USER3> I took that course from the pre-Coursera Stanford videos, when someone from Black Rock Capital taught the course at Hacker Dojo. Did the homework in Octave, although it was intended to be done in Matlab.

It was painful. Those videos are just Ng at a physical chalkboard, with marginally legible writing. All math, little motivation, and, in particular, few graphics, although most of the concepts have a graphical representation.

<comment><USER4> Spot on. I respect the depth of Ng's knowledge, but for 99% of people, knowing how to implement a linear regression algorithm is completely useless. Hardly anyone is trying to write a better ML algorithm; the rest of us just need to import code that was written by PhD's. So it's far better to understand higher level concepts like when you should use a certain ML method, what assumptions go into it, and generally how the underlying algorithms work.

<comment><USER5> Well, not if you want to be a data scientist, I think.

If you don't do a class where you build things from first principles, you'll never know how to tweak code you imported.

The linear regression algorithm he teaches is a stepping stone to neural networks, it's a neural network with no hidden layer and no nonlinearity. True, you would probably never use that in the field but you have to start with something simple.

After I took the Ng course and put a couple of algos built from examples in the course into production, I said, "oh, let me use R or scikit-learn instead of this hacky Octave." And off the shelf using default parameters, none of them performed nearly as well. You need to understand the algorithm pretty granularly to be able to then cross-validate and tune parameters.

The field is sufficiently new that for anything interesting, an off-the-shelf import from scikit-learn is not going to be anywhere near state of the art, you should have the ability to roll your own.

It would be interesting to re-implement Ng's examples and assignments in TensorFlow.

<comment><USER6> For people getting started with ML do you think it is more important to learn first principles and the "boring" math like this, or do you think it is important to give the learner some quick wins and keep the excitement and interest levels up?

<comment><USER5> Do what feels good for you :)

Ng is a fine place to start, you get some pretty quick wins, doing MNIST from first principles within a month or two. You just need to know or get comfortable with matrix multiplication. It strikes a reasonable balance between being rigorous and approachable for a committed student at an undergrad level.

Principles of Statistical Learning is easier [https://lagunita.stanford.edu/courses/HumanitiesandScience/S...](https://lagunita.stanford.edu/courses/HumanitiesandScience/StatLearning/Winter2015/about)

LAFF linear algebra is just starting [http://www.ulaff.net/](http://www.ulaff.net/)

Hinton's Neural Networks is offered in the fall [https://www.coursera.org/learn/neural- networks](https://www.coursera.org/learn/neural-networks)

For my money, I wouldn't do something like Practical Machine Learning in R, because I think you'll learn more R than machine learning. I wouldn't do the Udacity TensorFlow course because I think it assumes a lot of stuff you would learn in Ng's class ... I think Ng is a fine place to start.

</comment></comment></comment></comment></comment><comment><USER7> During the time of the original class, I don't think scikit-learn and spark were quite as mature. But perhaps Octave still enjoys a certain prominance in academic machine learning research. Matlab was also used for the recent EdX SynthBio class. And it just feels a bit archaic now, doing science in a gui on the desktop, instead of on a cloud server via cli ;)

</comment><comment><USER8> Related, the demos from Kevin P. Murphy's excellent ML book implemented in Octave [1] and (partially) in Python[2].

[1] [https://github.com/probml/pmtk3/tree/master/demos](https://github.com/probml/pmtk3/tree/master/demos) [2] [https://github.com/probml/pmtk3/tree/master/python/demos](https://github.com/probml/pmtk3/tree/master/python/demos)

</comment><comment><USER9> Very nice. I took the class twice and think it is easiest to use Octave, but for after taking the class these Python examples might help some people.

</comment><comment><USER10> Seems like to compensate for day to day weight/water fluctuations one would need to track the _trailing_ activity and food data for a period of days prior to the data analyzed. I'm thinking 3-5.

.2 lbs/kilos lost is mostly a rounding error. Our weight could fluctuate that much on a daily basis from the amount of salt consumed.

<comment><USER11> I think you clicked on the wrong thread, you probably wanted to post here:

        > Machine Learning and Ketosis

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

</comment></comment><comment><USER12> Ng's machine learning class is excellent, but the main thing holding it back is its use of Matlab/Octave for the exercises. A Python version (with auto- grading of exercises) would be a huge improvement.

</comment><comment><USER13> Can I find same in R?

<comment><USER11> Try

[https://www.edx.org/course/applied-machine-learning- microsof...](https://www.edx.org/course/applied-machine-learning-microsoft- dat203-3x)

[https://lagunita.stanford.edu/courses/HumanitiesSciences/Sta...](https://lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winter2016/about)

> This is not a math-heavy class, so we try and describe the methods without > heavy reliance on formulas and complex mathematics. We focus on what we > consider to be the important elements of modern data analysis. Computing is > done in R. There are lectures devoted to R, giving tutorials from the ground > up, and progressing with more detailed sessions that implement the > techniques in each chapter.

</comment></comment><comment><USER14> What is the best learning resource for gaussian process (kriging) using Python?

<comment><USER15> Have you seen Gaussian Processes for Machine Learning [0]?

The entire text is freely available online at the mentioned URL.

[0] [http://www.gaussianprocess.org/gpml/](http://www.gaussianprocess.org/gpml/)

<comment><USER14> That is classical resource for GP, but using Matlab. I'm looking for something practical using Python.

<comment><USER15> I haven't used it, but you may want to explore GPy [0] if you haven't already.

[0] [https://github.com/SheffieldML/GPy](https://github.com/SheffieldML/GPy)

<comment><USER14> I never understood what is the difference between GPy and GP in sklearn. I'm using the latter, but still do not understand most of parameters that go into this model.

</comment></comment></comment></comment></comment><comment><USER16> Lets talk about about how much Michael I. Jordon taught Andrew Ng what he knows about machine learning and AI.

<comment><USER17> He's the Michael Jordan of machine learning, after all.

<comment><USER18> Aye

</comment></comment></comment><comment><USER19> [https://www.coursera.org/about/terms/honorcode](https://www.coursera.org/about/terms/honorcode)

I will not make solutions to homework, quizzes, exams, projects, and other assignments available to anyone else (except to the extent an assignment explicitly permits sharing solutions). This includes both solutions written by me, as well as any solutions provided by the course staff or others.

<comment><AUTHOR> None of the material in these posts could be used directly to complete assignments for the class. I suppose someone could attempt to "back-port" some of the Python code to Octave, but if you're going to that much trouble it's probably easier to just solve it in Octave in the first place.

<comment><USER20> I took the course a while back and most of the assignments were just straight copying pasting from the pdf or translating some math formula into octave and never more than 10 lines of code. It's so spoon-fed already I don't see why anyone would want to cheat by porting it from python.

<comment><USER15> Having taken the myself, I couldn't agree more.

The class is meant to _introduce_ one to machine learning. As such, the problems are usually fairly simple and one wouldn't need to _cheat_ unless all one is attempting to do it to solve those without looking at either the leture videos or slides.

(Translating from Python to Octave might, on the other hand, require more effort in comparison to implementing the solutions in Octave.)</comment></comment></comment></comment>


Show HN: Sh-Helpers – Some Commands for Common Shell Tasks - <AUTHOR> https://github.com/uxcn/sh-helpers

<comment><AUTHOR> Just a set of commands that implement some common patterns working with files (paths in general) in a shell.

I actually wrote these in bash before I rebuilt my laptop (the original scripts are still on github somewhere). I ended up using them on almost a daily basis, so I thought I'd try to make them into something other people could use.

Any feedback is welcome.</comment>


Show HN: Cheers, our "like" button for the real world - <AUTHOR> http://www.chee.rs

<comment><AUTHOR> Hey all,

We've been working on this app for the last few months as a pivot on top of our last app idea (gri.pe). We distilled out just the positive aspects of the good/bad reviews of places, and added the ability to "cheer on" random things and people you know on top of places.

On top of that, we focused on building out a social network inside the app, and building in a really simple user score called "cheerfluence". People can build cheerfluence by either posting in the system, or can increase someone else's cheerfluence by clicking the "cheer" button on someone else's cheer. This works really well to motivate people to connect to other people and interact with their content in the system.

I'm really proud of how the app turned out, and we've got some excited users in the system. I'd love to hear what the HN folks think too.

</comment><comment><USER3> Great site, great design, great video.

Still don't get it. Is it Instagram + Foursquare? There is a lot of iteration on this idea of feedback on and sharing about places and the return is getting less and less interesting to the consumer. Without a network of people to see what I "liked" in the app, why would I want to like anything? Isn't the purpose of a "like"--to show that I enjoyed a place?

<comment><AUTHOR> We're definitely trying to build an instagram-like app, in that people will just share things they like in their daily life (people, places, things - <USER2> necessarily just businesses) through cheers, and push them to Facebook/Twitter/other networks for their existing social networks to see.

Bootstrapping an app like this without your friends in the system is definitely tough, but we've tried to encourage a model where people will interact with other strangers in the system by trading 'likes' (we call it 'cheering on') on each other's content. You can give 'cheerfluence' to other users by just interacting with their content.

This turns out to work fairly well - lots of people in the system are following other people in the system, not necessarily those who they need, who just happen to be in the system and are putting content in.

</comment></comment><comment><USER4> This is vaguely reminiscent of jotly (<http://www.jotly.co/>), except not tongue-in-cheek.

</comment><comment><USER5> Beautiful design through and through: from web site to the app. Really nicely done.

<comment><AUTHOR> Thanks! Our designer, Kai Gradert (<https://twitter.com/#!/kaigradert>), deserves the credit for creating a beautiful app. He's a UI/UX god.

</comment></comment><comment><USER6> I don't get it. How will this company make money?

Or does it not matter because it looks like everyone working on this project has a ton of money already from previous successes (congrats btw).

<comment><USER3> Apparently there now exists a category of social app that is not expected to make money. Not sure if this really falls in to said category but...

<comment><USER6> I guess I don't understand why I'd download any of those apps and use them. They aren't going to be around in 6 months because either they've pivoted to the next big thing or the founders have been absorbed into a talent acquisition. Heck, the current incarnation is a pivot in itself!

</comment></comment></comment><comment><USER7> Very nice app. Just curious as to the distinction of this among similar apps such as Stamped and Oink?

<comment><USER8> I wouldn't suggest you Oink your girlfriend, or Stamp your pet... they deserve better. :)

Also, the ho-hum is not a Cheer.

Finally, some people oink (wanna be critics / raters), but all people love. Cheers lowers the barrier to expressing love and appreciation publicly, and for those who do, it's a very different feeling / feedback loop than having simply rated something.

That said, Oink / Stamped are very good for ranking / rating things and as such both should give Yelp a run for it's money.

</comment></comment><comment><USER9> I only barely understand the appeal of twitter so take this with a grain of salt, but it seems really narcissistic to inject yourself into your friends' wedding with something like this. It's _their_ wedding; for them it's a life- altering milestone, for you it's 5 hours of friends and family and a hangover the next day (unless of course you're extremely close, but then 'Cheering' them is beyond tacky and impersonal). So when you 'Cheer' your friends' wedding you're making it about you and your relationship with the ceremony and the couple (i.e. "Yes. I have decreed this to be a wonderful event from my perspective and thus I shall Cheer it. Like and retweet if you agree it's wonderful."). You're no longer there in the moment for the experience and for the people who are getting married, you're there to let everyone know _your_ perspective on the events in the moment they happen.

The difference between Cheer and taking a photograph with your point-and-shoot is that the photographs are uploaded after the ceremony has happened and therefore it is "let's remember what happened on this day" rather than "this is what _I_ thought of this particular moment, like if you also agree this was a particularly wonderful moment".

Sorry if this is out of line, it's a very pretty site. This is just something that stuck out to me.

<comment><USER10> You're definitely right that the motivation behind a tweet, or a "like", or in this case a "cheer" is narcissistic. However, I don't think that makes a difference. Your observation is just that, an observation. Psychologists have made observations of this nature about human behavior already. If there was no common, narcissistic behavior amongst humans, then the word "narcissism" would never have been invented. Furthermore, we would never have developed a concept of narcissism at all.

With that said, we all do narcissistic things. Narcissism is only a problem when it gets out of control. That is why we have expert psychologists and psychiatrists to take care of this, and define what is and is not an acceptable level of narcissism (in the DSM-IV definition for narcissistic personality disorder)

Sure, there are reasons to be for, or against narcissistic behavior. If you like, you can personally hate narcissism every time you see it. But if you are so quick to jump the gun and call this novel little app "narcissistic" and declare you don't like it, because you must hold yourself to some higher moral standard, then you are probably very, very blind to much of your own narcissistic behavior.

We are all narcissistic. Some of us are more narcissistic than others, and some of us are more aware of our own personalities than others.

The bottom line is that regardless of the motivation for "cheering" (liking, or any other form) something, the end result is likely going to be fun times clicking shiny buttons for everyone, so just live it up.</comment></comment>


Facebook sued over 'like' button - <AUTHOR> http://www.bbc.co.uk/news/technology-21411622

<comment><USER2> This is getting ridiculous by the minute. Being a software developer, I fear sooner or later I'll be a target. I feel it's just a matter of time.

But worst of all is the feeling of helplessness of it all: it's a big dog fight. Small ones either have to run with tail between legs (pay up, give up, throw work away) or fight to eventually get crushed (by the outcome or by being out of financial breath in the process).

I apologize for the negative rant, but frankly, as I re-read it, it really looks more realistic then pessimistic.

<comment><USER3> Lobby. Really. Be the guy who writes letters to his congress person and senator. All the time, every time. Form groups. Stop complaining about it on an internet forum, get together in real life, and talk to people. Not "random like-minded techies". Go meet with your senators or congressmen. They take meetings from constituents. You'll probably end up talking to an LA or something, but if you _all_ do it, it'll start to have an impact. Tell them exactly how much money you are spending, and how much time you are wasting, worrying about this stuff. Form lobbying groups, and advocate.

There are other effective things than the above, it's just an example.

One of the reasons I became a lawyer, instead of just a software engineer, is because it was clear to me, even 15 years ago, that patents were going to destroy our industry.

It was also clear that the majority of software engineers would do one of three things:

1\. Pretend it did not matter.

2\. Dismiss the threat until it became huge.

3\. Complain about it on Usenet (now "random blogs, internet forums, and social media sites").

It took a long time to get to the point it is now. It will, realistically, take a long time to get to a better point. Yes, everyone has a quick fix solution, like "ban software patents" or "pray the federal circuit/supreme court saves us from years of bad policy and legal decisions". These are all long shots. They may happen. But it's all short term plays. You need the long term play as well, in the background, in case these don't work out.

People have this weird idea that the content industry/etc simply backed up a truck of money to congress people and got the laws they wanted. Instead, they spend 20+ years meeting with politicians, advocating their position, forming lobbying groups, and slowly winning politicians over. They showed (mostly fake) economic benefit, had studies done, kept harping them over and over. Certainly they donated, but if you think it was simply because they gave some congressman some money, you don't understand how things get done.

If you want to stop software patents, you need to take this long term approach as well. Don't get me wrong, I hope the supreme court reigns in the federal circuit as well. But if you want real change, it often takes time. At least in the current world, there is a 0% chance this change will happen if the only action is to write comments about news stories on internet sites.

<comment><USER4> I find your tone incredibly condescending. What average person has the time, energy, and expertise for all of this? What you propose doesn't sound practical to me at all. Take this statement:

> they spend 20+ years meeting with politicians, advocating their position, > forming lobbying groups, and slowly winning politicians over.

This is exactly what I'm talking about - what average working person with a family can compete with an army of full time lobbyists whose job it is to meet with congress, take them out for meals, and do whatever else they do to get what they want?

Doing all this is a lobbyist's full time job. They're backed by various industries with seemingly unlimited wealth. Compared to the average person's net worth, their funding may as well be unlimited. What average person with a full time job and family could ever compete with this in his or her limited off time? How practical and useful is it for us to flood congress with letters, emails and faxes "all the time, every time"? I don't think this is a useful strategy at all!

And what's wrong with "complaining about it on an internet forum"? Sometimes it's nice to vent the frustration and hopelessness to people who understand. I certainly do. There's nothing wrong with this. Sometimes complaining is all we CAN do right now.

The only practical solution I have found is to fund those whose full time job it is to be watchdogs and to fight back, like the EFF. That's about the best I can do for now. I haven't been shown another reasonable action that I can take that would be truly useful.

<comment><USER3> It's fine to find it condescending, it is in fact, mildly condescending.

But it's condescending because of statements like this: "This is exactly what I'm talking about - what average working person with a family can compete with an army of full time lobbyists whose job it is to meet with congress, take them out for meals, and do whatever else they do to get what they want?" and "And what's wrong with "complaining about it on an internet forum"? Sometimes it's nice to vent the frustration and hopelessness to people who understand. I certainly do. There's nothing wrong with this. Sometimes complaining is all we CAN do right now."

So let's start with the first one. I first suggested you write letters, and take an occasional meeting. Lunch is fine. Heck even telephone is fine if you really don't have the time. Average working people get lunch, and have telephones. They can also write letters. So i find your complaint disingenuous.

Second, lobbyists are not backed by industries with unlimited wealth. They aren't magical boogeymen. This is just another way you are trying to make it seem like there is nothing you can do, so you shouldn't feel bad about complaining instead of doing something. Most lobbyists are also not full-time on anything. They are firms, they have a lot of engagements. Maybe some very small subset is full time on strategy or PR for a few months of a campaign, for some really big client, but past that, nope. It's like paying a lawyer, not paying a personal assistant. Most tech folks are pretty well off. They could probably afford to buy enough lobbyist time to have your lobbyist take the meetings above if you wanted. This would be less effective than doing it yourself, and less effective than what I suggested.

You then say "How practical and useful is it for us to flood congress with letters, emails and faxes "all the time, every time"? I don't think this is a useful strategy at all!" It is absolutely practical, and absolutely useful. Congressmen live and die by statistics on what their constituents want, contrary to popular belief. They track letters, faxes, and phone calls on issues from constituents. They are briefed on issues and constituent viewpoints probably every morning. If you flooded them all the time, every time, it would make an actual impact. They care less about lobbyists than direct constituents. I'll point out that you didn't actually refute my point, just again went into "throw up my hands and pretend i can't do anything" mode.

As for the second larger point about complaining, there is no hopelessness except the hopelessness you are creating by pretending you can do nothing, and trying to make it seem okay. It's _never_ the case that all you can do is complain. Never.

I already gave you a reasonable action. You apparently believe your action in giving the EFF a few bucks is truly useful, and "that's about the best you can do for now". So let me ask: Has it stemmed the tide of patents? Has it won a court case? Gotten a law on patents passed? Why do you expect this to change if you gave them a few more bucks?

Not to belittle the work of the EFF (some of my good friends work there, and they do what they can), but they should be the support. They are also a fairly general digital rights org. When congressmen all jump up and down and say "oh shit, all my constituents are yelling about patents, what the hell should we be doing?", that's when the EFF is useful to help. Besides that, finding or providing cheap legal representation for the guy who is getting screwed, or lending a voice here or there. Past that, if the EFF had a billion dollars, nothing would change in the current state of the world of patents. Money for the EFF or lobbyists is not the missing piece of the puzzle here to effect real change.

You know, its funny. My job puts me in a position where I can see what the money at least one large tech company spends on lobbyists goes to. I also get asked to help with these plans from time to time. You know what these lobbyists spend a lot of their time doing? Trying to get tech folks to write letters, email, call, or meet with congress people. That thing you claim isn't effective or practical. The last time I asked a high powered, well monied lobbyist what the lowest effort, highest impact thing tech folks could do to win these political fights would be, his answer was simple: "Show up"

FWIW: I am condescending not because I think I am better than you, but because _you_ are better than this. Do the simple and practical things. Do the things you haven't tried before. If you want to complain, I certainly can't stop you, and venting is a wonderful thing to do. But don't act like you can't do anything, and don't act like doing nothing, helps.

<comment><USER5> _You know what these lobbyists spend a lot of their time doing? Trying to get tech folks to write letters, email, call, or meet with congress people. That thing you claim isn't effective or practical._

Amazingly interesting insight. Thanks, DannyBee, for weighing in on this and other issues. Your comments are really worth reading.

</comment></comment></comment></comment></comment><comment><USER6> Tim Berners-Lee should have patented "text pages over a network," dude would be a bajillionaire.

<comment><USER7> Also the World Wide Web would never have happened because who would want to marry themselves to a platform encumbered by so many patents?

<comment><USER6> So you're saying that patents can be destructive to markets???

Man, I wish someone in the US government agreed with you on thatOH WAIT <http://research.stlouisfed.org/wp/more/2012-035>

Not that a single report means anything for policy, I just saw this on HN a few days ago and thought it was relevant to that point.

</comment></comment></comment><comment><USER8> I too would like to patent the emotional response to seeing something that brings you joy or amusement.

<comment><USER6> I'm sorry, this violates my patent on making jokes about patents, I'm going to need some licensing fees for that...

<comment><USER9> someone should patent Patent Trolling. oh wait, so much prior art.

<comment><USER10> IBM is trying to. No really.

EDIT: Here you go lazy downvoters: [http://news.priorsmart.com/ibm-files-the- patent-troll-patent...](http://news.priorsmart.com/ibm-files-the-patent-troll- patent-tCcWG/)

</comment></comment></comment></comment><comment><USER11> The article is pretty vague, it would be nice if they had more details on these two patents.

<comment><USER12> Here is the original complaint (pdf)

[http://www.rembrandtip.com/pdf/2013-02-04RembrandtSocialComp...](http://www.rembrandtip.com/pdf/2013-02-04RembrandtSocialComplaint.pdf) (With Facebook and AddThis as defendants)

Here are the two patents in question

<http://www.google.com/patents/US6415316> (1998, Method and apparatus for implementing a web page diary)

<http://www.google.com/patents/US6289362> (2001, System and method for generating, transferring and using an annotated universal address)

And here is a patent supposedly in the hands of Facebook right now, that references one of the above patents. This is now used to claim that Facebook knew of the patents, and willfully infringed them.

<http://www.google.com/patents/US7907966> (2011, System and method for cross- platform applications on a wireless phone).

<comment><USER13> When will these stupid patents die out?

<comment><USER14> Now that all of the tech companies have invested billions in them and would logically want to protect their investment and competitive advantage, I don't ever see it ending (since of course corps control government). If we're lucky someone will get an iPhone banned in the US and then all hell will break loose.

</comment></comment></comment></comment><comment><USER15> The guy who invented the "submit" button is lawyering up as we speak ...

<comment><USER16> As should the guy who invented clicking.

<comment><USER17> Microsoft once tried to patent the double click. (good that this one failed).

<comment><USER18> Circumvention: the triple click.

<comment><USER19> Not a circumvention, since triple-clicking requires double-clicking.

<comment><USER20> Should have just patented the single click then, as a catch all...

</comment></comment></comment></comment></comment></comment><comment><USER21> What should a 2-3 person startup do if they find themselves in such a situation (i.e. get sued by a patent troll)?

<comment><USER22> This makes me wonder if there is a market for patent troll insurance. Pay a small monthly fee and get legal protection or money to hire your own counsel in the event of a lawsuit. It seems to be a pain point that small startups worry about, since it can be pretty deadly to a busines, even if they are innocent.

<comment><USER7> Ah, you mean what Intellectual Ventures was supposed to be?

Pay a small membership fee to have access to their "technology" as well as immunity from being sued with regard to their patents. It's not unlike the mob, though, having to pay a 'protection fee'.

</comment></comment></comment><comment><USER23> I'm planning to get patent for the keyword 'main' then go and sue every programming application that uses 'main' :P -- patents are ridiculous

</comment><comment><USER24> We herd you like patents dawgs, so we sued you over the like button.</comment>


Show HN: Tap2Tab - Instantly Sends A Webpage From Computer to iPhone/Tablet - <AUTHOR> http://tap2tab.com

<comment><AUTHOR> Hi HN! I just threw this together in the last few days -- inspired by the TC Disrupt Hackathon.

I just got myself an iPad recently, and I really wanted to be able to send the page I was reading on my computer to the iPad. I didn't find anything that was easy and quick so I made it myself.

This is a "rough draft" of a web app. There are a few rough edges and browser quirks. I wanted to see if anyone else would use it. If so, I will put some more work in to cleaning it all up! Let me know what you think.

<comment><USER2> Some quick feedback about the landing page:

* There's a problem with the header. It's distracting right now. Here's what it looks like when I scroll the page in Chrome 12 beta: <http://awesomescreenshot.com/05ddvrz35>

* The footer seems completely unnecessary and is only taking up valuable screen space.

* Try to find better pictures for the landing page. It may not sound rational, but the seeing the clearly old PC with a floppy drive makes me feel that this is outdated. And the white iPad looks weird to me. Especially on the whitish background. Try using a picture of the black iPad to add more contrast. Also, see if you can find a picture without the distracting glossy overlay.

* Try to move it higher above the fold. Use <http://browsersize.googlelabs.com/> to visualize where the fold is for what percentage of people on the internet.

* Maybe try adding a login dialog? Not all users will remember the url, even if it is obvious. But many are familiar with what to do on a login page.

Some questions that I thought of while browsing it:

* How does it support more than one webpage?

* How is this different from Instapaper?

<comment><AUTHOR> Thanks a ton for the feedback, I really appreciate it.

It doesn't support more than one page. If you pull something up on the computer and decide you want to go outside and read/watch it on the iPad, you Tap2Tab it.

The difference between Tap2Tab & Instapaper is that it works for YouTube, Netflix, PDF documents, ect. There is no reformatting of content, it redirects you to the page just like a URL shortener.

</comment></comment></comment><comment><USER3> I had a similar idea cloned from chrome2phone for iOS at <http://whopushed.me> and the associated App Store app.

Never got around to creating the bookmarklet since uptake was low and I find going to the website simple enough.

The integration is very nice though!

<comment><AUTHOR> Thank you

</comment></comment><comment><USER4> I don't have any tablet, but this is something I've wondered about -- getting something to tablet without having to email myself the frikkin URL (that's not how it works, um, does it?). I've asked two people with tablets to try it,

<comment><AUTHOR> Very cool! Thank you.

</comment></comment><comment><USER5> I've been using QSQRCode to send data to my phone: select, send to Quicksilver and display QR code for the phone to scan. Tap2Tab sounds like an interesting approach, though, and I'm curious to see how much it could do.

</comment><comment><USER6> What if someone else uses the same URL I did?

For example: i.tap2tab.com

<comment><AUTHOR> They'll have to choose another.

</comment></comment><comment><USER7> This is handy, sort of the reverse of Later Locker (which I use all the time for sending links to myself from my iPad): <http://laterlocker.com/>

</comment><comment><USER8> Good stuff Rob, simple & easy to use. This was always a minor pain point when looking at a google map on my laptop and wanting to view the same map on my iPhone.

<comment><AUTHOR> Ooh thank you! I hadn't thought of using it on Google Maps yet but that is a really good use case!

</comment></comment><comment><USER9> this is neat. been spending a lot of time thinking about content shifting. It wasn't instant for me, but is this using websockets?

<comment><AUTHOR> Nah, nothing fancy. Just a few lines of PHP and a meta tag refresh xD

</comment></comment><comment><USER10> What does this offer me that Chrome2Phone doesn't already do. I can send links, YouTube videos, my clipboard, etc with a lighter interface and no personalized url.

<comment><USER11> Second for Chrome2Phone. Its awesome and I use it surprisingly often. I do wish there was a Phone2Chrome..

<comment><AUTHOR> I hadn't seen Chrome2Phone, the choice is yours xD -- I guess I'll focus my efforts on iOS.

<comment><USER11> Sorry I came off a little rude.

Its interesting and I can see where you're going with this. I do highly recommend checking out Chrome2Phone. Its the most frictionless implementation of this idea, you click the extension and the page opens on your phone, super simple super easy. If you can get Tap2Tab to be just as simple you could have something really useful for iOS devices. I would consider making this into a Chrome extension, I never have my bookmark bar visible.

<comment><AUTHOR> I didn't find your comment rude at all. I appreciate the feedback, and I am really excited some folks signed up and seem to like the tool. Stay tuned for the chrome extension - I like that idea a lot.</comment></comment></comment></comment></comment>


I own a semi-popular fake Facebook thread maker.  How should i monetize it? - <AUTHOR>

Some time back I started a fake Facebook thread tool.  It quickly hit reddit and other sites and got popular.  I thought the traffic will die out soon, but more than a year later i'm still getting 50K-150K pageviews/month.<p>Is there any easy way to make 50-100$/month from this site ? <comment><USER2> Micropayments to remove a small watermark?

Some people would never pay, so making the watermark huge and ugly wouldn't be a good idea as you would lose a large amount of new users coming to you through WoM from pleased, existing users.

… but a small yet visible watermark, removed for $1?

I'm not sure about the possible ROI, but it's a thought.

</comment><comment><USER3> Don't think there's an easy way to monetize this, no. Paid links to other, monetizable Facebook-related services?

</comment><comment><USER4> plaster it with adsense - what else? - and see how much it makes.

<comment><AUTHOR> I tried that some time back. It did not work. I also the got the feeling that this was dragging my other sites' adsense earnings.

So I took it off.

<comment><USER5> I've had that experience too: a site with low quality for AdSense that would drag down the entire account.

</comment></comment></comment><comment><USER6> What is a fake Facebook thread tool?

<comment><AUTHOR> A tool to create those fake Facebook threads. Something like this - <http://i.imgur.com/KutR7.png></comment></comment>


Linux 4.0 - <AUTHOR> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=39a8804455fb23f09157341d3ba7db6d7ae6ee76 <comment><USER2> Windows Threshold

OSX Yosemite

Linux "Hurr durr I'ma sheep"

\-----

In some ways it's comforting that such an intergral part of all of our lives doesn't have to be branded and packaged in a way that's stylistic. It's nice knowing that this truly is a community project, and that it's an effort of people - not some megacorp who needs to market it to the highest amount of people possible.

Great work everyone who worked on this.

<comment><USER3> To be fair, you're comparing apples (ha!) and oranges…

"Windows Threshold/XP/9/10", "OS X Yosemite" are comparable to "Ubuntu", not Linux.

NT & -Darwin- [Edit: You're right LukeShu, XNU] are the Linux equivalents, they're the names of the kernels and not supposed to be consumer friendly.

<comment><USER4> Don't forget the distro version names! Ubuntu 14.10 'Utopic Unicorn', Debian 'jessie' (the Yodeling Cowgirl)...

<comment><USER5> Fedora 17: Beefy Miracle always leaves a warm feeling in my heart.

<comment><USER6> Fedora recently ditched naming the versions themselves the community can name if it they wish. [https://lists.fedoraproject.org/pipermail/advisory- board/201...](https://lists.fedoraproject.org/pipermail/advisory- board/2013-October/012209.html)

<comment><USER7> > Fedora recently ditched naming the versions

Thank fucking God. I loathe version names. Place these in release date order: Lion, Snow Leopard, and Tiger. Now, place these in release order: 10.6, 10.7, and 10.8. Which do you find communicated more useful information?

<comment><USER8> Why not have both?

I find Intrepid Ibex, Gutsy Gibbon, Feisty Fawn, Hardy Heron, etc. to be quite sortable.

<comment><USER9> I always forget which Ubuntu name I'm using, even though I remember the number :-/

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> For those confused about the codename, it's explained in this post by Linus: [http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g...](http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c517d838eb7d07bbe9507871fab3931deccff539)

> .. after extensive statistical analysis of my G+ polling, I've come to the > inescapable conclusion that internet polls are bad.

> Big surprise.

> But "Hurr durr I'ma sheep" trounced "I like online polls" by a 62-to-38% > margin, in a poll that people weren't even supposed to participate in. Who > can argue with solid numbers like that? 5,796 votes from people who can't > even follow the most basic directions?

<comment><USER11> I found that poll :)

[https://plus.google.com/+LinusTorvalds/posts/TvigQqA9m3w](https://plus.google.com/+LinusTorvalds/posts/TvigQqA9m3w)

<comment><USER12> > Test post, please ignore.

If, on the Internet, there is a forum with two posts, one titled "WARNING: READ THIS IF YOU VALUE YOUR LIFE, PROPERTY, AND THE CONTINUED EXISTENCE OF YOUR SPECIES. ALSO, IMPORTANT TAX INFORMATION." and the other titled "Test post, please ignore", the first would have a few views, and maybe a couple posts.

The second would be a veritable Times Square.

Torvalds got precisely what was coming to him.

The next version will be code named "Warning: Do Not Click".

<comment><USER13> I assumed it was a reference to the infamous reddit 'test post please ignore':

[http://www.reddit.com/r/pics/comments/92dd8/test_post_please...](http://www.reddit.com/r/pics/comments/92dd8/test_post_please_ignore/)

which was the most upvoted post on reddit until about a year ago (a fairly significant achievement, given the enormous growth of reddit in the intervening years).

</comment></comment></comment></comment><comment><USER14> Notable features from Linux Weather Forecast by Jonathan Corbet:

\- Basic support for applying patches to a running kernel, allowing the application of fixes without the need to reboot the system. There is still work to be done to get to a fully featured live-patching system, but the foundation is there in 4.0.

\- The remap_file_pages() system call has been removed. Emulation of its functionality remains, though, so applications should not break.

\- The kernel's support for large nonvolatile memory devices has improved considerably.

\- The lazytime mount option allows for more efficient and accurate tracking of file access times.

\- The kernel address sanitizer (KASan) is an important new development tool for ensuring that the kernel is not accessing memory that it shouldn't.

</comment><comment><USER15> The end draws closer: [http://i.imgur.com/eZdoFUW.jpg](http://i.imgur.com/eZdoFUW.jpg) (See the kernel version just below the t-800 box in the center.)

<comment><USER16> > v4.1 is going to be one of the bigger ones –Linus Torvalds, > [https://lkml.org/lkml/2015/4/12/178](https://lkml.org/lkml/2015/4/12/178)

</comment></comment><comment><USER17> The announcement: [https://lkml.org/lkml/2015/4/12/178](https://lkml.org/lkml/2015/4/12/178)

<comment><USER18> Gotta love Linus, he always makes great ML posts.

</comment></comment><comment><USER19> Phoronix article covering new features/improvements in 4.0: [http://www.phoronix.com/scan.php?page=news_item&px=Linux-4.0...](http://www.phoronix.com/scan.php?page=news_item&px=Linux-4.0-rc1-Kernel- Released)

</comment><comment><USER20> 4.0? Why would anyone use an OS that's six versions behind Windows?

<comment><USER5> I wouldn't be surprised if Linus pushes for 5.0 after 4.9 this time. And then maybe after that you realize the major version number is meaningless when you will never break backwards compatibility (like with web browsers) and drop it entirely.

So maybe Linux 30 by 2020?

<comment><USER21> Web browsers break backwards-compatibility all the time. They use the major version number bump to justify it. I gave up trying to keep a Firefox extension I wrote up-to-date since the API changed every 6 weeks. I think it's settled down a bit since the early days, but the reason they bump the major version number is so they can break things.

<comment><USER5> I meant more in terms of they don't break the standards they implement, they just add more on, but yeah mechanically its a misnomer.

<comment><USER21> Gotcha. Outside of extension devs, it probably doesn't matter. But I figured I'd mention it.

</comment></comment></comment></comment></comment><comment><USER22> Поехали! [http://en.wikiquote.org/wiki/Yuri_Gagarin#Quotes](http://en.wikiquote.org/wiki/Yuri_Gagarin#Quotes)

</comment><comment><USER23> Kinda feels like projects where the version number is effectively meaningless except for "equals" or "greater than" comparisons should just use a yyyy.n scheme so you can at least tell at a glance how old a thing is.

</comment><comment><USER24> Linux has an EXTRAVERSION, but no INTROVERSION???

</comment><comment><USER25> Where's the new name?!

<comment><USER26> "NAME = Hurr durr I'ma sheep"

<comment><USER27> GNUs are SHEEPLE wake UP

NO GNUS ARE GOOD GNUS

<comment><USER28> A HURD of sheep

<comment><USER29> Coming soon to Canonical: Punny Penguin

</comment></comment></comment></comment></comment><comment><USER30> Quite a Milestone!

<comment><USER5> The irony is that, like 3.0, this release does not actually do anything different from normal releases.

Linux will never break backwards compatibility enough to justify a major version bump, so the major version is effectively meaningless.

<comment><USER31> Or maybe they'll pile up digits on higher positions. Linux 04.00, Linux 04.15; Linux 14.30 (new design).

</comment></comment></comment><comment><USER32> I don't understand the joke in calling it that.

It just seems petty.

Is there something I'm missing?

<comment><USER33> The linux kernel names are not meant for marketing; they're in-house only.

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

<comment><USER32> This is the answer I was looking for. Funny, I've been a long time linux user, and never knew about these internal names.

It does seem like a slight against our Ubuntu, Debain, Mac OS, Windows et al. comrades.

Without any context, "Hurr, durr, I'm a sheep" seems rude to users and administrators of every OS distribution. With this context, it seems like maybe not a very funny addition to a long running joke.</comment></comment></comment>


Readability, Meet Android - <AUTHOR> http://blog.readability.com/2012/03/readability-meet-android/

<comment><USER2> can anyone compare this to read it later (<http://readitlaterlist.com/>)?</comment>


A Django website that took (a lot) more than 20 minutes. - <AUTHOR> http://lukeplant.me.uk/blog.php?id=1107301641 <comment><USER2> I'm so sick of hearing how apps and websites were built overnight. I'm a programmer and I know just how much work goes into building a site and all its little details.

There's a great Mixergy interview about how Digg wasn't built in a day either. Owen Byrne, the guy who built the original Digg site, talks about how much work it really took.

[http://mixergy.com/pr-lies-destroy-your-understanding-of- how...](http://mixergy.com/pr-lies-destroy-your-understanding-of-how-business- really-works-owen-byrne-digg/)

<comment><USER3> What usually happens is that the programmers think about the project long before starting to work on it. I have 3 ideas that at some point I'll start implementing, and right now I'm gathering bits and pieces of information for all three.

And when it comes the time to do it, the core functionality can be done really fast if you have good tools, since you are prepared for it.

What separates the good projects from the bad ones though are final touches and the features that are expected by the users - those weird business logic additions that aren't properly defined. These take an incredibly long time to do. Not to mention deployment and scaling which is always a fun ride.

And of course, there's always that intern/junior that has to work on something, and he's given the task of helping you, leaving a mess in any module he touches ... and then you have to clean-up the code, just to keep your sanity.

<comment><USER2> Oh it's the business logic that drives me crazy. Lets face it, most web code is ABC simple, rarely is there innovation in web code.

Show this, hide that. Click this, open with ... a fade. ABC

It's the business rules that each line of code is trying to accommodate that takes the longest to work out. Thinking out the ripple effects on the future is the time killer.

</comment></comment></comment><comment><USER4> This is an interesting breakdown of technical debt as you'd actually see it in a real, production site. Crufty systems to rip out and replace with frameworks, databases which were being shared across applications, data migration (I feel your pain), etc.

On the plus side, after you get good at using a framework, you tend to accumulate a lot less debt. The downside is that your first project with a framework probably incurs more debt than you would otherwise, although if "otherwise" is a using a home-brewed flat-file DB you might come out net positive anyhow. ;)

I've ripped out almost 70% of the code that was in the first commit for the Rails version of the Bingo Card Creator over the years. (I did not know you could serialize an array in the database, so instead, I wrote it to a ... home-brewed flat-file DB...)

</comment><comment><USER5> "I'm quite pleased with my results! I'm not sure if I can really give a less biased view. I normally find with programming that by the time I've finished a project, I'm already quite unhappy with the quality of the code, and I have a list of 'cleanup' TODOs, or even 'rewrite this large chunk of it' TODOs, which usually never get done. By the time a few years have passed, I'm downright ashamed. So far I don't feel this way about any of the code -- let's see how long that lasts!"

This is exactly how i feel most of the time. When I look back at my code which was written a year back, I think it is downright ugly. Sometimes I feel I haven't learned enough. I should be able able to write clean code which will remain clean. Other times I feel that it is a good sign that I'm feeling this way because that means that I have learnt something over the period and i'm constantly learning.

</comment><comment><USER6> I've been writing a series of experimental prototypes recently; and I've noticed that as I try to add things to an existing prototype (instead of starting something new), it becomes incredibly painful. I actually end up spending almost all the effort on trying to make it fit with the code I've already written.

Reusing code seemed like a sensible thing to try to do (you should reuse code!), and the existing code itself was actually pretty clean - just not designed for what I wanted to do next.

Therefore, I've decided in future to try out making prototypes that are _strictly_ prototypes. If I want to try something new, I'll make an entirely new prototype. And see how that goes. At the very least, it will probably be more fun. :-)

I mention this here, because of the article's description of "honeymoon code" vs. "maintainable code".

<comment><USER7> You need to make your functions smaller and more generic...

This is something I keep fighting against myself on, but it makes my code more portable...

<comment><AUTHOR> Making them generic is key to code reuse, smaller is sometimes only to improve readability.

As soon as you see a pattern appear in your code, something idiomatic that you've done a couple of time with small variations it's high time to abstract out a library function.

Do that a couple of times and you'll see the size of your functions diminish as if by magic.

</comment></comment></comment><comment><USER8> This article was written 3 years ago. I'm guessing Django has improved quite a bit since then. Maybe this would have been a bit easier if done today?

</comment><comment><USER9> I do think his estimate of 30/40 LOC is low - though perhaps he means an average over the "life" of a project.

But in an hours coding I'd hope to push 100 LOC.

<comment><USER10> It's not 'perhaps what he means', it's one of the central points of his article. He doesn't 'perhaps mean' it, he spells it outright -

"I've spent a total of 240 hours on the project, or about 6 working weeks." This is his total time, coding, or otherwise.

"In terms of code there are about 2000 lines of template code, 6000 lines of Python, and 900 lines of migration scripts (done in Python). [...] Given those figures, it looks like I was reasonably productive -- averaging over the complete time that comes to about 37 LOC/hour, which is reasonable."

I.e. 8900 LoC / 240 hours = 37.08 LoC/hr. That's 37.08 LoC/hr where hr is hr of total time spent on the project.

His estimate is low if perhaps you'd read the article.

<comment><USER9> That still seems incredibly low (and yes I did read and I still think it's low).

Picking the most recent example from my projects..

This project has lasted 2 weeks so far (12 days). About 15 hours according to my commit logs - so that is roughly 24 hours work including debugging. It's almost feature complete (I reckon another 5 hours total to release it).

After I scrap all the js libraries and all my drop-in code the lines I have written in that time comes out as 4940.

That's 205(ish) LOC per hour.

So, yes, his is a low figure (though my figure is easily the maximum I can manage - this was a productive project; I would say 100 is my average)

EDIT: I will agree with his stuff about honey moon period. I would say the bulk of that code came out in the first 10 hours. Half of the code was written on wednesday in a 5 hour coding session (and 3 hrs of debugging).

Perhaps it is to do with how I work and the fact I am well practiced in this language & framework. I sit and write code solidly for 3 or 4 hours. Then spend and hour debugging all that code - that is a good workflow for me but I know others hate that approach! (we regularly argue over it in the office :P)

If you read he learnt a lot of things as he went along - and include them in the metric. So that lowers the value somewhat. If your working with code your well practiced in and using a framework to build on then it's definitely a lot faster.

The main point I was making is his metric seems bad - and the value he comes out with very low. As he bases his whole point on it I think it weakens his fairly good argument.

That said I know a couple of programmers who could slam out and debug a 6000 line web app in a long weekend; and it would mostly work.

<comment><AUTHOR> What environment are you doing this in ?

<comment><USER9> windows, coding PHP.

You can see the code in entirety too when I get back from Holiday :)</comment></comment></comment></comment></comment>


Ask HN: A variant approach on Basic Income - <AUTHOR> Basic Income is a hotly debated issue, especially on HN (I understand that YCombinator are doing their own experiments there) so I would like to discuss a variant that (as far as I know) has not been discussed by anyone yet.
(feel free to provide links or other pointers to places where this has been already discussed, if available).
The idea came to me while reading the story about Borderlands [1]: one of the commenters explained that Minimum Wage might be ok for a single person but will make it hard for them to provide for any dependants.
So here is my proposal: what if Basic Income was provided only for people below a certain age, say from day 1 to their 18th Birthday? Alternative: should we also provide it for people above a certain age? Like 65 or 70?
Would this be more sustenable in terms of how to finance it? What type of effect could we expect on society, internal demand, job market, demographics?
[1] https://news.ycombinator.com/item?id=14344060 <comment><USER2> _one of the commenters explained that Minimum Wage might be ok for a single person but will make it hard for them to provide for any dependants._

The point of Universal Basic income is that it's _universal_. Everyone gets it, including children (although maybe not the same amount as adults). There's no reason why someone should find it hard to provide for their dependents - the universal basic income is providing for them.

<comment><AUTHOR> I am aware of that, but I am also a bit concerned about the financial sustainability of the "normal" UBI and also, to be honest, a bit concerned about two things:

\- when discussing UBI many comments hint at completely replacing any kind of welfare with it (I am European so my concept of Welfare is a bit different from the prevalent US view on the topic) \- I have a (maybe irrational) opinion about work being something most people will need to have some sort of focus in their life, so I am a bit torn about BUI as something that would just allow people to live (albeit modestly) without any kind of extra work during their productive years.

<comment><USER2> _something that would just allow people to live (albeit modestly) without any kind of extra work during their productive years._

You see it as "allowing" them to do that. I see it as "enabling" them to do that.

As a race, we've spent tens of thousands of years having to toil practically every day, doing arduous work just to eat, and now we're at a point where perhaps we don't actually need to do that any more. We could have members of society _choosing_ whether they work or not, or just to do things they enjoy, or even just to sit around doing _nothing_ all day. That's amazing. That's exactly the society I want to be a part of.

Frankly, if someone chooses to do nothing with their life it has no impact on you, so why do you care?

<comment><AUTHOR> I admitted already that my own preference could be irrational, and I am not trying to impose my own viewpoint on the matter.

Regarding "why I think work is a very important element of our own lives", see my own submission on HN from a few months ago: [https://news.ycombinator.com/item?id=8280379](https://news.ycombinator.com/item?id=8280379)</comment></comment></comment></comment>