HNHacker News
TopNewBestAskShowJobs

akyu

700 karma · joined November 11, 2014

wrong about everything.
submissionscomments
akyu··on Inheritance versus Composition
Been hacking on a side project in Go, after coming from a career of nearly exclusively using OO languages, with a little bit of functional here and there. And of course enjoying all of the new functional features that nearly every big language has been racing to implement these days.

At first there I had some quirks, along the lines of "how do I get thing X from A to B", or "these things are similar how do I share code between them".

Everytime this happened I couldn't help but go through a process of solving the problem in OO and then unwrapping it into a non-OO solution. Which doesn't always turn out well.

Eventually, once I became comfortable with Go, I got to the point where I just code things in the most obvious way possible. This struct has these fields. This function takes x and produces y. I dont try to take a big picture view of the software as a whole, Im just solving a bunch of small localized problems one after the other. Then I refactor periodically to get rid of anything completely stupid, and make sure the big picture looks ok. The name of the language is quite fitting, you just go.

Whereas in OO, for me at least, it feels like im constantly bouncing all around the abstraction layers of your program. Any change I make here in class X could affect these other classes. Class A is dependent on Y, but so is class B. How do I share it between them? Maybe dependency injection? Subclasses? Do I refactor to an abstract class? Wait, should it be an abstract class or an interface, what's the difference again? Is this generic enough? I only need to use this in this one place, but I'll make it generic because "best practices". What if I might need this other subclass eventually but it's not on the spec right now?

I'm obviously exaggerating, but I think most of us have been there. I find I often end up in a competition against myself about being more clever or more reusable with my OO code.

Our job is already hard enough when you have to decide and reason about algorithms, data structures, concurrency etc. The extra layer of code patterns usually just obscures things.

I'm not a complete hater though. Using a well designed OO library can be an absolute delight (PyTorch being a great example). But OO is the kind of thing were its not just garbage in garbage out. The garbage multiplies and creates even more garbage.

akyu··on Stripe’s fifth engineering hub is Remote
They can also be hard to find because they won't be advertised as remote. I'm full time remote but this wasn't mentioned in the job description, and I only found out after getting the job offer. I think management had the sense that advertising the position as remote attracted "the wrong kind of people".

I guess technically I have an "unlimited work from home" policy, because I do still have a desk if I want to go in.

akyu··on Think You’re Discreet Online? Think Again
Just to clarify, I wasn't talking about using TOR in my post. I found a certain configuration of Firefox config settings and Add-ons which will fail every CAPTCHA on any site. This is without a VPN, from my home IP address, which I found bizarre as that should be more than enough to identify me uniquely.

And your solution is good. But its kind of ridiculous that we have to jump through hoops like that to stay private.

akyu··on Think You’re Discreet Online? Think Again
I would love for something like that to happen, and given all of the activity in the blockchain space, someone will probably come up with a clever solution. I just have a hard time imagining a motivation for Google to switch to using such a thing even if it were invented. They way it works now benefits them.

But even just looking at it from a purely technical perspective... If CAPTCHAs are intended to be "completely automated public Turing test to tell computers and humans apart", then its quite clear that they no longer accomplish this. I am a human and I can't pass. The model is wrong, build a better one.

akyu··on Think You’re Discreet Online? Think Again
Theres another downstream issue of this that many people seem to be unaware of.

I've gone down the road of trying to create a super private browsing experience.(www.privacytools.io for a good start).

The issue is the web experience degrades rapdily and quite frequently is unusable. You have to block CDNs for a start if you really wanna go full paranoia mode. And there's too many other issues to list here.

But the biggest issue, is that Google's CAPTCHAs become unsolveable. I mean literally they wont let you pass. You will get served a large sequence of captchas. I've experienced up to 6 for a single verification. And not only do you get more, but they deliberately add an excruciatingly slow delay to each image. It can take 10-15 seconds to solve a single image set, and then you still need to do 5 more.

Also interesting side note, it seems they are injecting adversial noise into the hard captcha, as I noticed faint distortions in most of the images.

Bur even with your best effort to solve them you will not get through. Ive repeated this experiement many times. It seems that preventing browser fingerprinting is the thing that really makes them put up a redflag, but its hard to know for sure. And I'd like to emphasize that none of the privacy modifications I was using make any significant change to normal browser functionality. You still have JS, you still have cookies (through Firefox containers).

