HNHacker News
TopNewBestAskShowJobs

nickcano

93 karma · joined January 6, 2015

submissionscomments
nickcano··on Ask HN: Anyone here make a 'comeback' from rock bottom? What is your story?
I don't know if this qualifies as rock bottom, but here goes.

As a baby, I was adopted by the mother of the man who was married to my biological mother, and at the time thought to be my father, but wasn't my father. Growing up, I knew this, and always had underlying issues relating to the mess which enshrouded the ordeal; my parents being drug addicts, the person who was thought to my father dying of an overdose, and a lot of other stuff. I knew the whole story quite young. On top of this, the family put me in the company of a handful siblings which were drug attics, whose actions were quite clearly visible to me.

My adopted mother was in her mid 50's when she got me and my sister, at which point her life should have been winding down, but she had been taking care of her own kids from the age 17 until her mid 40's, and here were two kids again. She was angry, and bitter, and while I could see why, she very aggressively, even though she still denies and refuses to realize it, took that out on us. It wasn't fair to us, but I think it's safe to say she was better than the alternative (and she did quite literally save my life; I would have died of pneumonia and meningitis at 3 months while sick and living in a car with my drugged-out biological mother, and I apparently almost died anyways).

Anyways, going into our teens years, me and my sister grew farther and father away from her. I and I alone remained close with my adopted dad, but it was mostly because he kept quiet to prevent her verbally abusing him, as well. Plus, he was always teaching me about electronics, woodworking, mechanics, and the general skill of "building shit".

Around 13, my sister and I got in an argument with our mother, and she told us she wished she'd never adopted us and that she couldn't wait for us to be gone. So we left. I was gone for a week, staying with friends and sleeping a night in a park before she picked me up from school. My sister, she fell in with some bad people, got into some stuff, and ultimately ended up coming home a week after me, telling the cops she wanted to kill herself, and got placed in a mental hospital. She was there for 8 months or so, then moved to a group home. After 4 or so months in the group home, my mom realized she could do the same to me, so, come summer before highschool, she did.

I was an hour away from anything I knew, my sister, my only blood, being 3 hours in the other direction. It played quite hard emotionally; suicidal and whatnot. I was only there a year, and saw far more tragic stories of kids left behind by the world, and honestly it made me resent my family-mostly mother-even more. These kids had terrible, terrible situations, and I was being thrown in there because I wasn't wanted. Not out of necessity, as they were. I remember, one time, the staff made my mom take me to a doctors appointment because they were busy with the kids who belong there. The whole ride she bitched and moaned, and I remember her once saying "this is their job, not mine."

After the homes, we moved back with my mother, but she picked up, left California, and moved to Tennessee with us. My dad, the parent, I was close to, did not join us. A whole mess of shit happened after that, too, but suffice to say the whole ordeal and the rebelliousness before it lead to grim situations for us. As a kid, I was always good in school, top of my class, but not since about a year before the home, and not after, either. I absorbed myself in my computer at night, and when I wasn't asleep at school, I was taking out my rage and angst on the teachers. I wasn't violent or anything, just an angry, seething confused jackass of a kid out to prove the world wrong; it didn't help that this school was full of unqualified teachers, that just made me worse. From 8th grade to graduation, I had had 6 expulsions and at least 200 days of suspension (most expulsions were a result of excessive suspension). I failed almost every class I had. At one point, my mom had the brilliant idea that this might be due to some form of retardation, so she had me tested for special education (I obviously failed that test, just like all of my classes). Throw in some teen pregnancies, abortions, and miscarriages for some extra emotional issues (in retrospect, it was the best personal outcome that none of those went to term, but doesn't change the emotional damage they had).

By the end of it, I "graduated" with a 0.89 GPA. I still don't think it was possible, but there were a small handful of amazing teachers that I'm sure played some role. It was rare, but the competent teachers, the passionate ones, I respected and they respected me, and I think they realized there were a ton of issues, and thus pulled the strings on making sure I made it out. Maybe not, I'm not sure.

