hacker news with inline top comments    .. more ..    13 Jan 2016 News
home   ask   best   3 years ago   
Knuth: Computer Programming as an Art (1974) paulgraham.com
90 points by theideasmith   ago   27 comments top 10
locacorten 1 hour ago 1 reply      
I lived the day to see YC giving credit to PG for an article written by Knuth.

What's next? Symphony No. 9 by Paul Graham? Theory of Relativity by Paul Graham? The Bible? :-)

proc0 41 minutes ago 0 replies      
Great read. Indeed programming is not a 'gentle art', I would say it's a 'brutal art'.

There was an article outlining a continuum between art and science, where engineering was somewhere in the middle. Art is the least rigorous of them, while science has the most rigor.

Being a science enthusiast, reading on quantum physics, evolutionary biology, etc., I've learned more/less how scientists think. It has a lot to do with coming up with not only good explanations, but explanations that are extremely hard to vary. Explanations that risk falling apart if you try to change any aspect of it. This together with a mountain of evidence supporting said explanation, makes for good science.

Art on the other hand, is arguably vague by definition. Art that is doesn't leave room for interpretation is often bland. Art also has a huge human component, whereas science tries to do away with it.

In my opinion, programming can easily be both an art and a science. There's no need to constrain it to either one. On one hand, you have the mathematical theory of information, describing a hard-to-vary explanation that is backed up with great math(s). On the other, you have an infinite set of tools from which you can craft whatever your imagination is capable of coming up with. Programming, having its foundations in mathematics, leverages its infinite potential, and with it the possibility of creating both works of art, and scientific facts. It is this universe of possibility that takes only the toughest of minds to venture and explore.

henrik_w 33 minutes ago 1 reply      
On the subject of art and programming, I really like how Fred Brooks described it in "The Mythical Man-Month":

The delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of imagination. Yet the program construct, unlike the poets words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself.

I wrote more on this subject in "Why I Love Coding" http://henrikwarne.com/2012/06/02/why-i-love-coding/

kazinator 2 hours ago 3 replies      
Art can occur when the same person is both the source of the requirements for the program, and the implementor of the program. Much of the art is in the coming up with the specification: that is the concept in the art. The concept can be skillfully rendered into code. Concept + skillful rendering = art.
xixixao 1 hour ago 0 replies      
I take for Science the natural and social sciences (see Wikipedia article on Science). In other words, Physics and all its sub divisions. In this respect, programming is not a science. CS is mostly a sub division of Math (also, not a science). Programming is a mix of engineering (that is finding an optimal solution given a set of known tools to a non-universal problem) and art - anything that allows for creativity in the forming of a finalized product. Most engineering disciplines have an aspect of art in them, but programming is perhaps the most artful thanks to the incredibly wide range of close-to-optimal solutions. But programming is also one more thing: a social process, the process of organising people and their work (which is neither science, nor math, nor art).
rdtsc 2 hours ago 2 replies      
> Meanwhile we have actually succeeded in making our discipline a science, and in a remarkably simple way: merely by deciding to call it "computer science."

Well not only that but we actually stuffed two misnomers in there. It is not really a science, and it is not really about computers. Chip design, graphics, storage, input devices is more about computers as such.

crimsonalucard 2 hours ago 0 replies      
Knuth has a very abstract and fuzzy definition of "Art." Personally I feel "art" possesses a more concrete definition.

When the most efficient solution to a problem isn't known we rely on art and design to fill the void. When the path to the most efficient solution of a problem is known we rely on "science" or technical procedures to deduce the best possible answer.

For many problems in programming we know the best possible solution. However, for most of the apps we build to solve problems in the name of entrepreneurship or business, no efficient solution is known. In fact, in these situations, the problem isn't even clearly defined. When we don't know the "best" solution we use intuition and creativity to come up with a solution that we only intuitively know to be somewhat efficient.

Programming isn't the only area where this occurs. All of engineering relies on art and design to solve problems where the most efficient solution isn't known.

For example, what is the shortest distance between point A and point B? The answer is a straight line. There is no design or art as part of this solution because a straight line is mathematically proven to be the most efficient possible answer. The answer, in essence, was calculated and thus no "art" or design was involved. Utilizing art in this case would be as pointless as drawing an artsy squiggly line between point a and point b.

Now, allow me to modify the problem to make it a little more complex. Instead of calculating the shortest path between two points, how do I find the most efficient way to transport a person from point A to point B?

The most efficient answer is mind boggling complex, you have to account for the personalities and definitions of "efficient" for every possible person you can transport, energy, speed, obstacles etc etc. There probably is a most efficient solution but know one knows it.

Here, where it is very hard for us to deduce the most efficient solution we rely on Art.

With "art" we can come up with multitudes of solutions to the problem on how to transport a person from point a to point b. Cars (thousands of different models), flying vehicles (thousands of different innovations as well) are two possible examples out of many forms of locomotion. The reason why there are so many models/solutions is because we can never concretely determine which "solution" was the most efficient.

This is what we mean when we use the word "Art" in the context of "The Art of Programming" or "The Art of combat." We are essentially describing a problem domain space that is so complex our pathetic human minds our reduced to a sort of aimless wandering (aka creativity) to come up with a solution that isn't even the most efficient one.

I use the word aimless because we iterate over our solutions endlessly in an endless quest to arrive at the best solution. The "quest" is essentially endless because our "path" is aimless. We will never ever create the most efficient OS or iphone app of all time because we don't even know what the hell that even means. Instead we are cursed to iterate endlessly over our programs creating version after version for all eternity.

The majority of problems in the real world rely on a bit of "art" to arrive at a solution. In fact, most of the problems where an "efficient" solution is known are just theoretical conjectures that only exist in an idealized virtual universe.

I see this as a good thing. Art is fun.

twobuy 2 hours ago 0 replies      
I'm only 3 months into coding but I've already heard about Knuth's books. This is a great intro to his writing, I'd like to read more.
dschiptsov 1 hour ago 1 reply      
If we define an art as strive to reach an aesthetic global optimum, by balancing form and meaning (syntax and semantics, if you wish, design and implementation) with attention to every single detail, then [some] programming is an art without a slightest doubt.
ajdlinux 2 hours ago 2 replies      
I believe the title should be "Knuth: Computer Programming as an Art"...
The Japanese Art of Self-Mummification damninteresting.com
18 points by journeeman   ago   1 comment top
fsloth 26 minutes ago 0 replies      
With all respect - this feels to me like the most extreme kind of extreme sport. Absolutely pointless, absolutely deadly - and totally awe inspiring.
People Call Me Aaron medium.com
609 points by marsvoltaire   ago   84 comments top 14
froo 4 hours ago 2 replies      
My brother committed suicide after facing a prison sentence. It is a really difficult thing that when you meet people (even for years afterwards, it still happens to this day 13 years on) and they just want to talk about the circumstances behind his suicide and the things that get him to that point. Having people consistently drag it up for you really hurts at times.

I also have experienced the name-calling thing. My mother, at times, ends up calling me by my brother's name. I think that is the hardest thing at times, because clearly she's not over it (he shot himself with her in the next room).

I really do feel for Noah. It's not something you ever truly get over (here I am posting about it 13 years on), just something you just got to learn to deal with. I found that for me, I had to find a healthy coping mechanism/hobby to get through those first few years. Life still goes on man.