Anyway the scary thing here is its very easy to extrapolate this further and get to an internet where you either opt in to be tracked, or you are effectively throttled/gated on huge parts of the web.

Google CAPTCHAs have gone from asking the question "Are you human?" to "Which human are you?".

And the beautiful, incredible irony is how this contrasts with Google's very public stance on net neutrality.

"Internet companies, innovative startups, and millions of internet users depend on these common-sense protections that prevent blocking or throttling of internet traffic, segmenting the internet into paid fast lanes and slow lanes, and other discriminatory practices. Thanks in part to net neutrality, the open internet has grown to become an unrivaled source of choice, competition, innovation, free expression, and opportunity. And it should stay that way. "

Do as I say. Not as I do.

akyu··on DeepMind and Google: the battle to control artificial intelligence
>We're nowhere near it.

So?

>We don't even have a good idea what it would look like.

This should make you even more worried.

akyu··on Dear OpenAI: Please Open Source Your Language Model
Ah I missed that.
akyu··on Dear OpenAI: Please Open Source Your Language Model
My conspiracy theory on this: This entire fiasco is actually an experiment to gauge public reaction to this kind of release strategy. Eventually the point will come where the choice of releasing a model may have real ethical considerations, so they are test driving the possibilities with a relatively harmless model.

Given the, in my opinion, huge overreaction to all of this, I fear this may only encourage AI research groups to be more secretive with their work.

akyu··on OpenAI Five at Dota 2 – The International [video]
My guess is there was some tell that they were using to predict the timing.
akyu··on OpenAI Five at Dota 2 – The International [video]
Those were some exceptional children.
akyu··on OpenAI Five at Dota 2 – The International [video]
Saying 200ms flat reaction time is "human level" is really unfair. That is raw reaction time when a is human paying attention for a stimulus, like in a reaction time test.

Lets look at casting a spell in a Dota. First I need to perceive my target. Then I need to move my mouse to the target, which is error prone. Then I need to press a button and click. Even for a human with extremely fast reaction time, this targeting phase will put you above 200ms easily, even if your perceptual reaction time was only 200ms.

The OpenAI bots don't have to target. They process their input, and take an action in just 200ms.

There may be situations where a human can make predictions, pretarget something and get a true 200ms reaction time, but in the general case 200ms is super human by a significant margin.

akyu··on Dealing with Hard Problems (2015)
I got a great deal of insight on problem solving from being a university teaching assistant for 2 years. Every couple of weeks or so, there would be a particularly difficult assignment, and I would get many visitors during office hours that week.

The first thing I would always do is have the student walk me through their current understanding of the problem. What surprised me was how incredibly wide the range of mental models students used was. Also it was interesting that quite often students make their mental models far more complicated than the actual problem.

My job was really just to help the student simply and clarify their mental model, and from there they usually solved the problem on their own.

Smart data structures are better than smart code. I think this applies to your mind as well as code.

akyu··on Theranos Inc.’s Partners in Blood
I called out the fake voice thing years ago. It was blatantly obvious, but I guess people were afraid of being "sexist".
akyu··on Show HN: Whiteboardfree – Developer Jobs at Companies That Don't Whiteboard
Whiteboarding is fine when done well, horrible when done poorly. The variance is on the side of the interviewers.

I've done a lot of interviews over the years, and I've encountered a couple stereotypes:

1. The gotcha interviewers. He pulled out his old algorithm text book and found the hardest problem.

2. The no bullshit interviewer. Asks you to code a somewhat challenging, but solvable problem. No tricks. Basically non-trival fizz buzz problems. The problem with these is there are only so many practical problems you can give before it gets put up on leetcode, and every interviewee has memorized the code.

3. The clueless interviewer. They try to give you a weird mix of an IQ test and a personality test, and maybe throw in a little bit of API trivia while they are at it.

akyu··on Artificial Neural Nets Grow Brainlike Navigation Cells
It would be remarkable if biological neural networks don't use gradient descent. They very likely do even if it is a highly approximate gradient. Neurons are optimizing for some objective, and the gradient is usually a very efficient way to do that optimization. It would be remarkable if evolution missed out on such a thing. Even simple Hebbian learning can be viewed as a gradient descent technique.

Gradients can be calculated in remarkably simple ways. Look at Hinton's recirculation networks for example.

I think you meant to say backprop.