Graduation came about a month after my 18th birthday, on which my mom presented me with a lease agreement and asked me to sign it before having any cake. She wanted $800 a months for rent and utilities. I happened to know her rent of that four bedroom, of which I had the smallest room with no climate control, was $800. I paid the first month with all the money I'd saved over the years, but after that, I had nothing We got in a fight, so I moved out.

I lived in my car (the car she bought for me, but I took it, no other option really) for a few weeks. Spent some time living with an ex girlfriend, also. After about a month, I picked up and moved to Oklahoma to do freelance coding work with a friend; those years absorbed in my online life had one good outcome: I learned to code. That lasted for 4 months, but I was alone there and miserable. Went back to Tennessee, lived with my ex girlfriend's family, and got a job in a factory. The day after I knew I had the job, my online business blew up overnight. I had been making bots for online games and selling them. The income was in the low hundreds per year. But, one day, my competitor closed up shop and I got all of his business; a surge of $2000 or so on the first day and a couple thousand a month following. I worked in the factory for 5 months, working 10 hours a day 7 days a week, not a single day off. Whenever I wasn't there or sleeping, I was improving my bot. I quit in May, interviewed for a programming job it Atlanta in June, and started that job in July. After a year and a half, I got a security engineering role in Silicon Valley, and took that. I had made connections along the way, and was writing a Game Hacking book at the time, which is now finished. I worked there for 3 years, then moved to another security company. I'm currently working there from the comfort of my downtown condo in San Jose. Along the way, I wrote my book, spoke at almost a dozen conferences, and started working on some online classes for Pluralsight (currently in progress!). I'm 24 now. The side business with my bot has been going the whole time; it's shutting down sometime this year due to the game changing their client, but I'm okay with that. It's made about half a million gross by now, and I'm extremely proud and humbled by the experience.

Multiple times throughout this climb, and even now, I find myself confused emotionally. It's extremely hard to be happy, or to smile. It's hard to have any negative emotion besides anger. I can laugh and have fun, but I don't just smile, I'm quick to anger like my mom was, and I'm never just in a ground state of happiness. I find myself at times seeking pain because it's what I knew, and this success is still new to me. When I was first in Georgia, I realize I was trying to develop problems. I drank more than I cared to because I wanted something to be wrong with me, etc. It's fucking weird. I hate my personality and attitude now, but I shouldn't. I should be happy. I'm proud and excited about the future, but for some reason not content.

Man, I know there are people who had it way worse than me. I lived with some of them, and I know there are others in much worse situations (worm torn countries and such), so I feel really selfish to call this rock-bottom, but it was mine. I feel like it's wrong of me to think I came from some astronomically shitty odds, knowing what the real odds are for a lot of people, but I do. I don't know, I've never got to really share this story (and there's a lot I'm leaving out for obvious reasons), but it feels nice to, and I don't know why. I'm looking forward to now reading other people's stories.

P.S. don't tell me to see a therapist or something please, I'm not here seeking advice, just wanted to share.

nickcano··on Amazon has made a change to the way it sells books, which may hurt publishers
Author here.

At least, from my experience, they are. No Starch Press went above and beyond when working on my book, and they're currently getting hit hard by the counterfeiting issue.

Not like there's a need to justify anything here, but I'll go over some of what a good publisher does. Multiple waves of editing with an editor who knows you, knows your content, and works with you every step until everybody is happy. Technical review, where they seek experts who ensure the validity and accuracy of the content; just like we developers use code review, good publishers provide tech review. Copy-editing, proofreading, redrawing of graphics, constructive feedback, the list goes on. For an author, all of these steps are quite daunting, but, by then end of the process, the content is far beyond what it was upon initial regurgitation. That's not even considering the amount of marketing they do after release; getting authors radio and podcast interviews, news articles, and book signings at conferences.

Have fun soloing that and still keeping your day job.