cooper12 9 hours ago 0 replies      
Wow, what a touching, yet sobering story. It sounds almost as if people used him as a stand-in for Aaron. The tragic part of it is that the only way he could really get away from it is to either disassociate himself from Aaron and the people who know about him (kinda hard considering Noah seems to be involved in the tech field also) or to become even bigger than Aaron (a daunting task which shouldn't be necessary). I wish Noah the best of luck establishing his own identity.
zephod 9 hours ago 5 replies      
This is so sad. I wonder if Noah has considered moving abroad for a bit - in my experience, very few people in the London tech scene know who Aaron Swartz was, or if they've heard the name they will struggle to remember the story behind it. Maybe people will disagree, but I don't think the story had quite the same cultural resonance outside the USA.
jere 9 hours ago 1 reply      
Whoa. I met Noah at a very small game dev conference last May. I had no idea who he was until this moment, nor was I aware that anyone else did, but I could be wrong. It's interesting to think how that interaction would have changed, probably for the worse, if I had known more about him beforehand.
grownseed 5 hours ago 2 replies      
Obviously not of the same gravity, but a good part of my childhood was spent being called by my big brother's name. Family, friends, teachers, you name it. It's a hard one, because I think my brother is an amazing guy, and evidently so do other people, but it's ultimately belittling.

A math teacher, who had my brother for a single year, called me by his name for the whole three years I knew/had her. By that point, it's not just offending, you just start thinking your identity is just a proxy for the other person's, it's downright depressing.

My brother and I look very much alike, to the point that to the untrained eye we would look like twins at certain points of our lives. Although around my teens, this had some unfortunate consequences, such as girls my age I fancied who would meet my older brother and see a better physical version of me in him, and forget about me. I can't really blame them, but again, not exactly uplifting.

It isn't an issue at all these days, we have very different lives and personalities, we live thousands of miles away, but mostly, my brother is alive and well, and I guess, not famous ; but it's definitely had an effect on me when I was younger.

I guess I came here to relate, but the truth is I can't even begin to imagine the added constant reminder of a deceased relative, no matter how amazing they used to be, or maybe even particularly so. The fact that those reminders are people who, by and large, had nothing remotely resembling a relationship with the person in question, especially not of the kind siblings would, must be incredibly hurtful.

I feel deeply for Noah and I genuinely wish he can affirm his own identity, and that people will make an effort to do so after reading his touching story.

sosuke 8 hours ago 1 reply      
My family before me experienced sibling death in a similar prime. I only know about it as a child of one of the surviving siblings but it haunted that entire generation. Knowing all I do about how it affected my parent in their younger years I will say that you're very strong to claim your own identity. Do not use your brother as a yardstick to measure the worth of your own life because they cannot measured to each other and don't let anyone else do it to you. Your post made me very happy Noah Swartz and hope it leads you down a better path than the one I've learned of.
6stringmerc 10 hours ago 2 replies      
Very interesting reflection on identity in the modern world as it relates to family, fame, and trajedy. I have to say that the situation does feel very familiar to me based on some other readings and historical examples. I'll explain. The most prominent correlative is with respect to Hunter S. Thompson. He created Raoul Duke as a character, and Gonzo Journalism as the method by which to report and embellish/comment on the world.

I view it very much as a 'persona' and, in my opinion, most all highly intelligent individuals - especially those in the public eye - must have one (or quickly develop one) in order to cope with the needs of being self-confident to carry forward with beliefs and goals and values, yet also be able to "put down the microphone" and live a wholesome, personal life. This is the elements of celebrity and notariety that are weaved into the essay, and it's very touching to see the care expressed toward himself, his brother, and trying to understand and work through the behavior of outsiders. Aaron, from what I saw and recall, had a very prominent persona. It's pretty much 'immortality' in the Achilles sense.

To me, and this is just from one musician and writer who has embraced using pen names and personas for years, this article is very useful to give some thought and consideration to how, generally speaking, US society and culture has decided to value 'authenticity' and 'transparency' to the point of being a little bit intrusive. I'm possibly under-stating it, but I also don't want to get too far away from what the essay is conveying to me. It's an affirmation of a perspective I formed and was guided to form as a youth in the arts: Notariety, whatever its source, has significant baggage.

[1] https://www.youtube.com/watch?v=r31hV_BPFf0

Kluny 9 hours ago 4 replies      
How is it possible for anyone who knows who Aaron is to not know that he's dead? How could they possibly mistake his brother for him to the extent of thoughtlessly calling him the wrong name?
nether 9 hours ago 6 replies      
SF tech party culture sounds awful. It sounds no less superficial and dehumanizing than the worst of celebrity adulation in Hollywood.
eloy 10 hours ago 2 replies      
The best read about Aaron that I've read in the past few days.

I had a weird feeling while reading this, I don't really know why, after having read quite a few articles already.

Thanks, Noah!

droopybuns 4 hours ago 0 replies      
Seeking community at Defcon is kind of a misstep in my opinion. It feels an awful lot like Highschool to me.
ddingus 5 hours ago 0 replies      
He's taken a great first step. By getting it all out there, he can carve his place in the world out again.

It's gotta be damn tough to lose a sibling. To lose one that so many were connected to... I have no words.

Other than, nice to meet you Noah. Hope to get to know you better and that your life improves. We don't all suck, and most of us mean well most of the time too. Draw what strength from that you can and keep doing what you are doing.

It's important that the world knows Noah. You seem like a pretty great guy actually. Take care.

That's pretty much how I feel about it.

nicoles 9 hours ago 1 reply      
He's also responsible for one of my most favorite twitter bots!https://twitter.com/hard_to_yelp
whoahhhh 4 hours ago 0 replies      
Lodash 4.0.0 is out github.com
206 points by bpierre   ago   55 comments top 8
krat0sprakhar 7 hours ago 0 replies      
Kudos to John-David Dalton for making such an awesome lib and being such a positive force behind it for so long! I've reached out to him multiple times on Twitter and he's always been quick to help!

He should definitely write a post on how he stays productive and motivated to work day-in and day-out on one project. Really inspiring!

johnhenry 6 hours ago 1 reply      
I remember reading sometime ago that the creators of LoDash strived to maintain drop-in compatibility with Underscore, and that if breaking changes between the two libraries were to occur, an announcement would be made. I can't find the initial statement, so I wonder if the developers are still attempting to maintain this?
overcast 7 hours ago 4 replies      
I think it's time to check out a jquery alternative. My recent projects are basically only using deep copies and some semi-complex selectors. lodash + querySelector should cover pretty much everything at this point.
insulanian 2 hours ago 0 replies      
Whatever happened to underdash (https://github.com/underdash/underdash)?
HNcow 7 hours ago 3 replies      
Not sure if this is a dumb question but I haven't been able to find an answer anywhere.

I currently use underscore 1.8.3. Can I just swap lodash in, or is refactoring involved? I know it's a fork, and I want to move over, but was curious if anyone know off the top of their heads if a lot of work as involved.

painisRelative 8 hours ago 5 replies      
why drop bower support damn it!
mkoryak 6 hours ago 3 replies      
oh nice, they dropped ie9 support!

oh no, so many breaking changes that I cant use it!

possibleNoob 5 hours ago 0 replies      
How does this compare to lazy.js?
Cisco Must Be Held Accountable for Aiding Chinas Human Rights Abuses eff.org
227 points by DiabloD3   ago   76 comments top 12
tim333 4 hours ago 4 replies      
It seems clear Cisco knew their systems were going to be used against Falun Gong. Leaked Cisco presentation:

"Cisco Confidential 57 2002, Cisco Systems

The Golden Shield Project:

Public Network Information Security Monitor System

Stop the network-related crimes

Guarantee the security and services of public network

Combat Falun Gong evil religion and other hostiles

[Note: Statement of Government goals from speech government officalLi Runsen]"

Then again it's going to be hard to show legally they were doing much more than helping China enforce it's laws. Still at least the embarrassment factor may put companies off from getting involved in this stuff.

I hope the EFF case makes them release documents related to it.

faddat 1 hour ago 0 replies      
I'm strongly in support of holding cisco accountable for this in any way, shape or form possible.

....but if we do that, where will we get routers with backdoors for us.gov from?

delinka 6 hours ago 3 replies      
Governments of the world have to care about human rights abuses before someone with teeth can prosecute. I sincerely doubt anyone in power (elected, appointed, hired) in any government cares at all about random humans at distance. Especially if caring would affect their own quality of life.
guelo 6 hours ago 0 replies      
OK EFF, you convinced me, I'll donate.
mc32 3 hours ago 3 replies      
It's not the people who provide goods who should be prosecuted but the people who carry out the actual bad who must be held to account. On the other hand, China [or any country with baddies, perh including our own] is a sovereign government and beside some economic pressure I don't know there is much more we should be able to do. Unless Cisco violated some commercial embargo or egregiously violated export law, etc.
pjmlp 1 hour ago 0 replies      
It is in cases like this that I remember all those stupid code of conduct trainings that companies like Cisco make their employees go through.
mtgx 1 hour ago 3 replies      
Glad this is finally coming to light. Every time I would mention it here that Cisco has built backdoors in its routers specifically to aid the Chinese government and later other governments as well, I would get downvoted. Cisco standardized the "lawful intercept" protocol for routers at the IETF, people! What did you think that meant?!

The US government (hopefully after it elects a saner president) and other supposedly democratic countries as well, need to come together and 1) make it clear that you can't sell tools which you know are being used for mass censorship and mass surveillance that then leads to torture or assassinations and whatnot (I know, this definition will need to be cleaned up a bit), and 2) punish the companies that still disobey those rules severely. It's time for the democratic countries to act the way they say they are.

x5n1 7 hours ago 3 replies      
Okay hold the US government for aiding in Saudi Arabia's human rights abuses.

I don't know whether to cheer for things like this, though I do support works for improving human rights. For the most part they seem to be drops in the ocean of human rights abuse. And I don't know if it's doing anything to stop those abuses or just a control mechanism to make us feel like we are accomplishing something... while the biggest abusers and their supporters continue scot-free.

ommunist 3 hours ago 3 replies      
Don't blame the sword, blame the holder.
EGreg 1 hour ago 0 replies      
I can't believe this is happening today. I know that ideologies use humans to build organizations and do battle with each other, but I thought we were past the Stalinist purges and atheist totalitarianism. This makes anything the US does to Muslims pale in comparison. How does China grant freedom of religion to five religions only?
Nutmog 6 hours ago 1 reply      
While I do think human rights are a good idea, the focus seems to be carefully selected to as to make "bad" countries look bad and western countries look good. For the US, it's OK to kill people as long as you do it a bit randomly in a war instead of being too targeted, or as long as you do it to foreigners not your own citizens and you try to kill them quickly instead of using deliberate torture. If you do use torture, it should be psychological (solitary confinement) rather than physical. It's also OK to kill people by leaving them in an unsafe environment surrounded by killers (poor neighborhoods) without providing enough security or enough income to buy their way out. It's also OK to kill them in the name of economic progress by allowing cars to drive at speeds which regularly cause death. Somehow we accept these things as tolerable or even necessary but we don't realize that classic "bad country tortures dissidents" human rights abuses are equally necessary - they do the same thing wars do - secure the positions of governments against people who want to take them over. Even the name "dissident" is misleading - If we called Falun Gong members "traitors", that might make them sound like bad people and engender less public sympathy.

Cartoon about our patriotic biases: http://www.washingtonsblog.com/2015/03/glorious-leader-wicke...

That said, it doesn't stop human rights abuses being wrong too.

StLCylone 6 hours ago 2 replies      
So should you since that device you are reading this on was most likely sourced there. Likely sourced by underpaid workers in virtual enslavement to Foxconn or some other component manufacturer. Not to mention living in a toxic environment so we can all have our electronic toys.
Stripe now supports ACH payments stripe.com
375 points by craigkerstiens   ago   162 comments top 32
spenczar5 11 hours ago 9 replies      
When I last worked on a billing system about three years ago, we looked so hard to find an ACH provider. There was just nothing out there. This is an enormous advance.

The problem we had was that we issued moderately large invoices monthly - they could be from $1k to $50k. We wanted to be paid quickly, so we tried to convince our customers to pay by credit card (through Stripe) and enable automatic payments, but we had trouble when customers would bump up against credit card limits.

So, for our bigger clients, we were relegated to asking for checks to be sent by mail. This meant we couldn't automatically charge customers every month, and instead needed to badger them to send their check - all of a sudden, we needed an accounts receivable team. We couldn't just ignore the problem since these were our biggest accounts, too.

Stripe's pricing is almost comically friendly here - credit card transactions are usually in the ballpark of 2.7% + $0.30, so even when card limits weren't an issue, we'd be paying out the nose on the transaction - 2.7% of $10k is $270. The new ACH payments would cost just $5.

Anyways, this is a serious accomplishment. The underlying banking regulations and technologies around ACH are thorny. Good job, Stripe!

artursapek 10 hours ago 4 replies      
In college I worked part-time for a music social network startup that sold songs and paid artists a commission, kind of like iTunes. I had to write a cron job that would issue the artist payouts every night by writing ACH files in plaintext and SFTPing them to SVB.

3 years later it's great to see Stripe providing this, but I will always have an oddly fond memory of working on that. It felt so obscure and unnecessarily difficult.

BHSPitMonkey 11 hours ago 3 replies      
The UI component presenting the login form for major banks is troubling. It seems like encouraging users to feel comfortable entering their online banking credentials into anything other than their bank's web site is a bad move.
rwmurrayVT 11 hours ago 7 replies      
I hate to see this honestly. Stripe is already notoriously vulnerable to credit card fraud and this is likely not helping their cause.

I'd love to know how long you should expect for an ACH payment to clear and into your bank account. The two day period for credit cards is so small. Who checks their statements every single day? This is obviously the benefit of using Stripe if you're the merchant, but it leaves you vulnerable.

We can only pray that Stripe accepts some responsibility for verifying these ACH transfers.

Fraud on Stripe is a two-fold problem. They've got fraudsters signing up for Stripe accounts and running cards through them. They've also got fraudsters making purchases on Stripe-based sites. Obviously, Stripe prefers that the charges are made to legitimate users. That way they're not out all the money.

Edit: It appears it could take "up to 5 days" for the payments to be processed. This is entirely on the bank's side of the equation. I guess from there you'll only need to wait your 2 days (7 days for some users) to receive the ACH into your bank account. I see massive fraud coming in here.

fblp 11 hours ago 4 replies      
Glad to see Stripe release this, but the $5.00 fee cap doesn't seem competitive for frequent large transactions compared to other providers that have a flat fees from $0.25 like Dwolla, with more listed herehttp://www.merchantmaverick.com/need-know-accepting-ach-paym.... Why the higher cost?
jblake 2 hours ago 0 replies      
I wish the pricing was more competitive. In the US, I've used Beanstream - which is $5/mo + $0.25 flat per transfer. In Canada I've used Versapay - $0/mo + $1 per transfer.
lsh123 6 hours ago 0 replies      
From a consumer perspective, paying via ACH is much more dangerous compared to paying with a credit card. In case of fraud (e.g. hacked payment provider), recovering from ACH fraud is much harder than recovering from a credit card fraud. While you will likely get your money back at the end, it is also likely that you will spend many months talking to your bank (not to mention returned checks or other payments in the meantime).

Overall, I strongly recommend to NEVER pay via ACH from an account that is used for other purposes. Personally I have a special account at my bank just for rare ACH payments I need to make. I can transfer money instantly from my primary account when I need to make a payment. And of course this special account has all the overdraft protections, etc. disabled.

wesleyfsmith 11 hours ago 0 replies      
Making this system integrate with Plaid out of the box was a smart move. Plaid is so much better for users' than having to manually enter bank account and routing numbers.
tomschlick 11 hours ago 1 reply      
Looks like the TOS acceptance button on this page is spitting out a 500 error https://stripe.com/docs/guides/ach
fideloper 11 hours ago 1 reply      
This is super important for b2b companies that need to accept payments of multiple thousands of dollars (e.g. Annual subscription / support), which largerish companies typically will not hand over a cc for, either due to CC limitations or (usually) internal process red tape.
Frozenlock 11 hours ago 1 reply      
> "And so, today, were delighted to launch support for ACH payments for all U.S. Stripe users."

Any ETAs for international? More particularly Canadaland?

joshmn 4 hours ago 0 replies      
Just an FYI to everyone accepting payments: Fighting chargebacks for ACH payments is a lot harder than just calling up a cardholder's bank. With Stripe now making ACH payments easier, I suspect the card shops " " will see a rise in routing/account numbers for sale.

And as always, just a friendly reminder Stripe's "fraud protection" is beyond trivial to get circumvent, so don't think they're doing you a favor.

thedogeye 2 hours ago 0 replies      
We've been using the beta for about 6 months and find it to be incredibly reliable. Thanks Stripe people.
arohner 10 hours ago 2 replies      
Can this be used, or setup in a way that supports the standard invoicing model?

i.e. I want an api call to email a .pdf to a customer, and then have them "click this link and enter your info to pay via checking account". Several kinds of customers, including consulting, would be much happier with a "push" model of paying, than a "pull" model.

wesleyfsmith 11 hours ago 0 replies      
I am trying to build a lending platform where we by definition cannot afford to lose 3% on each transaction. I'm am thrilled to see this. We have had to hand jam our current system with a local credit union (where we literally have to print out forms and bring it to them), so being able to switch to a fully programmatic system is awesome.
itsthisjustin 11 hours ago 1 reply      
Just got my beta invite too. Got frustrated at the lack of an easy ACH payments platform long ago though and went ahead and made my own. Launched http://paynote.io on January 1st of this year.
Brushfire 5 hours ago 0 replies      
This is great.

Next up: I'd love to see true Debit card transactions (i.e. With Pin) at Debit prices (perhaps 10-30c regardless of transaction size). That could really enable a ton of smaller items to be sold to a very large audience.

Eliezer 8 hours ago 1 reply      
Did micropayments suddenly become possible for the first time? Would this be a great service to charge 1000 users $0.10 each? Or for that matter, for selling ebooks?
mschuster91 8 hours ago 0 replies      
From what I gather from the comments, you as customer have to log in into your bank's online banking portal to initiate the transfers.

Don't you US guys have an equivalent to SEPA direct debits where I just give the IBAN bank account number and the merchant will automatically deduct the money from my account?

If so, then no wonder why US people are so dependent on credit cards...

chadkruse 11 hours ago 1 reply      
@pc - curious if you have plans to integrate ACH into your Checkout product. Seems like an incredibly difficult UX problem, but I'm sure your folks are up to the challenge :)
kevindeasis 8 hours ago 0 replies      
So with ACH I can directly bill my customers' account. ACH lets me to bill them for multiple or single payment. So, with these I can do person to person(p2p), business to business (b2b), and business to consumers(b2c)

That is cool.

kyriakos 10 hours ago 1 reply      
Stripe should start supporting the rest of the world. I'd love to use their services.
coupdejarnac 10 hours ago 2 replies      
Somewhat offtopic- is there a way to use Stripe to hold payment in escrow or to authorize a payment more than 7 days in advance? I really like Stripe, though I am not sure it can do what I need.
ROFISH 11 hours ago 1 reply      
So is it possible for simple ACH->ACH deposits? I'm looking to take out of my bank account and put into another (royalty payments for the curious). Ideally without having to hold a Stripe balance, just simple xfer.
staticautomatic 7 hours ago 0 replies      
Praise Jesus I've been waiting for this.
calgaryeng 9 hours ago 1 reply      
Is there an ETA on availability in Canada?
orliesaurus 8 hours ago 0 replies      
Sooooo as someone who used to live in the UK, should GoCardless tremble ?
dubcanada 11 hours ago 1 reply      
I wonder if this means Interac Online will come soon :O that's a very big deal for the Canadian market.
throway1234 3 hours ago 0 replies      
n00b alert: Can someone ELI5 differences between the solutions/products offered by Stripe and other payment related companies like Square, Braintree?
rw2 11 hours ago 0 replies      
This opens up so much
ck2 10 hours ago 1 reply      
Wait, is there no minimum?

Because 0.8% on very small amounts is very practical for micro payments.

$1 payment would cost a fraction of a penny.

What am I missing?

This will be game changing if my observation is correct.

dang 11 hours ago 0 replies      
https://news.ycombinator.com/item?id=10889918 looks like another announcement about this. It was posted slightly later so we'll treat it as the duplicate in this case.

Eventually we'll have some form of URL grouping when there are multiple stories on a topic.

Sony Attempts to Trademark Lets Play Its as Bad as It Sounds ryanmorrisonlaw.com
11 points by rb2e   ago   1 comment top
dovdov 2 minutes ago 0 replies      
Let's Play don't buy Sony then.
Ring Doorbell Vulnerability Exposes Wifi Password pentestpartners.com
14 points by kposehn   ago   5 comments top 4
metral 52 minutes ago 1 reply      
I thought I recognized the packaging. Turns out this was 'DoorBot' from Shark Tank that got renamed to 'Ring.'

They ended up getting a $28MM investment from Richard Branson for a $60MM valuation after getting a shoddy deal on the tank: http://www.businessinsider.com/ring-from-shark-tank-to-richa...

Good on them.

vortico 36 minutes ago 0 replies      
Interesting, if you place electronic hardware outside, thieves can steal information from it!
landmark2 10 minutes ago 0 replies      
serious question: what would be a better way to store the wifi credentials protected against the device theft?
DyslexicAtheist 34 minutes ago 0 replies      
not just a low-level exploit but an actual fatal design flaw. oops.

software engineers for IoT should really be forced to participate in security training.

When a Video-Game World Ends theatlantic.com
80 points by ForHackernews   ago   38 comments top 12
minimaxir 4 hours ago 2 replies      
A funny counterpoint is when an apocalypse occurs in a video game world accidentally. Take, for example, World of Warcraft's Corrupted Blood Incident: https://en.wikipedia.org/wiki/Corrupted_Blood_incident

Through an exploit, a viral debuff can escape and infect any player or NPC in the world. Cue entire cities dying with no way to stop it. It was interesting enough that the CDC investigated.

Blizzard ended up repeating this event intentionally as a promo for the second expansion (a zombie apocalypse) and ironically, people hated it because it made the game unplayable!

Another funny accidental apocalypse in early WoW was kiting raid bosses to cities, letting them wreak havoc until a GM despawns them: https://www.youtube.com/watch?v=Jl0VWJdE01M

rmidthun 2 hours ago 0 replies      
My daughter played an MMO by Disney called Pixie Hollow. In the game, players were given pets that they needed to play with, keep clean and feed to keep healthy.

About a month after the game closed, she woke up from a nightmare. She dreamed of the pets huddled in the ruins after all the fairies (players) had left them behind. It sounded heartbreaking.

bazillion 2 hours ago 2 replies      
Another counterpoint to this is a world that exists despite almost no one playing it: Clanlord[1]. I started playing this game during its beta test when I was 16(I'm 32 now) where there were as many as 200 players on a single server. It predated every MMORPG you've ever heard of, unless you were into online games during their earliest days. I still log on there every now and then to "spend" my ranks (basically leveling up skills), and there are still afk clients consistently logged into the server which sit in the town center to heal folks. The coolest thing is the fact that its creator has posted patch notes[2] every 2 weeks for the last 16 years -- how incredible is that?

What's interesting about this game is how the creator of it solved a lot of very difficult technical challenges where there was no common solution at the time. There was always one computer running one persistent world, so he spent a lot of time working on scaling out the performance of that server to be able to handle a possible load of 200 concurrent connections, where the average game at the time could maybe handle 6-8.

Knowing what I know now about programming, I would love to be able to get under the hood of that game and play around with it.

[1] https://www.deltatao.com/clanlord/

[2] https://www.deltatao.com/clanlord/news/new.html

kriro 55 minutes ago 0 replies      
Played galaxies, loved it. Great crafting system. The becoming Jedi stuff was interesting but won't work in this day of social media and more widespread internet use (barely worked back then).

The overall problem is interesting. You can just shut everything down, preferably in a cool way that feels epic for the players. This is perfectly fine if the game doesn't make money anymore as a player I don't expect games to exist forever.On the other hand you could consider this scenario from the getgo and have a clear transition path once you don't want to support the game anymore. In a perfect world you'd open source everything and/or provide a transition for community run servers. It's an interesting problem how to freeze the data and keep characters the way they were but hard reset is ok as well I'd guess. This rarely happens because well open sourcing stuff is considered a bad idea often but most importantly noone wants to plan for failure (how many startup founders have a plan to wind down the business gracefully).Realistically the technology is pretty old when you fade out a game so...why not? It'll be extra afford but could also turn out to be a great trust-boost for future games. Think ID software :)

teddyh 16 minutes ago 0 replies      
This server is going down! Dooooown! It's dooooomed!


merb 5 hours ago 7 replies      
The problem is that these games are done forever.

I think the publisher should make a useful software to create some private servers after they shutdown their services.mostly that games could still "live" even without the publisher.I mean if they didn't some things will be gone like forever.

mintplant 1 hour ago 0 replies      
Toontown at least has been picked up by a team of fans [1] who reverse-engineered the client and built their own server software on top of Disney's open-source release of their networked actor model system, Astron [2]. They're really doing a great job with it, adding new features and content and making significant expansions to the game lore. In some ways they're able to do more with the world than Disney ever would have.

Their marketing has also been very polished - especially for a fan revival of a game targeted at young children - and the community is surprisingly healthy as a result. In run-ups to a major releases, they've run puzzle trails/mini-ARGs that have brought hundreds of people to try and piece together the clues [3].

I hope Disney doesn't swoop in one day and shut it all down, Nintendo-style. They must know about it in some capacity, as core team members from Toontown Rewritten are now major contributors to Astron. Perhaps they think it's better for their public image to let it be.

[1] https://www.toontownrewritten.com/

[2] https://github.com/Astron/Astron

[3] http://toontownrewritten.wikia.com/wiki/Alternate_Reality_Ga...

jldugger 34 minutes ago 0 replies      
The final moments of Metal Gear Online 2: https://www.youtube.com/watch?v=DRuouKk3TiY
ojii 5 hours ago 0 replies      
xiaoma 3 hours ago 0 replies      
I would love to see a Twitch stream of the end of the world (of warcraft).
cmarro 3 hours ago 0 replies      
reminded me of this episode of 99 percent invisiblehttp://99percentinvisible.org/episode/game-over/
FussyZeus 4 hours ago 0 replies      
Gotta be honest: This article got me misty-eyed multiple times.

This is what I find cool about Freelancer (and games like it). There are STILL a decent amount of Vanilla and mod servers out there, and that game came out in 2003.

This is one of the big reasons I don't play much multiplayer anymore, other than Minecraft. There's no permanency and no assuredness that what you put together with your friends will be around tomorrow. I know my minecraft server is always going to be running and my friends know it too, we've built amazing things there because of it.

So You Think You Can Program an Elevator github.com
345 points by mshang0   ago   90 comments top 29
noir_lord 11 hours ago 11 replies      
Very similar immediately playable JavaScript version.


Which I'm now closing as I lost too much time to this the first time I saw it.

phasmantistes 10 hours ago 7 replies      
This is both cool and disappointing. I'm sure this is more challenging than it looks, and it's cool to see emergent complexity from a (seemingly) simply set of conditions to satisfy.

However, the reason I think about elevator programming isn't to make an elevator behave the way they do today. It's to make an elevator behave better than they do today.

For example:

* I don't want an elevator to close and reopen its doors on the same floor. That's horrible user experience.

* All the interesting problems arise when there are multiple elevators servicing the same set of floors. So let's control more than one elevator at the same time.

* If the elevator is on the ground floor, and has downward calls on both the 1st and 20th floors, then it is likely more efficient to service the 1st floor first rather than bypassing them just so you can keep travelling in the same direction.

I'd like to see a version of this that, rather than enforcing arbitrary rules, just has a lot of series of inputs and lets people compete to service those inputs in the shortest number of steps.

arnarbi 10 hours ago 4 replies      
This was was posed as the the first homework assignment in my first undergrad CS class (15 years ago). I don't think a single person managed to do it.

It's a classic example of a problem that you think is appropriate to throw at new programmers but find out it goes terribly wrong because the hard part is designing a suitable state machine first. If you just start coding without a full model that covers all the edge cases, it quickly degenerates to a mess of ad-hoc heuristics and spaghetti.

clarkmoody 10 hours ago 1 reply      
A project during my graduate work was to solve this problem. You can read my write up, which includes pseudo-code for the best algorithm I found[1].

Long story short: a simple, rules-based algorithm defeated my best efforts at having multiple elevators working together to coordinate their action.

[1]: https://clarkmoody.com/Moody_AgentBasedElevatorControl.pdf

timberburn 4 hours ago 0 replies      
Over a phone interview with Segment.io, I was asked to program an elevator controller. It was described to perform like an HTTP server would handle requests... They were getting confused when I started writing code for a state machine. Glad I got a job offer somewhere else.
n0us 11 hours ago 2 replies      
Then there is the alternative system where you do not request UP or DOWN but you request the floor, otherwise known as destination dispatch https://en.wikipedia.org/wiki/Destination_dispatch

which introduces a whole new set of complexity.

danbolt 30 minutes ago 0 replies      
Elevators are a great exercise to get people started in writing organized programs. My university's introductory assembly class had us do it in ARM, and it really taught me a lot about being structured. I'm happy to see this sort of stuff on the front page.
gsam 36 minutes ago 0 replies      
>So You Think You Can Program an Elevator

No, especially not in practice. I would never proclaim to have such a belief unless it was my job to do so. Even then, I wouldn't be convinced I was doing a good job of it. The amount of unforeseen complexity in most systems is no joke.

prutschman 6 hours ago 1 reply      
I have a pet theory that Sim Tower came out of someone playing around with elevator algorithms for fun and then turning that into a game.
brk 9 hours ago 1 reply      
On the topic of elevators, opening this link will cause you to (happily) lose an hour of productivity:https://m.youtube.com/watch?v=1Uh_N1O3E4E
mattlong 10 hours ago 0 replies      
http://codelift.org/ is an elevator challenge a friend of mine[0] built that'll throw scenarios of various numbers of floors and elevators at you.

[0]: https://news.ycombinator.com/user?id=silvamerica

exelius 11 hours ago 0 replies      
No, I never did really. Programming an elevator sounds very tedious, but it never sounded very hard. Elevators are heavy equipment, and there are edge cases around safety near heavy equipment: I'd rather not have to learn those first-hand.

However, I do think this is a great exercise for people new to programming. It's a common enough scenario that most people can recite 80% of the requirements of an elevator from memory.

southphillyman 9 hours ago 0 replies      
This was one of my white board exercises during the interview for my current job. I found it interesting because it seems very easy when the question is asked but it allows for a lot of communication between the interviewer and interviewee as the edge cases are fleshed out.
aaronkrolik 10 hours ago 1 reply      
This is a lot like an assignment for my operating systems class to introduce threads/lock (each elevator and rider is a thread).


valgaze 5 hours ago 0 replies      
There's an old legend in the construction world that the fastest way to reduce complaints about slow elevators in an office building is to add mirrors to the doors & hallways. The tenants (allegedly) spend so much time looking at themselves that they'll overlook an inefficient elevator system
kneel 8 hours ago 2 replies      
I've always wanted to see the option to deselect a floor if you press a button twice. Is there a good reason why this doesn't happen?
mrfusion 10 hours ago 0 replies      
I think traffic signal optimization would be another neat game.
andmarios 6 hours ago 0 replies      
Usually elevators are controlled by PLCs which can be programmed using ladder.

If you know a bit about boolean algebra, it is easy to learn ladder and program an elevator the real way. :)

phibit 11 hours ago 0 replies      
This is great! Many times I've thought it would be cool to develop a programming logic harness for elevator logic, but I've never come close to starting.

I think many developers have been waiting for an elevator thinking "Damn this thing is DUMB! I could do a way better job coding the logic for this..." Can finally test it out.

cranium 7 hours ago 0 replies      
I can't exactly remember why I found it, but there is a book about this very topic! Elevator Traffic Handbook, by Gina Barney
tn13 9 hours ago 0 replies      
When I was teaching assistant at University for Real Time Safety Critical Systems class this was one of the star assignments in the class.

Instead of writing just a dummy program we built an actual elevator using servo motors and asked students to code using different logic

1. Single elevator2. Double elevator 2. Double elevator with various kinds of optimizations (reduce the energy used v/s reduce the time for each passenger).

All had to be done using embedded C on an ATMEGA processor.

Then we let students do the exact same coding using Esterel where you essentially represent everything as the state diagram.

It was so much fun for bother teachers as well as students because when you deal with real hardware suddenly the scope of problems goes beyond merely getting the logic right.

joelthelion 10 hours ago 0 replies      
Someone should make a real contest (maybe a Kaggle contest), with real data and all. With well-chosen metrics I think it could be a lot of fun and a great success.
platz 9 hours ago 0 replies      
They've removed the elevator buttons inside the carriage at my work; now one can only select a single floor from outside the elevator.
flippyhead 11 hours ago 1 reply      
Maybe an elevator but I very much doubt a Wonkavator!
avodonosov 10 hours ago 0 replies      
Good challenge. I've thought myself many times what would be elevator logic, and it's not trivial.
mrfusion 10 hours ago 0 replies      
This would be fun as an html5 game. I'm not sure how you'd enter the logic though.
swehner 7 hours ago 0 replies      
Funny they refer to it as "business logic."
yeukhon 4 hours ago 0 replies      
Elevator and vending machine are two good examples for learning about state machine.
sfall 8 hours ago 0 replies      
what no elevator recall?
Docker for Beginners prakhar.me
242 points by vegasbrianc   ago   34 comments top 9
krat0sprakhar 8 hours ago 1 reply      
Hi everyone,

Author here. There are a bunch of awesome[0] tutorials on Docker so why another one? Well, my motivation was to have a guide (for myself and for others) on how to deploy dockerized apps on the cloud. So in this tutorial, apart from giving an intro to docker, I demonstrate how to use Elastic Beanstalk for single-container and ECS for multi-container deployments.

Here's are the two apps we deploy on AWS for example

1. Catnip - A simple flask app (single-container): http://catnip.elasticbeanstalk.com/

2. Foodtrucks - A simple app to discover foodtrucks in SF (Flask + Elasticsearch in multi-containers): http://sf-foodtrucks.xyz/

I'm new to Docker myself so I'm sure I've made mistakes. Let me know if you have ideas on how to improve this!

[0] - http://docker.atbaker.me/

fideloper 8 hours ago 2 replies      
ECS is really the only way I'd go with Docker - So far in my experience, Docker in production is really a lot harder than the casual developer / devops person realizes based on the "getting started with docker" tutorials.

My conclusion with Docker is that, in general, you really need to have a justifiable reason to go whole-hog into Docker, especially if you're not on AWS / considering ECS.

I'm glad the article covers ECS, as it makes a lot of the scheduling / config issues simpler!

siquick 2 hours ago 2 replies      
As a Docker noob, it would be so useful if there was a list of Docker use-cases that someone could link to?
dijit 9 hours ago 4 replies      
I still don't know how to give docker an IP address or "physical" network card on my network.

I was able to do this very easily with solaris zones, and even BSD jails, but every installation of docker that is any way integrated into packages seems to be unable to do this.

perhaps I'm simply not using the right google search terms.

nemothekid 8 hours ago 1 reply      
While the technical tutorial is good, I can't say anyone should choose Docker for the reasons outlines in the "Why should I use it?" section. "Because its popular" will only give you a headache when you are trying to deploy your simple rails app.
urs2102 10 hours ago 1 reply      
Prakhar, this is phenomenal. I'm a Columbia student as well and actually just came across your blog with this article. Hope to meet up at some point!

This is definitely a great start to Docker and I like how you provided an application to allow the reader to just work through the process of deploying something. Will definitely recommend this, as Docker is something easier shown than explained. Great stuff man!

systemz 1 hour ago 0 replies      
I still prefer using automation like ansible or saltstack over docker. You can't run it on very popular OpenVZ VPS and it's another useless layer of abstraction with security holes in it.
yeukhon 7 hours ago 0 replies      
neat article. I didn't know now you can run Docker on EB!!

I recommend start with Docker Machine (https://docs.docker.com/machine/)

Another well-written beginner tutorial (but with a few hardcoded urls): http://stackengine.com/docker-101-01-docker-development-envi...

is_this_tinder 9 hours ago 0 replies      
awesome - very well written m8
Create an anonymous Signal phone number with Android yawnbox.com
47 points by nyolfen   ago   2 comments top 2
edent 7 minutes ago 0 replies      
Very interesting. But what happens if someone gets that temporary phone number and re-registers it on a different handset?
gfuguy 39 minutes ago 0 replies      
You can't be serious. Ain't nobody got time for that.
Voxel Quest January 2016 Update voxelquest.com
278 points by shawndumas   ago   110 comments top 27
BatFastard 11 hours ago 2 replies      
Wow, I was high sceptical that you would be able to scale this up past the short view distance.But not only have you managed to get a good view distance, but you also added in a nice animation system.Congrats to you! This is coming from someone who has spent years designing their own voxel platform.Please get this out to users to let them start building things, you will be amazed at what they can create.
aeturnum 10 hours ago 2 replies      
I love the Voxel Quest posts because they're demonstrating some seriously cool tech. However, they feel a lot like the Wolfire development blogs [0] - great tech demos without a cohesive vision for a game. From an engineering point of view, the end goal doesn't matter, but I would also love a 'bigger picture' roadmap of where it is and where it's going. Why would I use this engine? What do I 'get' over the competition in the current state of the engine? What should I 'get' by the end?

[0] http://blog.wolfire.com/

brodavi 1 hour ago 0 replies      
I will go against the crowd and suggest that you just keep doing what you're doing. Forget about "making it fun". Even in these rough demos, the various parameters and behaviors you land on clearly shows a natural instinct for it that you can trust. Forget about "making an actual game", what you're doing is magic and the more you do it, the better. You've got a gem here. It's already insanely valuable. Keep polishing it, and the world is yours. Keep this up, as long as you can. The "last mile" is going to be easy for you.
agentultra 11 hours ago 2 replies      
Is gavanwoolery made of magic and unicorns? This is amazing and his progress is nothing short of astounding.

If he's reading this: how do you fund work like this? You said you're raising a kid, I've got two! Is this a couple-hours-a-night kind of thing?

xsmasher 11 hours ago 4 replies      
From a technical point of view it's amazing.

Artistically, the voxels are too big to look impressive to anyone used to polygon graphics, and too small to give off the "pixel-art" aesthetic of Minecraft or Terarria.

I want to play the game evoked by the banner at the top of the page, but not the one I see in the video.

AustinG08 12 hours ago 1 reply      
I discovered you on HN several years ago and have been following your progress ever since. You are an inspiration to do-it-yourselfers everywhere. Rooting for you man!
dsugarman 11 hours ago 1 reply      
I don't have anything to add to the discussion, I am just really inspired by your work, you can see the trajectory of this project with each update. The environments look simply beautiful with the huge view distance.

The big unproven thing is building something that is fun. I look at Spore as this great unbelievable game engine that accomplished exactly what it set out to do. But they forgot to make the game fun, don't be Spore.

jsilence 2 hours ago 1 reply      
I find the achievement and persistence of Gaven absolutely astounding. You have my utmost respect and I wish you good luck and success with the project. I always love to see the updates on progress. If there were a game to buy I'd just buy it as a hat tip to show the respect.
piptastic 11 hours ago 1 reply      
Are the game engine and game coupled together?

Meaning if I purchase the Alpha game key, will that give me access to the game engine during Alpha to start looking at that side of things?

Retr0spectrum 10 hours ago 1 reply      
This is really amazing. How on earth does it all fit in memory? If the render distance is 16km, then that's somewhere around 16000 * 16000 * 2000 = 512 billion voxels, which would take somewhere in the order of 512GB of RAM. Obviously this is not the case, so what clever tricks are being used?
sergiotapia 11 hours ago 2 replies      
For the uninitiated why is this exciting? The graphics look really washed out and jittery. Thanks!
emilioolivares 3 hours ago 0 replies      
The success of Minecraft comes from the ability to create. If you can capture that magic into Voxelquest I can see this being huge. I would love a game where I could create my terrain, set-up my army (like I would my toys) and then let them fight and be able to record and share the videos of the action. Wish you the best!
marcalc 12 hours ago 1 reply      
I love seeing these videos. For a long time I appreciate Gavan's work. I hope he succeeds in creating an RPG game engine.
frik 12 hours ago 1 reply      
Wow, it's amazing how it evolved from an 2D style isometric low res voxel engine to a full 3D voxel engine.
memco 11 hours ago 1 reply      
I was curiously drawn to back this even though I haven't paid for any other video game of any kind in several years. It is exciting to see how far things have come. Can't wait to try it.
viraptor 6 hours ago 1 reply      
This looks amazing. I imagine this could create amazing games based on at least 2 titles:

- ultima - Great customisation / open world, but that's already mentioned on the kickstarter page.

- LBA - I would love for someone to create next version in this engine. Can't explain why, but it seems to match so well in my mind. Especially after LBA2 went 3d.

mysterydip 5 hours ago 0 replies      
Saw this in an earlier stage when you were showing off lighting/shading. Very impressive! I know the style isn't for everyone, but personally I love it. Looking forward to future progress :)
lechevalierd3on 11 hours ago 0 replies      
Link is dead right now, the video is here: https://www.youtube.com/watch?v=n0GPIvXFL0w
unixhero 11 hours ago 1 reply      
Will this game in the future be able to run, ported or otherwise, on the proposed Voxatron Game Console[0] by Lexaloffle[1]?

[0] http://www.lexaloffle.com/games.php?page=consoles

[1] http://www.lexaloffle.com/

Dirlewanger 11 hours ago 0 replies      
Wow, it's like looking into the viewport of the future of video games.
biot 7 hours ago 1 reply      
How well does the voxel rendering parallelize based on number of cores? Related question: how much of the rendering is handled within the GPU?
ShawnCleverdon 11 hours ago 1 reply      
Looks great! Will you add anti-aliasing at some point in the future?
zksv 10 hours ago 1 reply      
why not open source the engine and develop a game around it? It'll not only gain exposure, take a lot of the optimizations off your belt, but let you focus on the long-term development of a marketable game.
andallas 12 hours ago 1 reply      
So glad I kickstarted this. Very excited about the progress. Keep on with it. One of the projects I'm okay waiting a long time for because I know it's going to be worth the wait!
br1b 10 hours ago 1 reply      
man watching your video makes me think of pilotwings 64, it would be a lot of fun to fly around your islands.
teoucsb82 11 hours ago 1 reply      
Go Schwa!
unfamiliar 11 hours ago 0 replies      
20 minutes of aimless muttering does not a good video presentation make. Impressive progress though.
Show HN: I'm a professor who has developed an interactive Powerpoint alternative 2sli.de
194 points by twoslide   ago   46 comments top 19
gravypod 4 minutes ago 0 replies      
One of the biggest features of PowerPoint is that it runs offline. This is very important for many reasons. It's the Doctor Sues of business tools. You can use it on a boat, with a goat, in the rain, on a train, and you can use it ANYWHERE. If you can match that feature, than this might be worth another look. Otherwise, you have effectively created another Prezi.
kevhito 10 hours ago 1 reply      
I have taught for years using UW's Classroom Presenter software, hacked up to be more responsive and usable with a tablet and pen. So I'm fully on board with the concept.

But frankly, the execution seems lacking. The qrcode/sms polling is fine, if you care about that sort of thing, but there are many similar and better solutions [1] out there. You can already mirror and do remote displays easily even with stock powerpoint/ooffice/keynote.

The one feature this and UW CP really bring is the annotation. In UW CP, especially my hacked version, the annotation tools are very good quality. You can use an active pen (e.g. wacomm digitizer on a Lenovo laptop/tablet) for accurate writing and drawing, and it has very low latency response, pressure sensitive line width, etc. In software you can zoom slides, delete/move annotations, change colors and pen types via a tablet-friendly palette. You can save your annotations and import them back into ppt as "ink" objects, and vice versa.

I don't see any of that in the poster's demo. The drawing is clunky, unresponsive, and looks bad. Can you imagine trying to write a note on a slide with that system?

Having worked on the guts of UW CP, I know that one of the hardest things was export/import from powerpoint. It is very hard to get right, especially with build animations. Font size 24 doesn't export correctly in many cases. Margins and objects shift and move slightly. Exporting can be very slow -- many seconds per slide, depending on complexity. Parsing the actual pptx files and replicating the actual look without using powerpoint APIs is essentially impossible.

slavik81 9 hours ago 1 reply      
I realize that you're trying to show off the features of your software, but overuse of slide animations is a really bad look. In addition to explicitly communicating the features of your product, your example slides should inherently make me think 'I wish my presentations were like that'.
castratikron 10 hours ago 2 replies      
One of my college physics professors had a more low-tech solution: hand everyone a set of cards labeled A, B, and C and have everyone answer powerpoint questions that way.
potatote 2 hours ago 0 replies      
Just a side question because you mentioned being a professor: is this work/project related to academic research (in other words, do you plan to publish about your usability findings)? Or is this a product that will become more feature-full over time? The tool looks neat and I like the preview feature that can only be seen on the smart devices. I'll certainly use this for my next presentation. Thank you! :)
BHSPitMonkey 7 hours ago 1 reply      
The interactive polling stuff is neat, though it seems like it would occupy a lot more time in a presentation than the old-fashioned "show of hands" it's replacing (given the time an audience would need to pull out their phones and try to scan the QR / type the URL / send the SMS).

The on-device view of the current and upcoming slides (as well as speaker notes, and maybe even drawing) are also built into the Google Slides app's UI when you are casting to a Chromecast.

m3andros 8 hours ago 1 reply      
In terms of building a title and effective presentations, better than PowerPoint or Keynote combined, I use LectoraOnline.com. It has everything I need: QR code generator, embedding of video, HTML export, SCORM compliant, editable themes, and Responsive presentations. That's a short list, as there's more, but it's an incredible app. It's close relative, I'd venture to guess, is Captivate or maybe even Storyline.

Great job on this cool concept! I will definitely check it out. Thank you!

twoslide 10 hours ago 0 replies      
For those interested in more, please also check out the demo video: https://youtu.be/Sc6cIAJBkmU
IMTDb 8 hours ago 2 replies      
One of my friends is the creator of Wooclap : https://www.wooclap.com/It's quite cool to compare how a similar idea (engage your audience by text/web) lead to different execution. Congratulations on your product :)

What is the use of the QR Code displayed on the demo slides ?

haberdasher 9 hours ago 1 reply      
In a similar vein: https://presentio.us

Disclosure: I'm the developer of this.

LargeCompanies 10 hours ago 2 replies      
Nice job, yet I'm curious how many Interactive Powerpoint apps are out there now?

Slides.com offers the ability to use your phone as a remote and I'm guessing there's a few others out there?

widforss 10 hours ago 2 replies      
I seriously was contemplating a business idea on my way home from work today that was based on making polling via sms easy.
contangoandcash 9 hours ago 2 replies      
why wouldnt you just use reveal js?
ramy_d 10 hours ago 1 reply      
Are slides built using a WYSIWYG editor?
eecks 6 hours ago 0 replies      
> experimental> may be bugs

Ah yes.. let me give a presentation with this software.

santaclaus 10 hours ago 1 reply      
How well is video handled?
such_a_casual 5 hours ago 0 replies      
Why is a sign up required to use this?
sova 6 hours ago 0 replies      
you're the man
prtkgpt 8 hours ago 0 replies      
pretty cool!
Code that will break in Python 4 astrofrog.github.io
414 points by astrofrog   ago   216 comments top 48
colanderman 13 hours ago 8 replies      
The whole Python versioning fiasco is simply baffling to me as an outsider. Why not mark Python 3 modules with a tag, or different file extension, or anything, and require the Python 3 interpreter to be able to interpret Python 2 code as well as Python 3 code?

This is e.g. how the (roughly analogous) split between C and C++ is handled, and it works fine for the most part. No bizarre polyglot code games.

Edit: Just to be clear, C++ is not a superset of C: http://stackoverflow.com/a/1201840/270610

mpdehaan2 15 hours ago 2 replies      
No problem! I've already fixed it so that all my code is forward compatible with Python 7000, despite not knowing what any of the syntax or library changes are going to look like.
bhaak 15 hours ago 3 replies      
Six is called the "Python 2 and 3 Compatibility Library" for a reason. I'm certain that when Python 4 will be released six will be updated so that six.PY3 will include Python 4.

Of course, this opens the opportunity for two other compatibility libraries. "twelve" will be for supporting Python 3 and 4 and "twentyfour" will support Python 2, 3, and 4 at once (I hope nobody will seriously consider a library called "eight").

jug 25 minutes ago 0 replies      
> My current expectation is that Python 4.0 will merely be "the release that comes after Python 3.9". That's it.

What? If that's the idea, don't be stupid and just call it Python 3.10 then.

Otherwise, won't we risk a completely unnecessary major versioning problem as outlined in this very article??

Sometimes it feels like the Python team wants to change the major version number only to teach the development community a lesson about coding libraries right, not because they have to. This kind of masochistic idea of deciding version numbers, if it's there, needs to go since this lesson will never be learnt by each and everyone due to the immense size of the community. And if there is a support issue in some libraries, the ripple effect can and will affect other projects as well.

btilly 15 hours ago 0 replies      
I am reminded of the horrible hacks that got encoded in various http user-agent strings so that new versions of browsers would be identified as various other older browsers so that badly written sites would send them the right version of the site for the features that they supported.
wmil 1 hour ago 0 replies      
I was listening to a developer podcast and one of the hosts (Jeff Roberts?) had the right idea about version checks...

Never allow developers to read the version number. Instead have a function where they pass in the version number and get a boolean about whether or not it's supported.

It's really the only way to avoid code problems like this.

jobu 15 hours ago 1 reply      
As someone that uses Python intermittently it seems like there's still a lot more tutorials, Q&A, and documentation for v2 on the internet than for v3. When searching for info about python it's often difficult to tell if I'm looking at something for v2 or v3, and when I can tell it's usually for v2.
wyldfire 15 hours ago 1 reply      
> In this case, no code will get executed on Python 4 at all!

Maybe `import six` should trigger ImportError when imported on python 4. Only "eight" or "twelve" should support Python4. :)

to3m 15 hours ago 1 reply      
2020! I wonder if I'll have more luck finding the time to upgrade my python 2 scripts in the next four years than I've had in the last four?
twblalock 8 hours ago 1 reply      
The history of Python 2, 3, and 4 is a great lesson in how not to manage changes and versioning in a language.
incepted 14 hours ago 4 replies      
> We don't really know yet what Python 4 will look like, but we can be pretty sure that the transition from Python 3 to Python 4 will be a lot smoother

Doesn't compute.

You can't say you don't know anything about Python4 and immediately follow up with suggestions on how to program for it.

And if you really want to be consistent, at least:

 if (python2): // python 2 else if (python3): // python 3 else: raise "I have no idea what I'm doing"
At any rate, given the time lapse between Python releases and how catastrophic version migrations have been so far, it's safe to say that by the time Python 4 comes out (if ever), we will all have long retired from development.

brrt 11 hours ago 0 replies      
I'm totally incapable of detecting whether this is satire. Is this satire? It should be.
markrages 14 hours ago 1 reply      
Seems like this is the fault of 'six' for defining PY3 in the first place.
kasbah 14 hours ago 2 replies      
Reminds me of when Linus tagged Linux 3.0 and it broke a bunch of peoples code due to their bad version checks. Linux 2.x had been going for about 15 years.
bitwize 15 hours ago 3 replies      
They could always take the Microsoft route: Python 4 will be internally versioned as Python 3.1 to avoid this sort of problem.
svisser 14 hours ago 1 reply      
Version checks are also the reason why we have Windows 10 and not Windows 9 because people checked whether the OS version started with "Windows 9" (for Windows 95 and Windows 98).
ctz 15 hours ago 4 replies      
Has there actually been a statement that python 4 will be backwards compatible to python 3?
chubot 15 hours ago 2 replies      
Well Python doesn't use semantic versioning, but if it did, there would probably be no Python 4.0. It will just be Python 3.15, 3.16, ..., 3.99, 3.100, ...
zanny 14 hours ago 3 replies      
As someone who has had to pressure some of the most backwards companies to update their software, it is going to be the most horrible of pains, in the same way Linux 4.0 is right now, to have a pointless major version increment. Lawyers, suits, and investors shit themselves seeing that number go up when previous increments actually meant something, so when it now no longer does, it just makes my life a living hell for years.

I just wish software would take versions seriously. Please. For my sanity.

artursapek 15 hours ago 2 replies      
Holy shit - people actually write code like this?
gragas 14 hours ago 0 replies      
This is ridiculous. I thought this would be a joke, but it doesn't seem like one.
BingsF 3 hours ago 0 replies      
There's no good reason for them to call it 4.0 instead of 3.10.This will just result in even slower adoption.
dawnbreez 14 hours ago 0 replies      
We don't even write code that doesn't break on Py3.
plainOldText 12 hours ago 0 replies      
Hopefully this won't be huge problem in Python 7, as all python scripts will be just two lines of code:

 import ai ai.run('This script <describe in natural language what you'd like this script to do>.')

reality_czech 3 hours ago 0 replies      
It's ok. I'm sure that the Python development team will manage the version transition in a sane and responsible... heh... hehe... HAHAHAHAHAHAHA.

Sorry, I couldn't keep a straight face for that one.

andrewingram 15 hours ago 2 replies      
Is there a reason why any future syntax changes cannot be handled using transpilers in the same way it's worked for the JavaScript community? Such transpilers do exist for Python, but they never really saw much use, is it because 3to2 came along too late, and for a long time we only had the option of 2to3?

ie once future syntax develops, start using it immediately using a transpiler, and have builds that target as many versions as you care to support.

frik 15 hours ago 1 reply      
Often I discover projects that are still in v2, and no words about v3 on their roadmap.

Maybe v4 should learn from JavaScript5 and Visual Basic 3-6.

Support v2 syntax out of the box using a (slow) shim layer if there is no

 "use strict"
in the first line. If that statement is present, don't load the shim layer and support only v4 syntax (faster).

That way old v2 code would still work without any changes.

cianuro 15 hours ago 0 replies      
I feel like I'm taking crazy pills
OrangeTux 15 hours ago 3 replies      
I don't get it. When Py4 comes in sight they'll fix it probably so `six.PY3` is only True when using a Python3 interpreter and I guess they'll introduce a viariable `six.PY4`.
geocar 14 hours ago 0 replies      
This reminds me of something else[1]

[1]: https://cr.yp.to/y2k.html

JupiterMoon 15 hours ago 1 reply      
This is a surprisingly common anti-pattern. See also potential reason why there was no Windows 9 (programs checking for Windows 95/98) and various breakages for commercial programs on Linux when they check the kernel version.
Grue3 15 hours ago 4 replies      
There isn't all that much code written for Python 3 to care about backwards compatibility. IMO Python 4 should be:

- backwards compatible with the latest release of Python 2

- contain all features of Python 3 in some form

I think this will result in a very speedy adoption.

In the future I propose the following numbering scheme: for any N > M, Python N contains all features of Python M and is backwards compatible with Python M if and only if M divides N.

BuckRogers 12 hours ago 2 replies      
Guido has stated to not compare semver in the past.[0]

Will there be a 3.10 or go to 4.0 after 3.9, per one of his core developers?[1] It's hard to tell with Python's leadership (no intentional mockery of the term leadership).

My guess is that they'll indeed push onwards to Python4 as soon as possible. This being another attempt to make Python2 look as old and crufty as possible. "You're still on Python2? Wow, I'm on 4!". That's the type of political and psychological game the Python core dev team has been playing since 2008 with 3's release. Right alongside the 2020 EOL, another political move. Even though Python 2.7.'10' was never supposed to exist but they went back on that.

This because Python3 is mere technical churn, it is not true technical innovation.

The issue here is really one with the Python core development team. They have also adopted every niche feature into Python3 by whoever came along to ask for it.[2] This was done for the same reasons as the relative rush to rebrand the failed 3.x branch as 4. An attempt to stir up any hype possible for 3.0+.

They got so much wrong with Python3. Feature soup, unicode, and performance losses over 2. Unicode-by-default is the big deal and they didn't even get that right. They simply remapped unicode to str. Which for such a big breaking change, should've been UTF8 alongside other new languages such as Go.[3] But it's worse than that, Python3's feature soup continues in 3.6 there will likely be a 4th string formatting option[4] among throwing everything they can against the wall to see what sticks (while bloating the supposedly simple, "beginners" language).

While Python2 has been riding high in popularity[5], it has absolutely nothing to do with Python3. It's in spite of it.

There's good reason the core dev team "extended support" for 2.7. It's because they really did create a new, much less successful language and would've lost complete control of Python had they not done it.

Python3 is a language that looks mostly like Python, but is Python in name-only. Worse of all, it doesn't stand on it's own two feet with technical merits. I would personally recommend sticking with 2 until 3 ever makes sense, or finding something else to use like Swift or Go.

Unlike a web browser or another piece of software, the "latest version" of a programming language is not always in the end-user's best interests.







gweinberg 14 hours ago 2 replies      
This is a joke, right? Obviously we can't write code that will work on python 4.
placeybordeaux 14 hours ago 0 replies      
This seems like an unreasonable amount of time to dedicate to an uncertainty.
pvdebbe 14 hours ago 0 replies      
And here I was getting excited about newest rumors on Python 4 features...
PythonicAlpha 15 hours ago 0 replies      
This should be normal routine -- it is called "defensive programming".
nilved 13 hours ago 1 reply      
The idea of using a runtime conditional to target different major versions of a programming language is hilarious. Really, given the Python 3 embarrassment, I'm not confident in the language as a long-term option.
gipp 11 hours ago 0 replies      
This post and thread are a trainwreck.
pricechild 11 hours ago 1 reply      
How come the title was changed?
SixSigma 13 hours ago 0 replies      
write your own vtable

 goto = {2:fn2, 3:fn3} if six.PY in goto : goto[six.PY]() else : sys.stderr.write("ack, no python to run!\n") sys.exit()

stefs 15 hours ago 1 reply      
don't be silly - my code will long be replaced when python 4 comes out! it's just a temporary hack/short term solution anyway.
pearjuice 13 hours ago 1 reply      
To be honest, I am quite surprised that even in Python 4 whitespace is still an integral part of the syntax.
xyzzy4 14 hours ago 1 reply      
Why don't they just stop changing the syntax? They already ruined print statements. Don't engineers have better things to do?
pbreit 15 hours ago 2 replies      
Maybe Python 4 will be properly compatible with Python 2?? Kidding.

But more seriously, probably good advice. Isn't "explicit" one of the Pythonic mantras?

But I'm wondering if any code written today really will survive until "Python 4"?

Animats 12 hours ago 0 replies      
Do we need Python 4? How about just extending Python 3 incrementally?

Stop Python's little tin god before he kills again.

douchescript 13 hours ago 2 replies      
Why even adapt for python 3? Nobody uses that stalinist version of python anyway. Its incredibly bad to have to use ifdefs in a scripting language like that. Code should be written so that it works regardless of version.
rjurney 10 hours ago 0 replies      
Python 2 going away in 2020? Yeah right. Python 3 is a dead end. If they rebooted Python 4 to run Python 2, maybe Python 4 would be relevant. As it stands, Python 3 is a total disaster and will never replace 2. Trying to improve unicode handling? Check. Replacing the print statement syntax just because? Ohmygodstupid.
SSH Backdoor found in Fortinet firewalls seclists.org
351 points by afreak   ago   109 comments top 17
godzillabrennus 12 hours ago 8 replies      
This is why http://Pfsense.com should get even more coverage on here than it does. Chris and his team do an incredible job of creating secure open firewall software.
EvanAnderson 15 hours ago 1 reply      
It's a custom SSH authentication method invoked with a special username, "Fortimanager_Access". The protocol is a weak "challenge/response" using hash of the challenge concatenated with a string (used in multiple firmware versions and not at all unique to the device).
nickpsecurity 13 hours ago 3 replies      
This is why high-assurance security products were/are required to have:

1. Clear description of every feature and requirement in system.

2. Mathematical spec of those where English ambiguity could effect results.

3. High level design with components that map 1-to-1 to those.

4. Low-level, simple, modular code mapping to that.

5. Source-to-object code verification or ability to generate from source on-site.

What people in faux security mocked as mere "paperwork" or "red tape" were actually pre-requisites for defeating subversion my mentally understanding a system from requirements all the way to code. A problem like this would've been impossible in such a system because it would be beyond obvious and probably unjustifiable with requirements tracing.

Every story like this further validates the methods that consistently produced systems without all the security problems plaguing modern security products. Situation isnt inevitable or even necessary: merely an inversion of scientific method where security companies and professionals consistently refuse to use what's proven to help and reuse tactics proven to fail. It's gotta stop.

That it wont is why I favor liability legislation tied to a reasonable baseline of practices. We can use an inexpensive subset of what worked in highly assured systems. 80/20 rule. Baseline would look more like Secure64 or HYDRA firewall than shit like Fortinet and Juniper. Hackers would work for exploits. I know Im dreaming, though, as DOD and NSA just dropped mandate to EAL1 w/ 90 day review for some stuff. (Rolls eyes).

eeZi 13 hours ago 1 reply      
See relevant thread in r/netsec: https://www.reddit.com/r/netsec/comments/40lotk/ssh_backdoor...

> It leaves no traces in any logs (wtf?). It keeps working even if you disable "FMG-Access". It won't let you define an admin user with the same name to mitigate it, so make sure that SSH access on your devices is at least restricted to trusted hosts!

matt_wulfeck 12 hours ago 0 replies      
Open hardware and open source. It's our only path. In my opinion the best way for this to happen is to make it part of the government procurement process, that will inject cash into the ecosystem.

I really believe this has already begun with the FANG[0] tech giants with Open Hardware initiatives. At some point you can begin pooling your resources to create safe, secure, and fast platforms that everyone can use.

[0] facebook, amazon, netflix, google

tptacek 14 hours ago 5 replies      
This probably isn't as bad as Juniper's, because you don't generally get external SSH access to a Fortinet box.
sschueller 14 hours ago 1 reply      
Nice, who's next?

Maybe it is time we build open hardware and software for important things. Can't trust anyone.

Doing audits of open hard and software is a whole other problem however.

Daviey 14 hours ago 1 reply      
I almost had a reallllllly.. bad day. Thankfully, it is only version 4.x up to 5.0.7.
perna_m 10 hours ago 0 replies      
official statement from Fortinet http://ftnt.net/1TTc1Bz
zymhan 15 hours ago 2 replies      
Can someone provide some context? A python script alone is kind of hard to decipher.
hoodoof 1 hour ago 0 replies      
But think of the upside - so many terrorists were probably caught because this code existed. We must fight to ensure all firewalls have back doors or face a true terrorism threat.
INTPenis 12 hours ago 2 replies      
These backdoors in the news lately - Juniper and now Fortigate - are scary, but thinking back on 10 years in IT I've never operated in a network where SSH on network equipment was accessible to anyone without intranet access through either physical location or VPN.

On top of that I am now in an organization where we're starting to implement security levels on networks, anything above level 0 requires 2FA to access and you can never connect a lower level to a higher level. So best practices are a good thing.

HNaTTY 7 hours ago 0 replies      
This script worked for me once I enabled SSH on the lan interface on my FortiGate 100D running 5.0. But the only command that seemed to do anything is "exit". Everything else gave an "Unknown Action 0".
ausjke 14 hours ago 2 replies      
that's a shame but we're used to it these days I guess.

if you want to do backdoor probably should do it better, something like port knocking to start with at least.

arca_vorago 14 hours ago 2 replies      
Another one bites the dust. I'm ready for more though, because it is vindicating my position on FOSS. While FOSS isn't a panacea, at least you can read the code!
exo762 15 hours ago 0 replies      
Hugged to death. Archive link:


jorge-fundido 14 hours ago 4 replies      
Maybe backdoor was a bad way to describe it? Maybe it's used as a customer-initiated support channel for when the customer wants the vendor to access the device.
My Last Day as a Surgeon newyorker.com
44 points by hkmurakami   ago   2 comments top 2
cjcenizal 1 hour ago 0 replies      
Beautiful and heart-breaking.
throwaway6497 1 hour ago 0 replies      
Had a lump in my throat by the time I got to the end.
Convert hand drawn equations to LaTeX myscript.com
106 points by ohblahitsme   ago   28 comments top 14
fragmer 3 hours ago 0 replies      
It works quite well, but I wish there was a way to make small corrections (e.g. erase parts of my input).

The app keeps mistaking my handwritten "n" for "h", and my "k" for various obscure things like "|x:", and it's a bit of a pain to make small adjustments after most of the equation has been written: https://i.imgur.com/KneVGIU.png

haldean 6 hours ago 0 replies      
Detexify is another one that's been around for many years (at least 5 at this point) and has saved me hours: http://detexify.kirelabs.org/classify.html
haberman 5 hours ago 5 replies      
On a somewhat related note, does anyone have any particularly nice ways of writing math-related notes?

Part of me wants to just hand-write them and then maybe scan them, but that's not searchable/indexable, and doesn't lend itself well to version control.

Writing in TeX or LaTeX would make them searchable/indexable, but this seems a little heavyweight for just notes (like answers to exercises). I don't use TeX/LaTeX that often, so I feel like I'd be spending half of my mental energy figuring out how to format things, figuring out how to invoke the tools, what packages to install, etc.

Are there any nice solutions out there for this sort of thing?

mazork 6 hours ago 0 replies      
Works like a charm on my Surface Pro 3. Incredibly impressed, One note doesn't recognize my handwriting well but this is incredible as a math undegrad !

As many have said, an open-source app would be a godsend.

vecter 3 hours ago 0 replies      
From what I can tell, it had a hard time distinguishing matrices from vectors. What I wanted was:

 [ 1 1 ] [ 0 1 ]
What I got was

 [ 11 ] [ 01 ]

llull 6 hours ago 2 replies      
Very neat. One problem is immediate: when I handwrite an "x" for maths, it is as two 'c's touching back-to-back, so as not to confuse with some multiplication/cross-product symbol; such input proves very confusing to this code.
Myrmornis 4 hours ago 0 replies      
Very impressive. It worked very well for me.
zfedoran 6 hours ago 0 replies      
Awesome! This project reminds me of something I worked on years ago: http://goo.gl/GKOxrg
geomark 7 hours ago 0 replies      
Pretty handy for someone like me who wastes a lot of time trying to get the Latex right in my R markdown docs.
billconan 5 hours ago 0 replies      
awesome! how does it work? recurrent neural network?
analog31 6 hours ago 1 reply      
Nice! I can't wait to try it on my touch screen PC.
andreser-mit 6 hours ago 1 reply      
Open source?
sdegutis 6 hours ago 2 replies      
LaTeX is super cool for mathematics and academic papers. For my book though I had to migrate off to InDesign because it was just much easier/quicker to get it to do what I wanted.
kevin_thibedeau 6 hours ago 0 replies      
Was Sheldon on the design team?
If too many users are wrong, it's probably your fault (2011) rachelbythebay.com
131 points by jcolman   ago   91 comments top 13
Animats 2 minutes ago 0 replies      
If people are mistaking screenshots for clickable windows, though, that's easy to fix. You can give the screenshots drop shadows, and put scribbled notes on them in another color. Then they don't look like clickable windows.

(Amusingly, both of those things have appeared as user interface components, but fell out of style. Apple once had the ability to scribble notes on top of things, and Google was pushing "material design", with lots of raised squares and dropped shadows. (Whatever happened to that, anyway?))

Udik 6 hours ago 1 reply      
I have a nice anecdote to share. Years ago I was in the dev team for the website of a new major mobile operator in Italy. When the first version went to production, there was a wave of sign ups from customers, but in the following days we received a lot of support calls from customers who had signed up but couldn't access their accounts. We started analyzing the problem and noticed two things:

1) the customers who couldn't sign up had used illegal characters in their usernames - there was no validation in place to prevent this: bad mistake;

2) most of these customers, literally hundreds of them, had signed up with usernames containing lots of asterisks. Many usernames looked like lillo* * * * * or bobby* * * * *.

