2,159 karma · joined December 12, 2011
hackernews at j----.h-----.name (fill in the blanks with my name)
> Barbarism – the period during which man learns to breed domestic animals and to practice agriculture, and acquires methods of increasing the supply of natural products by human activity.
You should look into the career of the Carter brothers (Simon and Dene).
So "spoon's" converse are forks, knives, maybe chopsticks, etc.
We're a relatively small team so it's nothing terribly sophisticated - Spark jobs prep log data for a nightly model training, done with sklearn - the model is just a python pickle that get loaded into our ranking system, Thimble. All done on EC2.
We also have a real-time pipeline (Bazalgette) that pulls events off a Kinesis stream and turns them into features, saved to Redis.
We're hiring a software engineer (in London) at the moment so if this sounds like the kind of tech you'd be interested in working alongside, drop me an email (in my profile) or look at https://thread.com/jobs
What's your point in bringing up combinatorics then?
> Imagine that you need to pick out your particular family emoji each time from all the possible combinations.
Imagine using the most trivial kind of UI (literally a LRU cache would do the job) so that emoji you use more often are presented first. In fact, you don't even need to imagine, because this is how they already work on Android.
I have to wonder why you are dedicating so much energy to problematizing uses of emoji that you disapprove of without really seeming to know much of them. If they don't work for you maybe just don't use them?
I'm going to leave this link in the rather forlorn hope that something about it might take root:
https://www.ted.com/talks/michael_kimmel_why_gender_equality...
Just a note, don't literally do this:
http://conversionxl.com/statistical-significance-does-not-eq...
Unless you're in the habit of delivering RC-quality milestones (which is afaik unheard of in AAA development), the marginal value of a milestone is negative right up until the last one.
(I find it slightly hilarious that you think that children had only two raisers In The Ancestral Environment.)
> about 10X the competition
Steam added 1500 games in the first 7 months of 2015. Crunchbase had over 8000 investments in 2015. So I don't think that's true, even accounting for a Christmas peak.
> juggling massive game assets
Lots of data goes into games, lots of data comes out of websites. The difference to my eyes is that the industry has multiple, principled, well-understood frameworks to deal with the data problem and the games industry has...what? Maybe the state of the art has moved on in the last 5 years but when I left it was all "well it's just a DAG, how hard can it be to write a tool to recursively build it".
> a fraction of the budget, finance, and exit options
Being willing to work for less and with fewer resources is not a sign of good engineering practice. I don't know if I'd say it's the opposite but it's at best irrelevant.
> a tough frame rate budget
Not very different to needing to meet tough latency/error rate SLAs, except instead of failing TRC (or getting your exec producer to stare down MSFT/Sony), you'll just go broke. Oh, and you don't know what the SLA is, ever, so it's a continuous process of tradeoff.
> all issues GPU-ish (when was the last time you wrote a shader, Mr. Website Developer?)
Ignoring that some "website developers" (many of whom are not "Mr" - something else that the games industry does not do well at) do write shaders in the form of GPGPU optimization of ML tasks, obviously tasks differ. Let's not pretend that banging out something in Cg is PhD-level shit. It's not harder than writing a Spark job, for sure.
> having people with a huge range of technical skills requiring direct access to the source/asset repo.
You have Mr. Blow upthread sneering at Twitter for employing 4000 people to build something "trivial" but you think that each of those people have identical programming chops in every bit of the code they touch? If there's a single thing that argues against your idea it's this - the rest of the industry has become pretty good at modularizing areas of the business and auditing changes to it with code review, build/asset/deployment tagging etc. The last games company I worked at, someone stayed at the office until 5am before going on holiday for a week and sent an email that effectively said "I've rewritten quite a bit of the engine, you'll probably need to fix the build because I didn't test anything, see you in a fortnight". People gasp when gmail/twitter/facebook is down for half an hour but I've worked in places where there _wasn't even a canonical build_ that could be broken.
(I loved the Witness, btw.)
Have you already established a language for your project or team?
Yes: Keep using that fucking language. Unless you can't accomplish your goals with your current language, you're setting back progress by starting with a new language.
No: Are you building a mobile app?
Yes: Are you building for Android, iOS, or both?
Android: Looks like you're using fucking Java. Hybrid apps suck.
iOS: Use fucking Swift. Hybrid apps suck.
Both: Time to learn fucking Java and Swift. Hybrid apps suck, so your dumb ass needs to learn both.
No: What the fuck are you building?
Web app/Networked application: Is it a client-side app?
Yes: Looks like you're stuck with fucking JavaScript you poor bastard.
No: Are you working for an established enterprise or a startup?
Enterprise: Just use fucking Java. No one ever got fired for choosing Java.
Startup: Do you give a shit about concurrency?
Yes: Do you know why you give a shit about concurrency?
Yes: Are you into functional programming?
Yes: Do you need to use the Java Virtual Machine for some fucking reason?
Yes: Use fucking Clojure
No: Use fucking Rust or Elixir. I've got you this far, choose whichever one doesn't look like shit to you.
No: Use fucking Go.
Not really: I didn't think so you asshole. Just use Ruby - probably with Rails - and get the fuck out of my office.
No: Do you need static types?
Yes: Use fucking Dart
No: Do you want only one language in your codebase?
Yes: You're stuck with fucking JavaScript, but you already knew that
I don't care: Are you already familiar with at least one programming language?
Yes: Are you nostalgic for the web of the early 2000s?
Yes: You should probably stick with fucking PHP
No: Use fucking Ruby
No: Use fucking Python. It's easy to learn and very powerful.
Desktop app: How fucking lazy are you?
Really lazy: Damn it. Just use fucking Visual Basic. I hope you're proud of yourself.
Sort of lazy: Just use fucking Java.
I'll sleep when I die: Do it properly in some fucking dialect of CYou seem to be making a declaration that acts are inherently political, and I'm all for that. It's just that the standard works both ways.
> Genetic algorithms have designed circuitry that we failed to even understand at first but that did work.
This is an excellent example of what I think of as not machine intelligence. If humans can't understand it then it's something entirely different that we need a different word for - an "artefact", perhaps. Meaningfully contributing to the state of the art of human knowledge requires being built upon. If these genetic algorithms can explain how they can be incorporated into the design process by humans, that's intelligence. If they are similar to being able to evolve a mantis shrimp by fiddling with DNA, that is marvellous but not what I would regard as intelligence.
We apply the same standard to human intelligence: someone who can multiply numbers very fast but not explain how they can do it is a savant; someone who can discover and teach other people a faster way of multiplication is intelligent.