nickcano··on Amazon has made a change to the way it sells books, which may hurt publishers
The problem is, when counterfeiters become the default in the buy box, it gives them market they wouldn't otherwise have.

If you go to a bootleg site, you expect bootleg books. If you go to Amazon, you expect legitimate books.

nickcano··on Dammit LinkedIn, I'm a college dropout (2009)
Holy shit, posted in 2009 and still no change. I see this every time I'm on LinkedIn--I hate it. Still nowhere for me to add my book (sure, publications, but it will drown under more recent talks and papers), but it can harass me about my non-existent schooling.

What would be the harm in making the widgets modular and more customizable? I'm not asking for CSS, but let me completely remove sections that don't apply, and add new generic ones as I see fit.

nickcano··on Mac Pro 2 Concept Design
At my last job, we had servers with 64 cores, 1TB ram, and 100+ TB of storage that were taxed to their full extent by one or two people at a time. The job was essentially taking multi terabyte datasets and matching, filtering, and mutating them based on some customer requirements.

Those servers cost a ton of cash, and we had a handful of them. I could easily see my workflow being improved and maybe even money being saved if that much horsepower was given locally to the few who used it most. But the server model also worked fine.

Personally, I have a monstrous box at home in terms of GPU, ram, and processing power, and it's mostly useful for running automated tests in multiple VMs at a time, kicking ass with ocl-hashcat, and doing hardware accelerated ML training. I don't do those things often, but I'm glad to have a beast when I do. Also, it's fun to eyefinity dual 4k on full settings ;)

nickcano··on Headphone inline controls – how they differ on Apple iOS vs. Android/Nokia
This causes a ton of compatibility problems, and it's worse that a lot of companies don't seem to care and advertise compatibility anyways. I noticed this a while ago when I wrote this review: https://www.amazon.com/review/R2RH78QWKSM5W7/ref=cm_aya_cmt?...
nickcano··on JavaScript Conquered the Web, Now It’s Taking Over the Desktop
>about every strange error they get from another programming language that js would have just passed silently with a weird result

Wait, do you mean to imply that "passing silently with a weird result" is somehow better than throwing a verbose, descriptive error?

nickcano··on Humans Who See Time (2010)
I mean, yeah, that's what I feel like is going on. I think it's more like when somebody says the word "January", I pick up that it's a tag in many contexts, one being time, and start picking information associated with that tag. If the "active context" is time, then I'd start thinking about what happened around that time, what's coming up next January, etc.

The same happens, for instance, if somebody says "the park"; I don't get a mental image of the park, I just start thinking about things associated with it (typically things that happened there).

I can do the whole "visual memory" thing, but it's a conscious process that I have to focus on, rather than something that comes automatically. That's not to say my visual memory is bad, just not default.

I always figured this was how nearly everyone thought, but after reading this thread I'm questioning it now.

EDIT: also there's some kind of search tree balancing going on, I think. Because sometimes you may ask me what happened in January, I feel like I sort of mentally go over everything and do a quicksort type of process? But only if there's a lot of past events that aren't already associated with the January tag? I don't know it's hard to explain.

nickcano··on Humans Who See Time (2010)
>I simply don't visualize it, I think of it as an abstract concept and don't try to put a picture on it.

Right. When I'm asked "what happened in January", I just think back to January. There's no mental picture or anything; I just select for January. Typically I'll use some significant event markers and a sort of relativistic system to remember when things happened (e.g. x happened before y but after z, and I know y was in February and z was early January). No imagery ever comes in to play.

This is really tripping me out that so many people think so differently.

nickcano··on Personal flight, once a pipe dream, is within our reach
That's interesting, I wonder what happens if you take one of the current prototypes and hover off the ledge of a canyon... Will you drop suddenly and go splat, or will you keep altitude? Intuition says the former, but I'd like to know objectively.
nickcano··on Nick Farr's 30c3 Jake Appelbaum story of abuse and harassment
>without some kind of public showdown that involves social media.