I didn't give much weight to this, assuming (wrongly) that it was just a coincidence. Only a guy in my team kept thinking there had to be an explanation, until he nailed it: it was the signup form that said "fill in the fields with asterisk". So we added the damn validation and clarified the copy.

relaytheurgency 10 hours ago 3 replies      
Reminds me of when I was teaching and we were discussing test design. If 90% of your students fail your exam what have you learned?

I would argue that barring a conspiracy of some kind that the designer has made a mistake in either in the preparation of the exam or the preparation of the students. Others might argue that students may be lazy or aren't maximizing the use of their time. I hear similar arguments about users now that I'm in IT but I've always felt that it is the designer's problem if "no one can use it right."

Negitivefrags 6 hours ago 3 replies      
As a game developer it's very easy to get jaded about user feedback. The more you read it the more you start to feel like the players are ignorant and the game would be better off without them.

It's important to remember that any time someone complains, there is a legitimate problem behind it somewhere.

The issue is that users don't come to you with problems, they come to you with bad solutions. "Make this monster easier" "Make this item drop more often", etc etc.

It's easy to start thinking that if you did what all the players wanted then the game would be entirely bland and give you so many rewards all the time that they become meaningless.

The trick is to try and reverse engineer the problems from the solutions that they are giving you, and then come up with good solutions to fix their real problems.