akyu··on Bayesian Generative Adversarial Networks
Resistance is futile. You will be assimilated.
akyu··on Many junior scientists need to take a hard look at their job prospects
As someone in the process of applying to PhD programs right now, these comments are quite disheartening... scary even.
akyu··on Alphabet’s CapitalG Leads $1B Round in Lyft
So much for that "winner take all" narrative.
akyu··on Don’t Fall for Babylonian Trigonometry Hype
Glad to see Wildberger getting some recognition, even if some of it is mixed. His rational trigonometry is an entirely rigorous and interesting piece of mathematics even if you don't think it's particularly pragmatic.
akyu··on Why Deep Learning surprises me
>It doesn't have much with the actual innate quality of understanding

That was his entire point.

akyu··on Even moderate drinking could harm the brain
Quit drinking completely 6 months ago. Don't have any intention of picking it back up. Friends think I'm weird, but the mental clarity is worth it. Funny how alcohol is so ingrained in our culture that it's strange not to drink it.
akyu··on Every neuron potentially has a different genome than those it's connected to
I read a research paper a couple years ago making an argument that neurons were using DNA as a kind of Turing tape for information storage. Very interesting but I can't seem to find it now.
akyu··on The Myth of a Superhuman AI
I completely agree with the author. Hiding my head in the sand and plugging my ears will completely avoid the AI apocalypse.
akyu··on Consciousness as a State of Matter (2014)
The math in this paper is beyond your average Hacker News poster. So no wonder these comments are just name calling.
akyu··on How brains are built: Principles of computational neuroscience
If you are talking about building AI, maybe you have a point. But its pretty clear the domain of discourse here is computationally understanding the brain. In which case I think it is prudent to actually understand the brain.
akyu··on Uber CEO Plays with Fire
Mr. Kalanick, with salt-and-pepper hair, a fast-paced walk and an iPhone practically embedded in his hand, is described by friends as more at ease with data and numbers (some consider him a math savant) than with people.

I chuckled a little bit reading this.

akyu··on 'Explainable Artificial Intelligence': Cracking Open the Black Box of AI
>Something deeper is happening when I am able to correctly identify dogs that is unexplainable, at least by me.

There is an interesting experiment you can do to directly demonstrate this to yourself

From Julian Jaynes' The Origin of Consciousness in the Breakdown of the Bicameral Mind

> Take any two unequal objects, such as a pen and pencil or two unequally filled glasses of water, and place them on the desk in front of you. Then, partly closing your eyes to increase your attention to the task, pick up each one with the thumb and forefinger and judge which is heavier. Now introspect on everything you are doing. You will find yourself conscious of the feel of the objects against the skin of your fingers, conscious of the slight downward pressure as you feel the weight of each, conscious of any protuberances on the sides of the objects, and so forth. And now the actual judging of which is heavier. Where is that? Lo! the very act of judgment that one object is heavier than the other is not conscious. It is somehow just given to you by your nervous system. If we call that process of judgment thinking, we are finding that such thinking is not conscious at all. A simple experiment, yes, but extremely important. It demolishes at once the entire tradition that such thought processes are the structure of the conscious mind.

akyu··on Unsupervised sentiment neuron
No this is quite a bit different. In transfer learning in computer vision, people are using a network trained on another, typically large dataset, and using the learned features on a different data set.

This LSTM simply learned to predict the data. It didn't learn some other supervised task.

This would be more similar to autoencoder pretraining, but even that is not quite the same.

akyu··on Unsupervised sentiment neuron
They are using the term unsupervised properly, but do I like your characterization of callling it "coincidental". That is basically the essence of unsupervised learning. We have a system doing something (typically some form of optimization), and "coincidentally" it learns something useful that we did not explicitly tell it.
akyu··on Ask HN: Does it matter which deep learning framework I use?
I was using Keras pretty heavily, but I have switched over to fully using TensorFlow. Once you build a decent library of boiler plate, Tensorflow becomes very usable. Packages like prettytensor may even surpass Keras in terms of usability. Also I found the Keras documentation to be quite lacking, and ended up reading the source code much more often than I would like to.

I ended up bumping into the edges of the Keras API too much, and coming up with hacky type solutions to do things that are actually quite simple if you just do them in TensorFlow yourself.

Theano and Torch are also great options, but I think I will be sticking with TensorFlow, simply because I trust that Google will be putting solid effort behind it for years to come.

← PreviousPage 4 of 5Next →