Maybe many tech communities are capable, and you just don't realize it because they're not having public showdowns.

nickcano··on Software security suffers as startups lose access to Google’s virus data
>bullet proof since it's likely that any sample used to test its effectiveness will be run by VirusTotal first.

Nope. There are lots of situations where exploit kits will automatically re-compile and re-pack malware on-demand in ways sufficiently complex that they eliminate any signatures and evade AV detection.

A lot of companies are using VT as a filter for known bad to prevent even having to deal with such samples, but many unknown bad samples still exist and make it past the VT engine, only to be picked up by behavioral detection.

Conversely, a small number of known bad samples that are caught by VT can slip by behavioral detection engines that are gated by VT, causing infection (when VT is removed) where it would otherwise be prevented. Of course, in these cases, it is the fault of the behavioral vendor for not having sufficient behavioral detection, but relying on VT does make that easier. For instance, many companies have a loop where they can take samples detected by VT, run them constantly through an automated analysis lab, and see whether or not their behavioral analysis detects each sample. In the cases where it fails, that sample has a direct line to analysts who can reverse engineer it, come up with new behavioral patterns, and add it to training sets for any machine learning based detection. In this sense, not having VT support makes everything less safe.

The next issue is that companies like this simply can't be run on VT's platform because they're too heavy, as the article mentions. I think a good middle ground here would be to turn this analysis loop into a feedback loop by adding one more step: in cases where behavioral detects and VT does not, submit the report to VT in a standardized format so it can be added to their corpus.

nickcano··on “We're considering banning domains that require users to disable ad blockers”
The bottom line, though, is that ads DO serve malware. I work for an endpoint protection company and the most common traces we get from our customers are ones that originate from ads on legitimate websites.
nickcano··on Are We Living in a Computer Simulation?
>the biggest reason to think the universe isn't a computer is just how darn non-computable quantum mechanics is

If an intelligence is simulating a universe, they aren't exactly going to be doing it von-neumann style.

nickcano··on Are We Living in a Computer Simulation?
How, though? Assume a particle has some Flatten() method that is called only when it interacts with another particle. Until this is called, certain data points (let's say, anything not related to it's movement through space) could be either undefined or out of date.

When this function is called, it causes some algorithm to set up these data points. You can extend this to treat entanglement as copy-on-write style branching, where entangled particles A and B have some subset of their properties stored in the same physical memory, but calling this methods causes writing to those properties, and, thus, when the function is called for particle A, a copy of the properties is made for both A and B, and the evaluation is done for both.

nickcano··on Are We Living in a Computer Simulation?
>I remember reading once that the limitation on speed of light could be a performance optimisation.

>Things in superpositions only becoming "set" after observation... that is just lazy evaluation.

I've always thought about it this way also, I'd love to get a source on where you read it so I can see a different take than my own.

Some other things to consider:

1. Planck length is the most granular unit or pixel the computer can measure.

2. The time it takes to move one Planck length at the speed of light is the time of one iteration of the simulation's "main loop".

3. The reason time dilates as you approach the speed of light is because the faster a particle moves, the more the main loop must access that particle, and the more the particle's state may be in a "being processed" lock where it can't be mutated by anything else.

Just some thing I've always thought about when trying to see if I could use code patterns and processes to quantify the behavior of the universe. Of course, I wouldn't say I believe these things as fact or anything, just awesome to think about.

nickcano··on Are We Living in a Computer Simulation?
Well that's also interesting because it brings the potential count of simulated universes from "some N bounded by the ratio of the amount information containable by a universe to the amount of information containable by all of its simulations processed as a function of the size of the 'master' or 'original' universe" to simply "N = infinity".
nickcano··on Are We Living in a Computer Simulation?
I love contemplating this idea, but really hate when people write about it. They always talk about "The Matrix" or being "Video Game Characters", which really muddies the water. Of course a lot of people will reject the idea when presented like this. The Matrix, for one, is real humans in a real universe being plugged into the simulation of the real universe, which seems absurd. The idea of being inside a video game detracts from people's inherent feeling of free will and self awareness, because it seems to imply they are either a pre-programmed NPC or a character being controlled by some consciousness outside of the simulation. I feel like this flawed first impression makes them less likely to entertain the idea.