dmm 10 hours ago 3 replies      
> shown that some technical types just don't understand other people.

And other people are better? Writing clear instructions that random people can follow is _hard_.

hwaite 10 hours ago 1 reply      
matt_wulfeck 9 hours ago 0 replies      
I've found this very true with CLI tools. Some things just make perfect sense to me but when I try it on a Live Person I see how my assumptions were dumb.

Now I try and get in the habit of having people try out CLI tools while I watch. Especially that first run when they have no experience with it is so valuable! The grumbling is also very valuable ("that's a weird name..." "why does is this option different?")

exolymph 10 hours ago 2 replies      
Support work is all about empathy.
kazinator 5 hours ago 1 reply      
When people click on example UI images and call support when nothing happens, IT'S THEM.

The idea that a lot of people doing the same thing can't be wrong is wrong: yes they can be wrong.

The solution which was put in reflects the view that it was them all along. Everything is exactly the same in the UI, except that the subset of the user base which does a silly thing now gets feedback that they are doing a silly thing. No design change has taken place so that fewer (or no) users actually click on the images!

If the developer believed that these are intelligent people who have a reasonable mental model of the system, but who are somehow visually fooled by the layout into clicking on inactive elements, then a true design change would have followed.

The goal of reducing support calls was achieved, of course.

FussyZeus 9 hours ago 5 replies      
This person is clearly not familiar with the militantly computer ignorant segment of the user base. Yes, there are ways to write instructions to they are better/easier to follow, and yes there are plenty of examples of software that is out there that's just absurdly and unnecessarily hard to use. BUT, there is also a large segment of the user base out there that is willfully ignorant of how computers work and do not want to learn. They want the IT people to come down and do it for them, and they will make it happen no matter how many times they need to bounce back clear and simple directions to the help desk.

I'm not saying the author is one (certainly doesn't sound like it) or that it's even a majority, I'm just saying that when I do need to call for tech support, I understand exactly why they tend to act the way they do and don't take it personally. Some people are just rock stupid and some of that group willfully remain so.

Does that mean all the elitism around IT people is warranted? Of course not, part of your job as support is working with people who you know, NEED SUPPORT. If you aren't down for that job then you really shouldn't have applied, and you shouldn't be treating everyone like an idiot even when you're pretty sure they are. That's what you're paid to do.

calhoun137 4 hours ago 0 replies      
It's not the users fault for being stupid, it's your fault for assuming they are not.
danieltillett 10 hours ago 3 replies      
Just assume your users are illiterate, innumerate, and have a broken mouse that randomly clicks and you will be fine.
headShrinker 2 hours ago 0 replies      
Sorry but this statement and this ideology is flawed. The user isn't right, the user only is good at what they know. Apple or even Ford have proved that when asked, the user wants a faster horse, cause they don't understand the concept of a car. This is the fault of the user not realizing the potential, maybe because of their lack of imagination, or intellect. Or competitors are marketing to id appeals. Users don't think, but they should.