At least the way I think about it, these analogies are neither accurate to the theory nor necessary to explain it to the layman. Let's look at it academically. If our technology had the capacity to completely simulate any sort of universe, you can bet a least one research team would do just that. Well, if you, like me and many others, think of the intelligent mind simply as a very powerful and self-aware computer capable of learning and abstract thought, and if the so-called universe simulated by researchers has a model of matter capable of creating the logical gates needed to replicate such a computer, and the simulated universe contains natural processes by which these logical gates might evolve, then you must agree that it is possible intelligent life may emerge in such a simulated universe -- no matter how different, similar, big, or small it is in comparison to our own. Then, following the same reasoning, you must also agree that there is the slightest possibility that the nested universe may produce one or multiple collections of intelligence capable of the same thing.

In this thought experiment, the simulation isn't imprisonment, doesn't violate a sense of self-awareness or free will, and doesn't even rule out the concept of a god or ultimate creator. It simply abstracts the container in which our universe lives from something mysterious to something relatively relatable to our current technology.

Another interesting thought is if we ever become capable of simulating such a universe, it seems much more likely than not we're also a simulation, since there's a possibility for each simulation to produce it's own simulation or collection of simulations.

nickcano··on Deep learning for visual question answering: demo with Keras code
Ideally there should be a way for the model to say "soccer is a type of sport, let's apply this question to every other sport and only say yes if soccer is the best answer", right? I'm not familiar with Word2Vec, but, presumably, there may be some way to get that information and work it into some logical layer on top of the model.

One thing I see all the time with machine learning is trying to solve everything with pure learning, which is quite similar to human intuition in that it can be hard to rationalize. But the thing about humans is that we have these logical constructs that filter our intuition, so it makes sense to create generic abstractions of these constructs and apply them as a sort of filter to the output of a trained model. Of course this has probably been done before, though most of these project I see don't seem to attempt it.

nickcano··on Cleartext: A text editor that only allows the 1,000 most common words in English
I dare you to find someone willing to, without a computer, parse such a description. JPEG is a surprisingly non-intuitive, complex format.

You're right, you can be more precise that way, but precise text means nothing if nobody is reading it.

nickcano··on Non-obvious indicators that a transaction might be fraudulent
They could have used PCA[1] on their feature set and let a human come up with these; they claim to use machine learning, not that this checklist was generated as a result of machine learning.

Otherwise, maybe they have an algorithm that looked at resulting classifications from learning and flagged inputs with the largest and most consistent variance across classes.

[1]https://en.wikipedia.org/wiki/Principal_component_analysis

nickcano··on Non-obvious indicators that a transaction might be fraudulent
>or downloading an old browser that is still usable in 32bit

Are you implying newer browsers don't work with 32bit? Chrome and FireFox run as 32-bit and all IE versions still use a 32-bit renderer. These things are true on 64-bit and 32-bit machines, at least on Windows.

nickcano··on The Big Alien Theory
Yes, and those more pressing issues are among spending time debating why it's not worthwhile to spend time debating a topic that is less pressing than the debate about the time it takes, apparently.
nickcano··on Ask HN: Who else uses adblockers for safety?
At Bromium we do complete task isolation in uVMs and use monitoring to watch what happens inside. Most customer infections we see come from ads, and they're mostly cryptoransomware. It's absurd.
nickcano··on Google Unveils Neural Network to Determine the Location of Almost Any Image
Or they could train a network to recognize persons likely to try and poison their data sets and use it as an exclusion. You could go on to argue that those persons could also poison that data, but then they could handle it in a similar way. This goes process could theoretically go on ad infinitum.
nickcano··on Executing Software Engineers for Bugs
That's not the right way to think about it. Just because you cannot imagine a way your software can be used to attack your company or harm the users, doesn't mean such a thing is impossible or unlikely.
nickcano··on Over 30% of Official Images in Docker Hub Contain Security Vulnerabilities
I'm sorry, I thought we were talking about security? Are you leaking the other thread into here just so you can feel like you won both, instead of neither?