Hypothetical Example: dating site users want an ltr with a 6, but are often seduced by the potential for a one night stand with an 8. Users have chosen 8 but the moral ethical and socally acceptable choice is the 6 with the potential for an ltr. The user is wrong but they hooked up and are happy... Is a site that caters to ltr6's wrong?

However, too often products have massive flaws that designers should have predicted.

Ansible 2.0 released ansible.com
234 points by tachion   ago   67 comments top 13
loevborg 10 hours ago 1 reply      
Ansible is probably the single most useful tool for doing working with servers today. It somehow manages to be simple and very featureful at the same time. Personally, a good chunk of my effectiveness in workings with servers and cloud provisioning can be directly attributed to it.

I've been using pre-releases of 2.0 for a few months now, mainly for its improved support for AWS services like dynamodb and IAM policies. I've had nothing but good experience with the new version, which cleans up the code and brings more consistency. Working with AWS, ansible shows its strengths by exposing to the developer a simplified API which gets you 95% percent of the way -- pretty much what you wish you'd get from Amazon. I feel that ansible does cloud provisioning not just easier but better than most other tools, including Amazon's Cloud Formation.

Ansible's playbooks (recipes for provisioning servers or infrastructure) read like pseudo-code, and although it's sometime not obvious how to write an idempotent playbook for a piece of software, it is always obvious what an ansible YAML file does (despite the obvious shortcomings of YAML for this job). This is important in the devops world: all knowledge about the infrastructure is codified in version-controlled ansible code and doesn't get lost when the job passes to a new hire.

This also means that you can often find a playbook for software you want to deploy already written on github (search with "language:yaml"). Often you won't be able to copy and paste it verbatim, but looking at how someone else has solved a problem (install java, configure apache, etc.), it will be obvious how to replicate it.

Every time I finish a piece ansible code, I smile -- about how many other tools can you say that? Congratulations to the team and all contributors for the new major release (and to the company for its well-deserved recent acquisition)!

matt_wulfeck 10 hours ago 3 replies      
Ansible and Salt were both huge steps forward for provisioning. However, after switching to immutable resources I've largely replaced the need for such services.

I don't mind that there's a panoply of bash scripts to configure docker builds. It's simple and it works and nearly every engineer worth anything knows how to read and write them.

A good bash script never goes out of style.

oskarpearson 13 hours ago 0 replies      
There are some good changes here:


- Given the dynamic includes, you can use variables in some places you couldn't before , which allows you to pass items in on an include.

- Error handling now uses a try/catch structure with block/rescue/always, which is much clearer than capturing a 'register' variable and handling it later

- It has a new 'free running' mode, where operations can be run on remote hosts as fast as they can be processed, rather than at the speed of the slowest host

- Lots more cloud-oriented modules

skywhopper 9 hours ago 2 replies      
Love Ansible, but am I the only one who has found 2.0 to be unbearably slow? Some patterns I use may now be anti-patterns I should factor out, but even with some optimizations, I'm finding Ansible 2.0 to be 3-4x slower than 1.9. Maybe it has to do with # of hosts or variable field depth, but it's really really depressing.
herge 11 hours ago 2 replies      
Man, I am really happy that playbook parsing and error reporting has been improved.