And I never said anything about any C/C++ type system doing anything? But okay.

Back to the topic: if you've heard of them, why did you insist that SQL is inherently insecure? Did you forget they existed, or did you just think I wouldn't notice? Are you that cocky?

I really hope your employer one day recognizes your incompetence and fires you, because the software world is plagued with enough bugs without people like you purposely and gladly laying out a red carpet for them to walk in on. I can't continue to argue with what is either a relentless geyser of misinformation or a brilliant troll, so I'm done. Maybe one day you'll come to your senses, but I doubt it.

nickcano··on What Good Are C, C++, and Java?
I give up. You are literally drenched in a dogmatic hate for low-level and far too under-educated to argue with.
nickcano··on Over 30% of Official Images in Docker Hub Contain Security Vulnerabilities
That's a horrible example. SQL injection IS the fault of the programmer, not SQL itself. SQL injection is achieved by adding extra code to a query, which is only possible when a programmer allows inputs that can contain code to be concatenated directly into a query. Here's an example:

    query = "SELECT * FROM USERS WHERE NAME = '" + userinput + "'";
    exec(query)
This input can be given:

    ' OR 1=1--
To make the application show the entire list of users. If this programmer used parameter binding, which is supported by PostgreSQL, MySQL, SQLite, and any other SQL platform you can think of, then SQL injection wouldn't be an issue. They could simply do something like this:

    query = "SELECT * FROM USERS WHERE NAME = @:USER";
    statement = prepare(query, "USER", userinput)
    exec(statement)
Just because you don't know the right way to do something securely, doesn't mean it's not there. But you're right, no security expert fixed this problem. It was fixed by the library designers of these SQL platforms. Security experts just charge you by the hour to teach you that you're unfamiliar with the existing security mechanisms inside of these platforms.

Also, just to be pedantic, I'll point out that a type system wouldn't change how SQL injects currently work, lol, no clue how you think that's the case, but I wouldn't put it past you at this point.

nickcano··on What Good Are C, C++, and Java?
And yet, under almost every high-level language that "does all the work that I do manually", what is there?

Under Python in C++

Under PHP is C++

Under Haskell is a variant of C called C--

Under Lua is C

Under Perl is C

Is this because "the dinosaurs haven't died yet"? No. It's because writing a high-level programming language almost always requires a lower-level language. Under all of your high-level abstractions, there needs to be some compiles-to-assembly language that has access to memory management. Under all of your fancy high-level language debuggers, there needs to be some disassembly and translation of the assembly code to match the symbol databases for your high-level code. Under all of your binaries, there needs to be a kernel that can translate API calls, handle interrupts, dispatch exceptions, manage memory protection, and schedule threads.

Can you do all of this with Haskell? Sure. But the first Haskell compiler written in Haskell needs to be compiled by something. It can be C, C++, C--, or even assembly for all I care, but it has to exist. Even the first C compilers needed to be written in something that wasn't C.

The bottom line is that it has nothing to do with "technical debt". These languages exist because they can work on hardware without heavy frameworks weighing them down. They rely on the bare system, and not on a bunch of abstractions. And that's why they can be used as a layer between hardware and the much-needed abstractions brought to us by high-level languages.

These "old" languages have many strengths, and you're foolish to write them off just because their strengths don't fit your use-cases. Without the programmers that are "lost" to these "old paradigms", you would have nobody to maintain, develop, or secure your new paradigms. And that's a consequence that only considers one of the many strengths of these languages; there's many more consequences that we'd face if nobody new learned how to use them.

Page 1 of 2Next →