Almost all the frustrations I have had with ansible haven't been from individual modules, but from the mini-language in playbooks defining what modules gets run when with what input variables. Almost pushed me to do away with playbooks entirely and just call ansible modules from a python script directly.

smegel 1 hour ago 0 replies      
I only skimmed over the release notes, but I hope they avoid adding too much complexity and keep it's prized simplicity.
jasonrhaas 2 hours ago 0 replies      
Excited about the block functionality and the new execution strategies! I will definitely try them both out to see if I can optimize my Ansible code even further.
kyriakos 4 hours ago 0 replies      
I'd love windows support on the control side.
jzd 5 hours ago 0 replies      
fnordo 9 hours ago 1 reply      
Really looking forward to getting into this but it doesn't look like they've documented all the modules yet.Specifically I'm trying to find more information on the hashi_vault module
lifeisstillgood 10 hours ago 2 replies      
I am starting with Ansible and pretty much my first thought was to write my own "super" python scripts that called Ansibke instead of using playbook and their DSL

But, is this a good idea? As the first six comments here are starting that discussion, what are the pros and cons?

The API may be rich but it feels a second class citizen. But DSLs are really hard to get right and often lack ... Everything.

merb 9 hours ago 1 reply      
it would be great if rolling updates would work now..
bovermyer 1 hour ago 0 replies      
I was about to make some witty and intelligent comment about Ansible and its usefulness for cloud orchestration, and then I remembered that I've drank over half a bottle of wine and it's time to pass out, so g'night.
H.265/HEVC vs. H.264/AVC: 50% bit rate savings verified bbc.co.uk
179 points by kungfudoi   ago   105 comments top 14
ju-st 14 hours ago 7 replies      
VP9 vs H264 vs H265:

- Next-gen codecs provide 50% bitrate improvements over x264, but are 10-20x as slow at the top settings required to accomplish such results.

- Normalized for CPU usage, libvpx already has some selling points when compared to x264; x265 is still too slow to be useful in most practical scenarios except in very high-end scenarios.

- ffvp9 is an incredibly awesome decoder that outperforms all other decoders.


envy2 12 hours ago 3 replies      
Interestingly, the place I've seen the most widespread adoption of HEVC is China: Android-based set-top boxes with hardware H.265 decoding are widely[1] available[2], and a number of the major IPTV services (both authorised and unauthorised) are using it, including for live content.

I was quite surprised to find I was able to stream a very high quality 1080p movie on a random unbranded Chinese IPTV box at ~2mbps that looked every bit as good as what Netflix streams at 5mbps.

zokier 14 hours ago 4 replies      
I wonder if the choice of encoder has an impact to the results; on a quick glance they appear to use Fraunhofer reference encoder for H.264 whereas afaik x264 is the state of art wrt subjective quality.

In my unprofessional opinion 8 Mbps sounds quite low for 4k h264 encoding, I would expect that sort of rate for good quality 1080p encoding (Blu-Rays being in the 20 Mbps range afaik)

asb 15 hours ago 4 replies      
It's a shame the royalty-free VP9 wasn't also included in this comparison.
blinkingled 13 hours ago 0 replies      
voltagex_ 8 hours ago 3 replies      
This is completely offtopic, but I'd love to do some encoding tests, except that the canonical test clips seem to be from Big Buck Bunny - animation encodes differently than live-action video.

Does anyone know of some Free-as-in-speech clips from a wider range of sources/cameras that I can use without being sued into oblivion? Australia doesn't really have Fair Use provisions.

leeoniya 15 hours ago 4 replies      
wonder how Daala is coming along. no news in a while but there is code happening:


chocolatebunny 15 hours ago 5 replies      
Wasn't it supposed to be 75% savings. When HEVC first came out the claim was that 4K HEVC encoded video would have the same bitrate as 1080p AVC encoded video.
nightcracker 14 hours ago 1 reply      
I think that the encoding time needs more attention too, as it's crucial for livestreaming.
shmerl 8 hours ago 0 replies      
How soon will Daala + Thor (with some new name) shape up into something ready for production?

Also, does anyone know what is the situation with DASH? It seems that MPEG-LA cartel tried to create some FUD about it being patent encumbered.

Thaxll 15 hours ago 1 reply      
Hopefully ffmpeg will get speed improvements for H.265/HEVC, last time I checked it was way to slow to be used.
cm2187 15 hours ago 4 replies      
Can H265 benefit from Quick Sync hardware acceleration or is it just for H264?
imaginenore 15 hours ago 4 replies      
If you look at the latest movie/TV torrents, HEVC is gaining popularity, and the files are indeed half as big.
ilurkedhere 9 hours ago 1 reply      
Does one need to pay to use this new codec?
TIS-100P on the App Store apple.com
104 points by shawndumas   ago   21 comments top 9
lazerwalker 11 hours ago 2 replies      
I love this game, and am so happy to see it on the iPad.

That being said, it's a bit of a shame it uses a virtual keyboard. Given the relatively constrained set of possible inputs (a dozen instructions, plus UP/DOWN/LEFT/RIGHT/ACC/NIL), it would have been cool to see him explore some more experimental touch-friendly input methods.

0x54MUR41 1 hour ago 0 replies      
If you want to play an emulator of TIS-100 in PC, I would recommend this one [1].

It is TIS-100, not TIS-100P. I don't know what difference between those.

[1]: https://github.com/eviltrout/tis-100

brian-armstrong 3 hours ago 0 replies      
TIS-100 is a fantastic game and it gives you lots of opportunities to use any dataflow or compiler optimizations you might know about. The instruction set is rather limited, not even giving us shift or bitwise ops, but it turns out to be more than sufficient.

I've made a youtube that demonstrates some pipelining and loop unrolling in one of my solutions for Signal Averager. This video does contain some spoilers but will give you an idea of what's possible in TIS-100, just in case you're on the fence :) https://www.youtube.com/watch?v=XBfEcxvJ6aY

minimax 8 hours ago 1 reply      
I really loved playing this game on Steam and I would happily pay for more levels. I wonder how useful TIS-100 would be for teaching programming. The limited instruction set and number of registers make for a very simple and easy to understand programming environment.
jdcarter 11 hours ago 1 reply      
I've enjoyed playing the Steam version of this. Really good puzzles and even has a story line. Print out the manual for a proper old-school experience!
candeira 10 hours ago 1 reply      
Someone make an API to link this and Starfighter.io.
paste0x78 10 hours ago 0 replies      
Would love to see this on android since its built in unity (or at least the original was).
artursapek 12 hours ago 2 replies      
Pretty niche market they're going after with this one! I'd buy it if I had an iPad.
[India] TRAI is going hammer and tongs after Facebook [pdf] trai.gov.in
12 points by stultus   ago   4 comments top 4
stultus 1 hour ago 0 replies      
Main Points -----

First, Facebook tried to mislead it's users into sending emails to TRAI which just said "We support Free Basics".

After receiving hordes of such emails, TRAI picked on Facebook to communicate with the senders in order to advise them to send emails that contained answers to the consultation. Accordingly, TRAI extended the consultation period by 7 days.

Facebook responded towards the end of the period that they were unable to reach users. Apparently, they claimed in their letter to TRAI that peoples' support for Free Basics in the emails (somehow) translated to answers to TRAI's questions.

Facebook claimed that 11 million emails were sent to TRAI through their platform. TRAI says it only received 1.89 million.

TRAI has declared that it has not received any revised responses.

achanda358 38 minutes ago 0 replies      
Weird how official letters to Facebook were sent to a hotel. I'm sure they have a permanent office in India.
aneeshnl 44 minutes ago 0 replies      
Hope TRAI scraps it and go to favor of net neutrality
bugger_guy 53 minutes ago 0 replies      
good move to finally unmask and reveal fbs real face. hypocrisy at its peak. supporting diff pricing and the only internet firm to side with telcos on breaking net neutrality
       cached 13 January 2016 08:02:04 GMT