What is the best way to live in the Bay Area[San Francisco] on 100k? - <AUTHOR>

I'm moving to the Bay Area [preferably San Francisco], and am going to be making about $100k. If I am 21 years old and at the start of my career, how much rent can I afford? What is my ideal budget after taxes? Where in San Francisco should I live (or not, since I will be commuting to one of the big tech companies)? <comment><USER2> You'll probably take home somewhere around $5k a month after taxes. Rent will eat half of that, but living on $2.5k a month is easily manageable and you should be able to put some savings away as well.

I prefer to live in the city proper, but many people who prefer a more quiet lifestyle are perfectly content to stay in south SF or across the bay.

Commuting is easy, if a bit slow. Between BART, Muni and Caltrain getting to and from anywhere in the Bay Area is possible. I sold my car before moving here and haven't looked back. If I need to pick something up or leave the city for the day I just use getaround.

Hope that helps :)

<comment><AUTHOR> Thank you!

</comment></comment><comment><USER3> You can afford any apartment in the city, but spending a ton on rent isn't the requirement everyone makes it out to be. I live in a new building 2 blocks from the Caltrain and pay $1200 a month. Just be diligent about it (as others have mentioned: roommates, location-specific, etc.). Leverage your network if possible. My friend in finance who makes close to 7 figures just got a room in a rent-controlled apartment and pays 800/month in the heart of the Marina.

Have fun in the city, but be mindful about saving as well.

<comment><USER4> Can you tell a bit more about this friend and his skillset/role? $1M is a lot of money to make.

<comment><USER3> Options trader at one of the highest performing west coast firms (I think). Bonuses make up most of that figure.

<comment><USER2> If your friend really does make 7 figures a year he is not helping the current housing crisis in SF by taking a rent-controlled apartment that someone with a lower income might have depended on.

</comment></comment></comment></comment><comment><USER5> Live with a bunch of people and split the rent so that you're paying as little as possible. Don't live outside your means, and SAVE SAVE SAVE.

Also, work hard, and LEARN LEARN LEARN. Your salary, if you are good and work very hard, will rise faster than you can imagine and if you live a frugal lifestyle, you will have a lot of money in 10 years.

</comment><comment><USER6> Don't rule out living in Oakland, especially around the Lake Merritt area. It's a nice downtown area (getting nicer), rent will be cheaper, and you can often get to downtown SF faster than from other parts of SF (like from the Richmond district).

<comment><USER7> Agreed, with one caveat: Lake Merritt is sleeeeeepy. If you're around 30 or have kids, it'd probably be your scene, but there are definitely better parts of Oakland for younger folks.

</comment></comment><comment><USER8> If you want to live in the City, now is a great time in your life to do this.

You can get your own studio and it will cost you between 2K and 2.5K. A better idea would be to find some roomates. You can get a bigger place, pay less rent, and live with with interesting people.

Good luck!

</comment><comment><USER9> whatever you do keep your costs as low as possible (roommates, live in a motor home, minimize commute, etc.). Strive to save 80% of your take home pay and live off only 20%. If you do this and invest your savings in low cost index funds, then working will be optional for you in less than 6 years. Meaning you can work on what you want. Don't fall into the debt/slave trap. Most fun/happy times happen because of experiences and the people you hang with, not because you spend a lot of money. Being so young and just starting out, your life will revolve around work anyways (time spent, friends).

<comment><USER10> Sounds like good advice, but here's another take on it: I'm in my 20s and didn't save any of the money I made. I immediately spent (on startups, travel or invested in myself) all of it. I have a bit of debt but not too much. I don't regret a single bit of it. I've lived in 5 different countries for longer periods of time, met amazing people from all over the world, and had a blast. I wouldn't trade these experiences for anything. And because I invested most of the money in myself I found that I obtained a lot of skills, experiences and relationships that allow me to make a lot more money in the future than I would have if I had followed a regular career path for a couple of years.

Too many people undervalue time and health and overvalue money. You can always make money. But you're only young once. IMO the best thing you can do is invest time and money in yourself, not in any kind of fund. The lifetime ROI is higher.

<comment><USER9> i'm om with such a choice as long as you don't go into debt to do it.

"a bit of debt but not too much"...this is relative, thousands is probably ok, tens of thousands or more not ok.

the whole reason to save most of your income is so you can have free time to do with what you please (work more, travel, start up, nothing). the investment part is only so you can earn a respectable interest (8% to 10% vs 1% to 2% in a savings account) for you to live off of.

<comment><USER10> I agree with the debt. Let's put it like this, I would be out of debt if I worked for a 4-5 months and saved 50%.

What I'm advocating against is the notion of working hard for 5-10 years and sacrificing your youth while saving a lot of money and postponing things you want to do with your life. Whatever you want to do in the future at some point it'll be too late. Once you hit your 30s priorities start to shift. You start thinking about having a family. This means you'll need stable lifestyle not just in terms of money, but also in terms of work hours (= no startups). Excessive travel is no longer possible. Perhaps you need to take care of your parents. Or you may simply become complacent with your current lifestyle (this happens unconsciously more than consciously). Suddenly the startups, travel and fun that the money was supposed seem a lot more risky and unrealistic than they seemed when you were in the beginning of your 20s.

I'm all for saving. But don't sacrifice things you want to do in return for money.

</comment></comment></comment></comment><comment><USER11> [https://sfbay.craigslist.org/pen/sub/4929488362.html](https://sfbay.craigslist.org/pen/sub/4929488362.html)

</comment><comment><USER12> Do 21 year old people at the start of their career really take home $100K in SF? Thats crazy. How much would a 30 year old with a masters in CS get?

<comment><USER10> Unfortunately salaries in the bay area seem to be inversely proportional to age ;) That's only half kidding. Many companies are willing to pay premiums for what I'd call "future potential" of new hires. With 30 and supposedly 5-10 years of work experience you'd be expected to already have "proven" your potential. Your degree will matter a lot less than what you've actually done in the past. If you don't have much to show for your experience it may well be that you'd actually be offered less than a promising candidate right out of college. However, $100k seems about average. There are people who are offered 150k (+ 100-300k stock grants) out of college at some of the "hottest" startups.

</comment></comment><comment><USER13> try to find a roomate and split the rent! its really expensive to live in san francisco!

I was living there two months, and the prices are not lower than 4k!</comment>


How AlphaZero Mastered Its Games - <AUTHOR> https://www.newyorker.com/science/elements/how-the-artificial-intelligence-program-alphazero-mastered-its-games <comment><USER2> James put together a really nice summary of the ideas and the projects!

It was almost a year ago that lc0 was launched, since then the community (led by Alexander Lyashuk, author of the current engine) has taken it to a totally different level. Follow along at [http://lczero.org](http://lczero.org)!

Gcp has also done an amazing job with Leela Zero, with a very active community on the Go side. [http://zero.sjeng.org](http://zero.sjeng.org)

Of course, DeepMind really did something amazing with AlphaZero. It's hard to overstate how dominant minimax search has been in chess. For another approach (MCTS/NN) to even be competitive with 50+ years of research is amazing. And all that without any human knowledge!

Still, Stockfish keeps on improving - Stockfish 10 is significantly stronger than the version AlphaZero played in the paper (no fault of DeepMind; SF just improves quickly). We need a public exhibition match to setttle the score, ideally with some GM commentary :). To complete the links you can watch Stockfish improve here: [http://tests.stockfishchess.org](http://tests.stockfishchess.org).

<comment><USER3> I thought alphazero was based on minimax, and used neural networks to evaluate moves, isn't this the case ?

<comment><USER2> MCTS is not a traditional depth first minimax framework. Key concepts like alpha-beta don't apply. Although it is proven to converge to minimax in the limit, the game trees are so large this is not relevant. You could use the network in a minimax searcher, but it's so much slower than a conventional evaluation function it's unlikely to be competitive.

</comment></comment></comment><comment><USER4> God what a well written article! I don't have much to say on the subject, but this was pure joy to read, it's crazy good. Clear, engaging, to the point, making a difficult subject accessible without dumbing it down, no fluff or unnecessary side stories, just awesomeness.

<comment><USER5> The only gripe I had with the writing was the completely unnecessary injection of gender pronoun controversy.

I highly recommend the AlphaGo movie as well, it does a great job documenting the psychology of professional Go in the world of AI.

<comment><USER6> what gender pronoun controversy? did we read the same article?

<comment><USER5> >An expert human player is an expert precisely because her mind automatically identifies the essential parts of the tree and focusses its attention there.

Instead of using gender neutral pronoun like "they", the author used a feminine pronoun.

<comment><USER7> This is nitpicking. I like using singular "they" and I'm guessing it will win, but this isn't settled yet and some editors make different choices.

<comment><USER8> I don't like singular "they", we should try to establish a second person plural pronoun.

</comment></comment></comment></comment></comment></comment><comment><USER9> What's very interesting is that the Komodo developers have implemented a Monte Carlo Tree Search version of their engine _without_ neural nets for evaluation / move selection. This brand new engine can actually compete at the top level (still much worse than Stockfish and slightly worse than Lc0) [1] [2]

The exact implementation details are probably kept secret, but the idea is to do a few steps of minimax / alpha-beta rather than completely random play in the playout phase of MCTS.

This makes me think that the contribution of AlphaZero is not necessarily neural nets, but rather MCTS as a succesful method to search the game tree efficiently.

[1] [http://tcec.chessdom.com/](http://tcec.chessdom.com/) [2] [http://www.chessdom.com/komodo-mcts-monte-carlo-tree- search-...](http://www.chessdom.com/komodo-mcts-monte-carlo-tree-search-is- the-new-star-of-tcec/)

<comment><USER10> You missed the point then. Alpha beta pruning requires knowledge of the game rules. Neural network pruning doesn't. The advantage is that it's a general purpose technique.

<comment><USER9> Yes, that's the main contribution of the experiment / paper. But prior to AlphaZero the chess community did not even consider investing in MCTS engines -- alpha-beta pruning was thought to be far superior. I'm thinking that we might see classical engines exploring this concept more, and maybe it's even a natural step to go from alpha-beta pruning + iterative deepening to 'best- first' search with MCTS.

</comment></comment></comment><comment><USER11> >> In fact, less than two months later, DeepMind published a preprint of a third paper, showing that the algorithm behind AlphaGo Zero could be generalized to any two-person, zero-sum game of perfect information (that is, a game in which there are no hidden elements, such as face-down cards in poker).

I can't find this claim in the linked paper. What I can find is a statement that AlphaZero has demonstrated that 'a general-purpose reinforcement learning algorithm can achieve, _tabula rasa_ , superhuman performance across many challenging domains'.

Personally, and I'm sorry to be so very negative about this, but I don't even see the "many" domains. AlphaZero plays three games that are very similar to each other. Indeed, shoggi is a variant of chess. There are certainly two- person, zero-sum, perfect-information games with radically different boards and pieces to either Go, or chess and shoggi - say, the Royal Game of Ur [1], or Mancala [2], etc, not to mention stochastic games of perfect information, like backgrammon, or assymetric games like the hnefatafl games [3], and so on.

Most likely, AlphaZero _can_ be trained to play many such games very powerfully, or at a superhuman level. The point however is that, currently, _it hasn 't_. So no "demonstration" of general game-playing has taken place, and of course there is no such thing as some sort of theoretical analysis that would serve as proof, or indication, of such ability in any of the DeepMind papers.

I was hoping for less ra-ra cheerleading from the New Yorker, to be honest.

________________

[1] [https://en.wikipedia.org/wiki/Royal_Game_of_Ur](https://en.wikipedia.org/wiki/Royal_Game_of_Ur)

[2] [https://en.wikipedia.org/wiki/Mancala](https://en.wikipedia.org/wiki/Mancala)

[3] [https://en.wikipedia.org/wiki/Tafl_games](https://en.wikipedia.org/wiki/Tafl_games)

<comment><USER12> Any explanation as to why this should not be used for games without perfect information? As an example, why couldn't the face-down card in poker be modeled as part of the MCTS?

<comment><USER11> MCTS can be applied to imperfect information games, in fact it is quite robust against uncertainty.

It's AlphaZero's deep neural net component, that's used to learn an evaluation function and move orderings that will need a substantial redesign to take into account imperfect information. The difficulty of this redesign will vary considerably between games- in some games, information is gained throughout the game, by observing another player's moves (e.g. in Poker), in some others an initial state (e.g. a starting deal in card games) dominates the probability that a certain possible board state is the real board state (e.g. Bridge) [1].

On top of that, AphaZero's deep net has the shape of the board and the legal movements of pieces on it hard-coded, as part of the net's structure. That would also need a substantial redesign to accommodate a card game, or any other kind of game without a board and without pieces that move on it. In fact, different card games will require different architectures, most likely. It's very hard to see how, e.g., the same neural net structure could be used to encode both Bridge and Poker rules - and _still_ allow learning chess, shogi and Go.

Given the great variety of board games out there (and that's only classical games, I'm not even considering modern board games, like Settlers, etc) a lot of very hard work would be required to even train AlphaZero to play any game that's not very similar to chess, shogi and go. Not to mention, training AlphaZero is very expensive (wikipedia quotes a cost of $25 million for AlphaGoZero, AlphaZero's predeecssor, and that's just to buy the hardware [2]). So I don't see how or when they'll demonstrate the "general" game playing power of their system.

Basically, I think all that stuff about "generalized" game playing is just so much pointless bragging. The way DeepMind designed AlphaZero is exactly how everyone else has designed their systems- hard-coded with structures appropriate to the targeted game (e.g. boards and pieces, etc). DeepMind are clever in that they chose three very similar games, and then threw an immense amount of money on the problem of solving them all in tandem. And still they had to train _different models for each game_. That's just no way to get to general game playing.

___________

[1] See chapter 5. Adversarial Search in AI: A modern approach, 3d Ed. for a discussion of imperfect information and stochastic games and the difficulties of designing evaluation functions for them.

[2] [https://en.wikipedia.org/wiki/AlphaGo_Zero#Hardware_cost](https://en.wikipedia.org/wiki/AlphaGo_Zero#Hardware_cost)

<comment><USER12> Thank you!

</comment></comment></comment></comment><comment><USER6> Awesome article. Does anyone know how to begin applying the AlphaZero techniques to games where information is NOT perfect? I'm trying to apply it to Scrabble. There hasn't been much AI research in this game and right now the best AI just uses brute force Monte Carlo with a flawed evaluation function (which doesn't take into account the state of the board at all, just points and tiles remaining on the opponent's rack). It's still good enough to beat top human experts about half the time, but I want to make something better.

Is it impossible to apply to these types of games? Every time I read about AlphaZero the articles mention that the techniques are meant for games of perfect information.

<comment><USER13> If you search "UCT imperfect information" on Google, you'll turn up plenty of articles and slide decks, including one from David Silver that discusses reinforcement learning. The catch is that they're mostly dated before AlphaZero's emergence, so there's some original work involved to extend AlphaZero to this domain. This is likely something that DeepMind is working on themselves. It's possible that tweaking the search query might turn up more recent results. Good luck!

EDIT - The David Silver lecture I mentioned actually mentions a Scrabble AI, Maven, which successfully applies MCTS. Here's a link: [http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/g...](http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/games.pdf)

<comment><USER6> Thanks, I'll take a look. Yup, I'm aware of Maven. The one most commonly in use now is named Quackle, which uses the same techniques as Maven but has a slightly better initial evaluation function. But the evaluation function is very simple and just keeps into account score and leave. This doesn't suffice often.

</comment></comment></comment><comment><USER14> They mention a documentary on Netflix about AlphaGo. Any recommendations for or against?

<comment><USER15> Really good. As other people mentioned, it's not technical, but it's super interesting to see the emotional impacts those games had on Lee Sedol.

</comment></comment><comment><USER16> If you are interested in how to build a bot, Manning is having a Go bot competition:

[https://deals.manning.com/go-comp/](https://deals.manning.com/go-comp/)

It's been really fun to work through the books.

</comment><comment><USER17> The article is very well written but that sentence felt a bit wierd:

> Before there could be acceptance, there was depression. "I want to apologize > for being so powerless," he said in a press conference.

Lee Sedol was clearly upset, especially after the first two matches, but I think that apology was more out of politeness than depression, really.

</comment><comment><USER18> Is there a way to play against an AlphaGo or equivalent but with adaptive difficulty? I know next to nothing about go and think it would be interesting to learn it just by playing vs. a neural network. Maybe over time the strategies it uses would be "transferred" over to me!

</comment><comment><USER19> The match between Stockfish and AlphaZero was played with certain unjustified parameters (time control, ponder off, different hardware, no opening book or endgame tablebase for Stockfish etc.). By "unjustified," I mean that the authors of the paper did not justify their choice of parameters in the paper as being designed to implement a fair match.

At a glance, the parameters of the match seem unfair to me -- and tilted heavily towards AlphaZero. If the code, were open source, this would not matter; anyone could run a rematch. As it is, I haven't seen any convincing evidence that AlphaZero is stronger than Stockfish when Stockfish is allowed to use its full breadth of knowledge and run on equal hardware.

<comment><USER20> There has been a rematch recently vs Stockfish, with a couple of hundred games. AlphaZero won 155-6! [0] There are fascinating videos with grandmasters commentating on some of the games. They're played in an exciting, sacrificial, swashbuckling style, nothing like any other top computer engine, and it seems that may affect the play of top (human) players for the better. e.g. see

Matthew Sadler on chess24

[https://www.youtube.com/watch?v=JacRX6cKIaY&list=PLAwlxGCJB4...](https://www.youtube.com/watch?v=JacRX6cKIaY&list=PLAwlxGCJB4NchyTBYik8FBbnzLXpCCO79&index=6)

Daniel King

[https://www.youtube.com/watch?v=pFtY7gNRVRI&index=3&list=PLh...](https://www.youtube.com/watch?v=pFtY7gNRVRI&index=3&list=PLhyM8toCZs_qWKCohlxdcRUo3O9h7g61w)

[0] [https://en.wikipedia.org/wiki/AlphaZero#Chess_2](https://en.wikipedia.org/wiki/AlphaZero#Chess_2)

<comment><USER21> The Wikipedia link says this was against Stockfish 8. Could people _please_ stop spreading FUD here?

If there's no public tournament, this might as well not have happened. I do not understand why Google is always special. Other engines are open, Google can test against Stockfish but not vice versa.

All these web companies take, take, take from Open Source and rarely give back.

I'll write a paper now that I beat Carlsen, but I'll refuse to do so in public.

<comment><USER20> >Could people _please_ stop spreading FUD here?

Do you mean me? If so, why not say so. "Could people _please_ stop X-ing here?" is very passive-aggressive. I looked up 'FUD' \- Fear, uncertainty and doubt. Not sure how what I said counts as any of those. Your comment certainly seems to want to spread FUD, however. (And why is this your account's only comment on HN?)

I don't know the significance of your first sentence either. I know nothing about the versions of Stockfish used for this or anything else. Maybe you're taking too much for granted. i.e. that I know enough of the minutiae to understand your comments. Could you fill in the dots a bit? And who are 'all these web companies'?

I'm not super-interested in AlphaZero (or computer chess generally) - haven't read any of the papers, for example. But there's a lot of talk about the various Alphas in the online chess world, since before it was playing chess, and I found these videos very impressive. And it's ridiculous to say "This might as well not have happened". Maybe true for you, but not for the chess world, at all.

</comment></comment></comment></comment><comment><USER22> > An expert human player is an expert precisely because her mind automatically > identifies ...

The "Patronizing 'Her'"

Almost invariably, when the author decides to use the patronizing 'her' instead of the gender-neutral 'they' it's written by a man.

<comment><USER23> 'They' isn't used as a singular pronoun in many style guides, including the New Yorker's but nice try.</comment></comment>


Haskell and Rust - <AUTHOR> https://www.fpcomplete.com/blog/2018/11/haskell-and-rust <comment><USER2> I think the comparison dwells on superficial similarities. Rust's type system is absolutely necessary to ensure a certain kind of safety under the requirements Rust adopted for itself in order to address certain domains (like no tracing GC), namely a guarantee of no undefined behavior, common in those domains. This safety (or something very close to it) exists in every so-called "managed" language anyway, be it Python, Java or Haskell, regardless of their type system, so the goal of the type system in Rust and in Haskell -- at least as far as safety goes -- is obviously very different.

Moreover, such safety is not at all what is normally considered "correctness" in the field of software correctness; the term normally refers to _functional_ correctness, i.e. that the program satisfies the specification, not that it doesn't have undefined behavior. On that front, there seems to be no evidence, nor even hints, that either Haskell or Rust do better, or worse, than other languages developed in recent decades. It's a myth, albeit one that's often repeated in some circles.

That's not to say that type systems cannot be hugely valuable, and sometimes even necessary. For Rust, the type system is what ensures undefined-behavior- safety. In other languages it has many other advantages as well. Some type systems are even intended for correctness. But Rust's type system, and certainly Haskell's are not. Both are interesting though expressively "weak" type systems, of the kind that has not been found to be correlated with higher correctness. So focusing on _that_ as the point of comparison completely misses the mark.

<comment><USER3> > the term normally refers to functional correctness, i.e. that the program > satisfies the specification, not that it doesn't have undefined behavior

A program that has undefined behaviour is not correct, unless the spec has undefined behaviour (why would it?).

> On that front, there seems to be no evidence, nor even hints, that either > Haskell or Rust achieve better correctness (or the same correctness more > cheaply).

I don't know what you mean by evidence, but Haskell has a stronger and more expressive type system than say Java, it doesn't have null pointers, it has referential transparency, and simpler, safer concurrency and parallelism builtins. The fact that you can make more general assumptions about pieces of code which you don't necessarily fully understand makes writing safer and correct code easier.

> But Rust's type system, and certainly Haskell's -- both interesting but very > expressively "weak" type systems -- have not been found to be correlated > with higher correctness.

Are you saying there have been studies that show Haskell's type system has not been correlated to higher correctness than say Java or Python, or are you saying you are unaware of any such studies? Also, Haskell's type system is certainly more expressive and strong than Java's or Python's.

<comment><USER4> > unless the spec has undefined behaviour (why would it?).

Because maybe you're specifying a partial function. The code to handle the special cases of invalid inputs can sometimes have dramatic effects on code size and performance, sometimes too much to bear for code that should never run in the first place; allowing for garbage output to be produced for garbage input instead of a result that says "this is garbage input" could well be acceptable.

Furthermore, there are some places where we don't actually know how to specify the intended behavior in the first place. Data races are perhaps the best example here; we have yet to find a satisfying specification for data races that is more constraining than "anything goes," and the two most well-known attempts (Java and C++) have both been widely regarded as failures. But pointer aliasing is another area that proves surprisingly difficult: if requiring pointer provenance isn't acceptable, then trying to come up with a reasonable specification is surprisingly difficult.

<comment><USER3> > The code to handle the special cases of invalid inputs can sometimes have > dramatic effects on code size and performance, sometimes too much to bear > for code that should never run in the first place; allowing for garbage > output to be produced for garbage input instead of a result that says "this > is garbage input" could well be acceptable.

That seems solvable by refactoring your types a little. Also, some languages do not allow partial functions - such as total functional programming languages.

> we have yet to find a satisfying specification for data races that is more > constraining than "anything goes," and the two most well-known attempts > (Java and C++) have both been widely regarded as failures.

What about nested data parallelism[1] or pure parallelism such as in Haskell?

[1] [https://www.classes.cs.uchicago.edu/archive/2016/winter/3200...](https://www.classes.cs.uchicago.edu/archive/2016/winter/32001-1/papers/nepal.pdf)

</comment></comment></comment></comment><comment><USER5> Kinda surprised not to see HKTs[0] mentioned which, AFAICT, is what really sets apart Haskell's from Rust's type system. Without HKTs you can't express a Functor typeclass/trait[1].

[0] [https://github.com/rust-lang/rfcs/issues/324](https://github.com/rust- lang/rfcs/issues/324)

[1] [https://www.reddit.com/r/rust/comments/2av5tv/why_does_rust_...](https://www.reddit.com/r/rust/comments/2av5tv/why_does_rust_not_have_a_functor_trait/)

<comment><USER6> Aren't Generic Associated Types (in the pipeline for Rust) broadly equivalent to HKT as found in Haskell?

<comment><USER5> I'm kinda bad at these things so I'm not sure. GATs are a form of higher- kinded polymorphism but I'm not sure if they're really equivalent to HKTs.

GATs are still missing anyways. Not sure how close they're to being implemented.

<comment><USER7> Not particularly close. The feature seems to be progressing slowly, but very deprioritized (which is understandable - Rust has a bit of a reputation for being hard to learn and too feature-heavy, so it's natural for them to focus on stabilizing the language instead of adding new features)

<comment><USER8> They're needed for async fn in traits, which feels like a pretty natural extension to async fns, so there's a really good motivating case for them.

</comment></comment></comment></comment></comment><comment><USER9> Quick meta question.

Does this kind of article/content works for getting consultanting clients?

I am not sure I would pick them if I ever need a rust project done, but maybe I am not the target audience.

<comment><USER10> Well they're primarily a Haskell shop IIRC so it makes sense?

Also making content for getting clients absolutely works, it's the same concept behind big/small company engineering blogs.

</comment></comment><comment><USER11> I wonder if typescript has more shared features with haskell than has rust (at least for the type system).

<comment><USER5> It's actually farther than Rust compared to Haskell.

<comment><USER11> Why? It has union, intersection, recursive and conditional types.

<comment><USER5> Adding to sibling comment: structural typing vs traits is kind of a game changer. The way I use them is very different. TS still feels like OOP (since it's just a formalization over JS's implicit native typing). Rust and Haskell feel mostly the same to me wrt how I think about my code (abstraction through capabilities).

Intersection types are very different. In Haskell/Rust it means "this generic type implements traits A, B and C". In TS again it's about structure "it has at least the properties shared by types A, B and C". This means the intersection of A, B and C is all of A, B and C in Rust/Haskell, while in TS it can be a completely different type that only has their shared props, which makes no sense in Haskell/Rust since traits/typeclasses are disjoint (their intersection is always empty).

All of them have recursive types (though in Rust the recursion must be boxed explicitly to make the type sized) and union types.

Neither Rust nor Haskell have conditional types. This is really cool from TS: types are functions! Rust/Haskell are purely nominal.

<comment><USER11> Interesting, but I don't really get the difference about intersection types. _(abstraction through capabilities)_ What differentiate an intersection type from a mixin? Secondly I get it that intersection types in typescript are more permissive but they are mostly functionaly the same, aren't they?

<comment><USER5> Traits are similar to mixins, this SE answer explains it better than I could:

[https://stackoverflow.com/questions/925609/mixins-vs- traits](https://stackoverflow.com/questions/925609/mixins-vs-traits)

Sorry about the intersection confusion, I mixed up things.

Intersection generic types are types that adhere to a set of traits (all of them, completely). Since traits don't overlap (even if their method names are the same) their intersection requires them to be defined explicitly.

E.g. if you have an interface A { length: number } and an interface B { length: number, size: number } in Rust/Haskell you need to implement both explicitly for your type, while in TS your type just has to adhere to B's shape to be both.

TL;DR: it's mostly about the "structural vs nominal" \+ "traits vs interfaces".

But yeah they're functionally the same indeed, sorry for the confusion.

</comment></comment></comment></comment></comment></comment><comment><USER12> The example in the polymorphism example feels strange to me. Why convert from Option to Result?

<comment><USER13> IMHO conversions between various "error types" are quite common when gluing together different APIs. Like when you are chaining a handful of Result- returning calls and there's one in the middle that returns errors using Option.

<comment><USER14> This is exactly right. We habitually lift `Maybe`/`Option` values into a more explicit and comprehensive `Either`/`Result` type in our programs. It's pretty common to have an error type hierarchy in the program too, so you could find yourself chaining from one `Either e` to another. There are libraries in Haskell and Rust for regularizing/code-gen'ing these patterns.

</comment></comment></comment><comment><USER15> We see everywhere influences from Haskell

</comment><comment><USER16> The idea of ubiquitous need for significant enforced correctness assurance is one of the worst things in software. Correctness is a resource like time or memory. Some applications need extremely high resource of correctness, some applications don't (and can even fail badly, usually due to delay or rigidity, if they have an over-provisioning of correctness).

The presumption that every type of project should fundamentally begin with adherence to patterns guaranteeing high resource usage of correctness is a bad type of premature optimization / premature abstraction.

Rust & Haskell are great tools in the rare cases you do need extreme correctness. But in my experience most situations do not benefit from spending that cost (the ways Haskell & Rust enforce program structure is a huge cost) to get correctness, and you can get approximately just as much correctness with pretty low-touch unit & integration tests in most languages, without heavy costs of roundtrip compile times, static typing, forced (instead of selective) management of mutability and ownership, and so on.

<comment><USER17> I doubt it will surprise you, but many disagrees with you. Using Haskell isn't a burden - on the contrary, it's far easier to get stuff working correctly. The type checker looks over your shoulder and stays out of the way until you make a blunder. It's not uncommon for things to work as soon as they pass the compiler. I work in C every day and this is not the typical experience there.

I'm hugely interested in Rust, but I'm disappointed that they felt the need to rename all concepts and adopt an ugly syntax. I assume it was done to attract the C++ crowd.

<comment><USER18> Additionally, at least in (GHC) Haskell, you can recover most of the flexibility typical of dynamic languages via use of undefined values, partial functions, the PartialTypeSignatures extension, and the defer-type-errors flag. Personally, I've found these tools to be very useful when prototyping, exploring/experimenting in a REPL, or beginning a refactor, and the process feels very akin to development without unit tests (or tests turned off/ignored/whatever), especially in the progression of incrementally adding back compile-time-checks and watching my mistakes surface.

<comment><USER19> Great advice, I'll try these features out while prototyping on Haskell.</comment></comment></comment></comment>


Teen sexting is an overblown moral panic, according to a new study - <AUTHOR> https://www.technologyreview.com/f/613980/teen-sexting-sextortion-is-an-overblown-moral-panic-according-to-study/ <comment><USER2> >About 14% of middle and high school students reported getting a sexually explicit image from someone they were dating, while 11% said they sent one. Around 14% of respondents said they had gotten a sexually explicit image from someone they weren't romantically involved with.

It's interesting how facts are used. The above 14% statistics are presented as a way of saying that there's not really a problem. After all, if only 1 in 7 kids is sending explicit imagery, it's not a big problem, right?

Putting it another way would be that 1 in 7 teens commits felony possession or distribution of child porn. That's how law enforcement views it in some states!

My son is 11, and we haven't broached this specific topic, but we do consistently remind him that he should treat any electronic communication as if he expected it to become public.

<comment><USER3> Am I the only one who sees this as kids today using the iPhone for the same thing we used to use the Polaroid for?

The technology has changed, but adolescent behavior hasn't.

<comment><USER4> A 4" square blurry Polaroid picture that can be shown to a select few friends and eventually lost or destroyed has nothing to do with a high resolution image that is trivially forwarded to the entire school by the recipient, acquired via hacking or social engineering, and can be manipulated with photoshop.

<comment><USER5> A polaroid, or the artful b&w 10x8 developed in photography class can just as easily be passed round half a school in one break or lunch time, or left on teacher's desk. Or sent in to a 1990s Reader's Wives magazine, then publication would have come down to whether they _looked_ school age or not.

That it can spread wider, go viral, or be manipulated is a case against _any_ electronic communication in place of paper or film photography. The choice to send it further is the problem not the medium.

<comment><USER4> Right, but every student getting a glimpse of it as it goes by is completely different from everyone having the full-fidelity copy on their device permanently. And a magazine's editorial board being the gatekeeper on wide distribution is completely different from anyone who has it being able to pull the trigger at any time.

If you really think these are in any way the same, you'll be shocked to hear what record companies thought about Napster in the early 2000s. Turns out sharing a digital file and sharing/copying a physical artifact are not even remotely the same. As tech people, we don't get to just wash our hands of these consequences and say that it's down to individual human choices any more than car companies can avoid building in safety features by saying they'd be unnecessary if only people were better drivers.

</comment></comment></comment></comment></comment><comment><USER6> Really even if teen sexting was ubiquitous it would still be an overblown moral panic as the law continues to insist on things which just aren't true - like it makes any sense to have the victim and victimizer be the same person.

I am sure everyone who grew up with the internet knows the 18+ restriction is a joke, widely flouted, and there were no benefits from actually obeying it but it is taboo to suggest considering changes as most would rather not think about that subject at all and are suspicious of those who do. And those who grew up before likely knew of secret stashes or "poor man's alternatives".

Any member of Congress who proposes reform would fear torpedoing their reputation.

</comment><comment><USER7> The big risk of sexting seems to be idiot prosecutors going after kids for it being technically production and distribution of child pornography, leading to cases where the victims are also the perpetrators.

[https://www.aclu.org/blog/juvenile-justice/minnesota- prosecu...](https://www.aclu.org/blog/juvenile-justice/minnesota-prosecutor- charges-sexting-teenage-girl-child-pornography)

It becomes particularly baffling that you can be old enough to consent to _sex_ in some states, but not old enough to consent to a naked selfie.

[https://lacrossetribune.com/news/sexting-makes-minors- simult...](https://lacrossetribune.com/news/sexting-makes-minors- simultaneously-victims-and-perpetrators-of-child- porn/article_8ee303e2-5f39-54b8-823b-ff8cdfc29df6.html)

</comment><comment><USER8> > Other surprises:

> Teens who identified as not straight in the survey were almost twice as > likely to engage in sexting as their heterosexual counterparts.

This shouldn't have been called a surprise, and should have been broken down by gender. Gay men indulge in much more sexual behavior than straight men do, because they can. Lesbians are not known for this.

The study intentionally threw this data away:

> The clear majority of the sample said they were heterosexual (92.8%), while > 0.7% said they were lesbian, 0.5% said they were gay, 2.8% said they were > bisexual, 2.3% said they were questioning, and the remaining 0.9% selected > "other" as a response choice. These responses were dichotomized where 1 = > heterosexual and 2 = non-heterosexual.

<comment><USER9> This is a bit of a controversial comment, but I'll try to keep it objective.

I think part of this might be cultural? Maybe there's something about the "gay subculture" that encourages this? I'm no expert; some one more involved might be able to comment, but that's the external perception, any way.

I think the other part might be that the type of youth who "experiment" might have more promiscuous tendencies, leading to a higher incidence.

<comment><USER10> Perhaps there is a difference. Why is it worth looking into?

Why do you use a loaded word like "promiscuous" instead of plain "sexually active"?

</comment></comment></comment><comment><USER11> If a study says something is overblown, check to see if it provides a correct level of blown-ness or a threshold for something to be a reasonable moral panic. If not, they haven't provided a falsifiable hypothesis.

In this case, they have a survey with numbers of how many teens sext. What numbers would have resulted in a different conclusion?

To me, "18% of 15-year-olds reporting that they sext" seems like a lot of people doing something extremely dangerous.

<comment><USER12> What is extremely dangerous about sexting? Honest question.

<comment><USER13> As a parent, I feel that I have some responsibility to provide my daughters with the best life outcome possible.

Examples of failed life outcomes would be drug addiction, poverty, suicide, or dying alone with their cats. There are many more.

In general, unrestrained sexual behavior tend to be bad for your odds ratio. That's not even getting to positive life outcomes, which involve developing fully as a human being, and with full and deep relationships to the other human beings around you. Unrestrained sexual behavior tends to be bad for this too.

In case you've ever wondered, this is also why sex on television is so much worse than violence on television. Seeing a murder on television doesn't really alter my children's odds ratio for becoming a violent criminal too much. But seeing a lot of sex on television makes it much more likely that they'll take sex less seriously than is good for them.

<comment><USER8> > In general, unrestrained sexual behavior tend to be bad for your odds ratio.

On the other hand, it's great at avoiding the "dying alone with your cats" failure mode.

<comment><USER13> > On the other hand, it's great at avoiding the "dying alone with your cats" > failure mode.

For a woman? You really think so? My impression has been that unstable relationships tend to make stable pair bonds far less likely in the future (for men too, but not quite as starkly). Further, women have a much easier time forming lifelong bonds in their 20s and early 30s than in their 40s and 50s (men too, but the effect is not as stark).

In fact, I'd even go so far as to say that if someone really wanted to maximize their chances of dying alone, unstable sexual relationships throughout their peak reproductive years is by far the best method.

<comment><USER8> > I'd even go so far as to say that if someone really wanted to maximize their > chances of dying alone, unstable sexual relationships throughout their peak > reproductive years is by far the best method.

Not even close. Unstable sexual relationships through the peak reproductive years mean you're likely to end up with children.

<comment><USER13> That has not really been the case ever since the advent of modern birth control.

<comment><USER8> It's still the case now. There's a very large subpopulation who aren't really capable of using birth control effectively.

<comment><USER13> Can you be more detailed about this subpopulation?

<comment><USER8> Sure thing. From Planned Parenthood:

> If you use condoms perfectly every single time you have sex, they're 98% > effective at preventing pregnancy. But people aren't perfect, so in real > life condoms are about 85% effective — that means about 15 out of 100 people > who use condoms as their only birth control method will get pregnant each > year.

( [https://www.plannedparenthood.org/learn/birth- control/condom...](https://www.plannedparenthood.org/learn/birth- control/condom/how-effective-are-condoms) )

This applies to all forms of active birth control, and is the major reason people push for passive forms such as IUDs and long-term implants.

<comment><USER13> So by "very large subpopulation who aren't really capable of using birth control effectively", what you meant to say that "people who report using condoms alone for birth control only have an 85% success rate?" Which in turn you are using to prove that "unstable sexual relationships through the peak reproductive years mean you're likely to end up with children"?

I think that you may wish to reinvestigate your original point.

<comment><USER10> It gets more complicated once you statify by age or income. Birth control is not free, intoxicants and general carefreeness limit how successfully birth control measures are applied.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> Has there ever been a widespread, harmful teen phenomenon that wasn't an overblown moral panic? Whether it's tidepods, sexting, or fortnite bullying, it seems like journalists and politicians would rather focus their energy on this kind of nonsense than actual concerns (proper sex education comes to mind).

<comment><USER15> Vaping is one I'd like to see us put the kibosh on, however.

<comment><USER16> Vape Panic: more vestigal puritanical nonsense hysteria distraction.

<comment><USER17> except it does carry actual health risks?

<comment><USER18> If health risks are the concern the focus should be on harm reduction.

<comment><USER10> Then the question is if studying efficacy of harm reduction methods including bans or age limits or wide educational campaigns, monitoring of quality or other measures.

But moral panic wants none of that.

</comment></comment></comment></comment></comment></comment><comment><USER19> What is the measurement of "overblown"?

>Overall, approximately 13% of students reported that they had sent a sext, while 18.5% had received a sext. About one-third of those who sext had done it just one time.

Perhaps people who are concerned would find those numbers concerning?

If that is true... then is it "overblown"?

<comment><USER10> It depends on whether it causes harm and degree thereof. Some people love black and white thinking...

</comment></comment><comment><USER20> The question appears to ask about sending sexually explicit imagery. I think that would catch a lot of people who have exchanged something pornographic but not of themselves or people they know.

<comment><USER8> > Sexting was defined for respondents in the survey as "when someone takes a > naked or semi-naked (explicit) picture or video of themselves, usually using > their phone, and sends it to some-one else. The image is called a 'sext'."

<comment><USER21> how did they ask the question?

Because that's not sexting to me. sexting to me is literally just talking naughty in explicit ways. Part of that foreplay can be sending images, but I suspect most people don't limit sexting to strictly the sending and receiving of images.

Or maybe I'm just old, who knows.

</comment></comment></comment><comment><USER22> Clickbait junk. Conclusion akin to "Drinking and driving probably okay usually".

<comment><USER23> I don't understand this. Are you equating teen sexting to drinking and driving?

<comment><USER24> The article only assessed the prevalence, _not the consequences_ , of sexting and then concluded that panic is unjustified.

That can make for a poor conclusion; e.g. concluding that panic over teen drunk driving is unjustified, because <10% of teens have done it.

I don't think OP means to say they're the _same,_ just means to illustrate a flaw in the argument.

</comment></comment></comment><comment><USER25> When I think of sexting I think of baby boomers like

[https://en.wikipedia.org/wiki/Anthony_Weiner](https://en.wikipedia.org/wiki/Anthony_Weiner)

the teens I know today smoke pot more than they smoke tobacco and they smoke pot less than when I was growing up.

As much as older folks like to fantasize that young people do it like bunnies, I think the issue with kids today is that they aren't going to have sex enough to reproduce themselves,

<comment><USER24> > I think the issue with kids today is that they aren't going to have sex > enough to reproduce themselves,

Birth rates might be a problem, but I don't think the amount of sexual acts is the limited factor.</comment></comment>


Doodled thoughts on learning. [PIC] - <AUTHOR> http://elzr.com/images/blog/graphs/learning-5-components.gif

<comment><AUTHOR> Just some simple drawings on what seemed one day to me to be the main components of education. Illustrated through capoeira, it should apply to any field: programming, foreign languages, medicine... Perhaps it can be of interest to others, spur interesting conversation?</comment>


Avatarify lets users run realtime deepfakes on live video calls - <AUTHOR> https://www.inputmag.com/tech/open-source-program-will-let-you-run-deepfakes-on-live-video-calls <comment><USER2> It would be interesting to see how far you could get using deepfakes as a method for video call compression.

Train a model locally ahead of time and upload it to a server, then whenever you have a call scheduled the model is downloaded in advance by the other participants.

Now, instead of having to send video data, you only have to send a representation of the facial movements so that the recipients can render it on their end. When the tech is a little further along, it should be possible to get good quality video using only a fraction of the bandwidth.

<comment><USER3> This is a minor plot point in Vernor Vinge's excellent SF novel _A Fire Upon the Deep_.

One of the premises of the novel's universe is that computational power is generally absurdly plentiful, but communications bandwidth over interstellar distances is not. Most communications are in plain text (modeled after USENET) but in some cases, "evocations" are used to extrapolate video and audio from an ultra-compressed data stream.

The trouble, of course, is that it's not very obvious what aspects of the image you're seeing are real, and what aspects were dreamed up by the system doing the extrapolating.

<comment><USER4> A main premise of the Fear the Sky trilogy as well but solved a different way. Machines representing various political factions from the home planet are uploaded with AI that mimics them emotionally and politically for all intents and purposes. I really enjoyed this book.

<comment><USER5> Eh, I personally enjoyed the series, but I wouldn't recommend anything beyond book 1. Book 2 is ok. Book 3 really spoiled the series for me because of the inconsistent behavior if the main character. (Keeping it vague to avoid spoilers)

<comment><USER4> Same. Notice I said "the book" while mentioning the trilogy ;-)

</comment></comment></comment></comment></comment><comment><USER6> Actual Github repo for this called Avatarify: [https://github.com/alievk/avatarify](https://github.com/alievk/avatarify)

Original repo code that Avatarify is based on called First Order Model: [https://github.com/AliaksandrSiarohin/first-order- model](https://github.com/AliaksandrSiarohin/first-order-model)

Short video demonstrating First Order Model: [https://www.youtube.com/watch?v=mUfJOQKdtAk](https://www.youtube.com/watch?v=mUfJOQKdtAk)

</comment><comment><USER7> Voice fake has been done already as well.

[https://github.com/CorentinJ/Real-Time-Voice- Cloning](https://github.com/CorentinJ/Real-Time-Voice-Cloning)

<comment><USER8> As someone whose tried this repo extensively with politican sound clips (I wanted to troll buddies on discord) - it kinds blows. Don't get me wrong - it's really neat but the results are far less good than one may expect.

Sometimes it almost works, and then it's just totally absurd. Long pauses, voices that don't sound compelling, total failures on female voices. It's great in theory but it showed me that there's a ton of work to be done with voice cloning.

Props to the author for using UMAP to seperates voices though

Also lol at the demand being so high that there are open issues of people offering to _pay_ others to install this on their machine. Freelancing opportunities show up in the strangest of places...

<comment><USER6> Real Time Voice Cloning certainly has iffy output, but it's probably the most popular because it provides the easiest plug-and-play experience with even a simple UI to get started.

The author says he's working on a more polished toolkit called Resemble.AI, but I've never tried it. [https://www.resemble.ai/](https://www.resemble.ai/)

There's certainly a market out there for just beautifying existing repos to making it easier for non-scholars to get going. Even having a Colab Notebook ready to click-and-start is quite powerful -- probably a big reason why First Order Model (source paper to the original story) got so much traction so quickly.

<comment><USER9> See [https://www.descript.com/lyrebird-ai](https://www.descript.com/lyrebird- ai) for another one with an on-site demo.

</comment></comment></comment></comment><comment><USER10> I ran this on ubuntu 18.04. It took a little work to get around a small bug that will be squashed when the v412loopback library gets officially rebuilt but here is a solution [https://github.com/alievk/avatarify/issues/37#issuecomment-6...](https://github.com/alievk/avatarify/issues/37#issuecomment-614503547)

anyway, on a 4930k at 4.5 ghz i am seeing reasonable performance(~30fps) but minimal cuda utilization(titan pascal). The biggest issue is that you need a well lit, stationary face for it to properly map features of the jpg you are using to substitute for your face. Also the jpg needs clearly identifiable features. Even then, the amount of facial expression is subdued (for example closing your eyes is not properly processed).

I seem to recall software about 10 years ago where you drew line segments of corresponding features on 2 images and the jpg was then mapped onto the video. It was more accurate and expressive than this is but did require time to set up.

</comment><comment><USER11> The way that the mouth and eyes move, but that the rest of the face is pretty static, is actually really charming to me.

It betrays that it's a fake, which I think makes it easier to be a fun joke.

<comment><USER12> That's simple. If you are trying to fool someone....

"My internet speed is very low. I know the video is choppy".

<comment><USER13> Which is the line taken by the guy who made his own video call bot shown in social media recently.

[https://redpepper.land/blog/zoombot/](https://redpepper.land/blog/zoombot/)

</comment></comment></comment><comment><USER14> This is the best application of deep fakes I have seen! If someone was selling deep fakes for StarTrek/StarWar, it would be hot cake among crowd here, except for too many Kirk and Picards might be seen in meetings.

<comment><USER15> More meetings should definitely start with arguments about who gets to use which avatar. "I only took Riker because my boss is on the call!" "Geordi is already taken; you have to be Wesley!"

</comment></comment><comment><USER16> Sounds like it would be with a few minutes of fun on a daily status call during these work-from-home days of quarantine. For the time being the goofiest it's gotten was someone using a virtual webcam that allowed for green-screen and looping video of the Max Headroom background... Which reminds me, though slightly off topic, if there's virtual webcam software whose sole point is to keep a log of all of the applications using the built-in camera or mic. That might be useful.

</comment><comment><USER17> I'm sure we will see more and more of this. One question is when they get so good, how can people figure out that it's a deep fake or a real human? Will we have captchas for videos soon ? _sigh_

<comment><USER18> My opinion on this is that we will "soon" have "trusted" webcams that create some sort of signature in each frame. In other words, a way to say "this is what the camera saw, guaranteed".

Probably something that would be built into phones and laptops first.

Of course, we know that messing with such a datastream would be easy for us, but for enterprise users (think liability) and news organizations it could be a real boon.

<comment><USER19> That's when you point your camera at a screen.

<comment><USER20> Will the "trusted" webcam manufacturers then attempt to detect any screen curvature?

</comment></comment></comment></comment><comment><USER21> I seriously wonder how this will affect online dating. Not that I've dated in quite a few years, but even if I wanted to, I wouldn't go back because last time I did, the proliferation of obnoxious Instagram filters and photoshopping made the experience unenjoyable. Fake people aren't appealing. I would bet that the ease at which the average person can deep fake will only make matters much worse. There will always be a demand for Tinder, Match, Bumble, etc., but they will be strictly used for hookups.(I know some will say that's what they are already for, but people are always making that argument for every dating app, thus I can't take that opinion very seriously) Actual dating will have to either go back into being more in-person or require a third-party to handle photography.

<comment><USER22> Why do you think people would use fake pictures on mass. If they wanted to create a profile with pictures that aren't themselves then surely it's easier to just steal someone else's?

<comment><USER21> Because they already do, to some extent. Now this is my own experience and intuition, but I would say that at least 15% of people's photos on dating apps are doctored in some way. I know some might dispute this, but I've seen enough questionable artifacts in such photos that I believe quite a few of them are artificially flattering. This isn't even including those puppy-face photos. And yes, already there are people who outright steal other people's photos. I've been on many dates where the person looked nothing like the photos.

There are a few problems with these kinds of fakery. If you are simply touching up photos to make them more flattering, that takes a lot of work that the average person doesn't want to do. There's AI that can make you look sexier, but said AI is often inconsistent, and isn't that good at arbitrarily modifying features. People who might want to use photos of people who aren't them may have a moral hangup from using someone else's likeness, and that prevents them from going ahead with it.

Deepfake technology solves both of those problems. You can use it to change your eyes, your hair, the shape of your face, consistently at every angle, and possibly I real time. More people would feel comfortable using a likeness that isn't theirs because they don't feel like they are stealing, especially if they have no intention of meeting people in real life.

I'm not saying that all or even most people would use this technology in dating, but it would require only an appreciable portion of an audience to be dishonest to cause many people to throw in the towel.

These are just my crazy theories, so maybe I'm way off base. Soon we will have deepfaking that is easy to use and requires minimal training, and I believe they will be used often and eventually be normalized in society.

<comment><USER23> > These are just my crazy theories, so maybe I'm way off base.

You absolutely are not. From my experience I'd say about 30%+ of the pictures that were posted to OkC 2+ years ago were doctored in some major way (I'm a straight man so this anecdotally only applies to women's pictures).

Using your "own" picture that's doctored is easier to justify for these folks vs. just using someone else's. Also, these people are still going on real- world dates, so if they look like an _entirely_ different person they're taking on more risk vs. using weird Instagram filters.

> I'm not saying that all or even most people would use this technology in > dating

I think most wouldn't employ this sort of deceit like you posit, as MOST of people I went on dates with were totally operating in good-faith.

BUT - there will be a huge chunk of people that are happy to do the mental gymnastics to justify posting a fake picture of themselves.. and those people are exhausting.

Protip: _NEVER_ meet up at a bar initially because it's expensive when this happens (AND IT DOES!!!). ALWAYS do an informal coffee. It is easy to keep coffee to a 15-20 minute thing and not get on the hook for at-minimum 2x $15-20 drinks. If you chose a coffee place, do so an hour or so before lunch/dinner in walkable distance to a nice restaurant. This gives you both the opportunity to keep the date going if it's a positive experience =)

</comment></comment></comment></comment><comment><USER24> All the new mobile banks seem to do their ID verification/KYC using video selfies. Interesting to consider whether deepfakes are being used in wild to fool these systems and commit fraud.

<comment><USER25> They try to mitigate this. They ask you for example to move your hands around your face and bend your ID card.

<comment><USER26> Just apply the same technology to mitigate their mitigation. Arms race all the way down.

</comment></comment></comment><comment><USER27> Finally a solution for daily standups.

I can pay someone to attend meetings all over the world, by just impersonating me.

</comment><comment><USER28> I am just waiting for someone to build a deep_nude_realtime_zoom plugin so I can finally tell people that we should take digital security, privacy and identity seriously.

<comment><USER29> That would give everyone an alibi and make them care even less about privacy.

<comment><USER28> I really wonder what government agencies will do with deepfakes. Will they doctrine evidence like they do now at a greater scale?

They already distribute CP, encourage people to believe in Russian conspiracies, troll, encourage violence and the list goes on. So fucked up that we think it is normal.

</comment></comment></comment><comment><USER30> Hey guys! I'm one of the founders of Impressions, the first mobile deepfake app on a phone. Try it out and give us your thoughts. Right now it's out for IOS but Android is on route. Here's our website [https://impressions.app](https://impressions.app)

<comment><USER31> Very weak output I've seen so far. Trying another before passing judgment, but honestly this is so obviously fake output so far.

Edit: now done three images, all well lit face, no dramatic movements, and the output is just terrible.

<comment><USER30> It really depends on lots of factors. Lighting, angle, face type, the celebrity you choose and your facial hair. If you're squinting your eyes for example, you won't get decent results. DM me your ID from under settings so I can give you credits to play with.

</comment></comment></comment><comment><USER32> I wanted to play with this, but ran into an error upon starting a Miniconda prompt after a fresh install of Miniconda3 on Win7:

        ModuleNotFoundError: No module named 'conda'

It's triggered by this line in conda-script.py:

        from conda.cli import main

Same thing happened when I tried installing Anaconda instead. Any suggestions?

\----

EDIT: To get this to work, I had to remove a PYTHONHOME environment variable lingering from an old (but still valid) Python install (see [https://github.com/conda/conda/pull/9239](https://github.com/conda/conda/pull/9239)), and _set CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1_ to avoid mkl_intel_thread.dll issues.

Leaving my comment here for anyone else who gets stumped.

<comment><USER33> I had a different set of challenges on Windows 10

\- Miniconda installer suggests you _don 't_ add it to the path, so i didn't but install_windows.bat assumes you do

\- There is something with windows permissions happening with the installer, where it can't access the network and can't run the conda activation process. I didn't spend any time figuring this out, i just execute dthe command from the (short) batch file one by one and it worked fine.

\- i had to add 'fomm' to PYTHONPAT in order for it to find sync_batchnorm.

</comment></comment><comment><USER34> I would love to use this with an avatar of myself so that I don't have to get dressed up for calls!

</comment><comment><USER35> Nice, now I can pass my Binance verification with fake KYC more easily

</comment><comment><USER36> Any hope of being able to run this on a machine with an AMD GPU?

</comment><comment><USER37> Finally, the solution to the "haircut problem" with videoconferencing. My gf spends 3-4 hours in meetings every day and is quite concerned about this.

</comment><comment><USER38> I wish deepfake could get the mouth part right. It's been the biggest challenge since the first CGI face animations and is always the giveaway.

<comment> Lex-2008 Good answer to the question asked in a different comment regarding detecting such fakes!

</comment></comment><comment><USER39> This is pretty funny. I wonder, how hard would it be to use tech like this to make it look like you are looking the camera "in the eyes"?

<comment><USER40> Apple is doing this on FaceTime with the latest iOS. Pretty neat feature, makes Video calls more personal.

<comment><USER41> Microsoft has it too:

[https://venturebeat.com/2019/10/03/microsofts-ai-powered- eye...](https://venturebeat.com/2019/10/03/microsofts-ai-powered-eye-gaze- tech-is-exclusive-to-the-surface-pro-x/)

Seems they've been working on it since 2002:

[https://www.microsoft.com/en-us/research/project/eye-gaze- co...](https://www.microsoft.com/en-us/research/project/eye-gaze-correction- for-video-telecommunications/)

</comment></comment></comment><comment><USER42> Ok so how about an app that does the opposite of this, and can prove that the video/audio data hasn't been tampered with since it was created? I don't think it would need much more than public/private key encryption, and a blockchain ledger to record every-time the data was transmitted from one user to another. Thoughts?

<comment><USER43> How would you prevent against a deepfake program presenting itself as a camera? From your applications perspective, it's raw data directly from the camera but there's no guarantee the camera is just a camera.

<comment><USER42> The "secure video stream" would probably need to be baked into the hardware, like Apple's Secure Enclave [https://support.apple.com/guide/security/secure- enclave-over...](https://support.apple.com/guide/security/secure-enclave- overview-sec59b0b31ff/web)

</comment></comment></comment><comment><USER44> And the Cam industry was never the same.

</comment><comment><USER45> Theoretically you can deepfake yourself but then be not at the place, just pipe in your voice. Prob be accomplished by linking it to some Twilo API

<comment><USER46> Why would you do remote work even more remotely?

<comment><USER47> So you can go to the office ;-)

</comment></comment></comment><comment><USER48> This is a posting about an article (inputmag) about another article (vice) about a git repo. Wow.

</comment><comment><USER49> "I thought what I'd do was, I'd pretend I was one of those deaf-mutes."

</comment><comment><USER50> 81 comments at the moment and not one single mention of Infinite Jest?! How disappointing...

<comment><USER15> I read that over 20 years ago; could you explain the relevance? deepfakes or something similar would have fit right in with "the entertainment" etc., but I don't recall that happening...

In general I find that adding an oblique reference is more appreciated on HN than simply name-dropping a particular fictional work.

<comment><USER50> In the book there is a long passage about how video calls were initially very popular, but after a while people realized that with video calls they were supposed to be looking to the screen all the time and how that led to unnecessary anxiety - e.g, on the telephone you could talk on the phone while clipping your nails, on the video it would never happen.

There is also a part where people had to start worrying about their looks on the screen, so that led to a cottage industry of virtual make-up, stand-ins to pose in front of the camera while you could stay away, etc. After everyone realizes that no one is actually in front of the camera anymore, people start going back to regular phone calls.

</comment></comment></comment><comment><USER51> I don't understand why everything thinks they have to be on video for every single meeting. I never turn on my webcam. It makes no difference to the outcome of the call.

<comment><USER52> A lot of information can be transmitted through non-verbal communication (e.g. facial expressions). Do you look at the faces of other people on the call with you who do have their cameras turned on? If so, why?

<comment><USER51> Nope since someone is usually presenting their screen anyways.

</comment></comment></comment><comment><USER53> From the site's text:

> _and plenty of Americans and Russian 's willing to use whatever means > necessary to ensure Trump gets re-elected_

That is not what the Russian attacks are about.

In fact, the maker of the site seems to have fallen for the attacks himself.

The attacks are about _dividing_ society. Radicalizing people towards the left and right. The "Trump haters" are just the same as the "Trump fanatics".

The author, by implying that the "bad guys" are just one site, is playing into the hands of the Russian trolls. Its exactly what the attacks are trying to achieve.

<comment><USER54> Both things can be true. They don't really care for Trump personally, they just want to sow discord, but Trump is a great way to sow discord.

Non-Russian-aligned intelligence agencies were pretty unanimous in their assessment that Putin was trying to get Trump elected _and_ that they troll both extremes of the political spectrum.

<comment><USER53> Wasn't there an investigation that found no evidence on that?

</comment></comment></comment><comment><USER55> Couldn't I just wear an N-95 mask?

Once the pandemic is over, I'm never using Zoom again anyway.

<comment><USER12> You're never working remotely or do you plan to use a different app/service?

<comment><USER56> And good news... this works with other services, not just Zoom.</comment></comment></comment>


Google Voice gaining users? First invites. - <AUTHOR>

I've been using Google Voice for a long time and never had any invites to give to other users but as of today they've added a few to my page. I remember Gmail starting up this way. Is it just me or are more people experiencing this? <comment><USER2> I have 3 but I'm not sure when they appeared since I mainly interact with GV through my phone and email.

</comment><comment><USER3> Anyone have a spare invite they'd like to share? Email is my hn username at gmail. Thanks!

</comment><comment><USER4> Also, to people asking for invites, if you sign up on the list, you will generally receive one within a few days.

Additionally, if you are a student you are guaranteed a free one: <https://www.google.com/voice/students> (though it took nearly 48 hours for mine to show up rather than the advertised 24 hours)

</comment><comment><USER4> I got 3 invitations in the first week. I use Google Voice exclusively for all my calls and a decently high volume of my text messages. My invited users use the service heavily and I've been responsible for getting my brother and both my parents using Google Voice, yet I've never been given additional invites.

:(</comment>


The battle to destroy Wikipedia's biggest sockpuppet army - <AUTHOR> http://www.dailydot.com/lifestyle/wikipedia-sockpuppet-investigation-largest-network-history-wiki-pr/

<comment><USER2> "Only a few people on Wikipedia are trusted with sockpuppet investigations. Like forensic investigations in the real world, they tend to reveal the most sensitive information. In this case, that means a Wikipedia user's IP address, the unique number that identifies the computer network you use to connect to the Internet. For any logged-in Wikipedia user, IP addresses are usually hidden."

There are a lot of high-profile, well liked websites that allow a broader group of moderators to have access to this kind of user information, and at least some (one where I am a member of the moderation team) that attempt to use automated means to detect sockpuppets. I understand some of the cultural reasons why Wikipedia has been reluctant to defend itself more aggressively, but it's regrettable how little Wikipedia does to protect itself against the kind of abuse described in the article kindly submitted here.

</comment><comment><USER3> Reminds me of Gary Weiss (a fairly prominent financial journalist / blogger) getting exposed for running sock puppet accounts on Wikipedia a few years ago.

There was a ton of 'drama' in the Wiki sense of the word, with numerous bannings, several rounds at the ArbCom, corrupted admins, and then eventually Wales got involved.

Jimmy Wales at the time:

        The evidence that Weiss has sockpuppeted all over the Internet
        is pretty compelling, and even the mainstream press has
        commented over his refusal to directly address it. Is Mantan
        one of those socks? We have no proof either way, but I think
        the evidence tends to suggest it.

        [...]

        But the issue is real. My concern is that if Mantanmoreland
        is really Gary Weiss, then it is only a matter of time until
        this is proven…either by Bagley or someone else…and we will
        find that we have been manipulated in a pretty sad way.

[1] - [http://www.theregister.co.uk/2007/12/06/wikipedia_and_overst...](http://www.theregister.co.uk/2007/12/06/wikipedia_and_overstock/?page=1) [2] - [http://antisocialmedia.net/the-final-word-on-gary-weiss- and-...](http://antisocialmedia.net/the-final-word-on-gary-weiss-and- wikipedia/) [3] - [http://www.deepcapture.com/wikipedias-jimbo-wales- unimpresse...](http://www.deepcapture.com/wikipedias-jimbo-wales-unimpressed- by-gary-weiss-and-his-lies/)</comment>


The paradox of the middle of the market - <AUTHOR> http://sethgodin.typepad.com/seths_blog/2009/06/the-paradox-of-the-middle-of-the-market.html <comment><USER2> _I'm not talking about compromising or dumbing down your product. A very hot hot sauce is remarkable. A sort of hot one is boring, and no one, not even the geeks will talk about it._

Hot-hot-hot sauce _is_ dumbing down your product. What about flavor? Reaching for yet higher levels of capsaicin content is simple, the result primitive. A complex, well balanced flavor is much harder to achieve, and has a much higher reward. (And less excess discomfort the day after.)

I'm a geek and not even particularly knowledgeable about hot sauces, but still, let me _talk about_ Baron's hot sauce. Very plain label. Good treatment of the aged peppers. Tasteful addition of a strong garlic note. IMO, wonderfully flavorful. In contrast, there's "Heinie Hurtin Hot Sauce," which has good comic traction for marketing. Colorful cartoon on the bottle. Nothing remarkable in the bottle, IMO. (No, I'm not an expert, all of this comes from eating at a neighborhood burrito place with a selection of 6 hot sauces at any time.)

As always, appealing to the wannabe segment of the fringe is easier, because they have a shaky grasp of the fundamentals and therefore are easier to manipulate with shallow marketing. (The guys who reach for "Heinie Hurtin" for the bragging rights.) The clueful part of the fringe is much harder to reach.

Semblance is easy. Substance is hard.</comment>


Let's finally get good Chromium window borders on Ubuntu - <AUTHOR> https://groups.google.com/a/chromium.org/g/chromium-discuss/c/e5BVeg88wZI <comment><USER2> the origin of the term bike shedding refers to the way groups of people's attention is overly drawn to the form of the interface edges--let's call them borders--of the space designed functionally to contain the bikes, when in fact all the most important parts of the project are what is in the interior space of the bike shed, that which is within the borders.

<comment><AUTHOR> Haha true, and I'd definitely agree that Chromium's borders are one of the least important parts of the software.

However, just because something is less important than something else doesn't mean it's not worth changing.

I doubt most businesses would leave lots of ugly graffiti on the side of their bike shed, even though actual business operations were much more important.

Bike shedding refers to being so distracted by unimportant details that important business isn't taken care of. It's possible to give the shed a good coat of paint once in a while while still taking care of more important matters.

<comment><USER2> but I'm also one of the people who likes borders the way they used to be, with visual indication of where you can click with your mouse and I also use focus- follows-mouse, so I like to light up the border of the active window. So, to me, this isn't bike shedding, it's bike shredding.</comment></comment></comment>


Twine: a social network with brains - <AUTHOR> http://www.roughtype.com/archives/2007/10/twine_a_social_6.php

<comment><AUTHOR> _"... Twine provides one place to tie everything together: emails, bookmarks, documents, RSS feeds, contacts, photos, videos, product info, data records, and more ..."_

Danger Will Robinson, danger. Gushing quote ~ <http://www.twine.com/about>

Listen to Eben Moglen to understand (more) why. _ITConversations, "Eben Moglen, 'Freedom Businesses Protect Privacy', mp3, 18Mb, 40min"_ ~ <http://itc.conversationsnetwork.org/shows/detail1897.html></comment>


Introducing the Intel Galileo Development Board - <AUTHOR> http://www.intel.com/content/www/us/en/do-it-yourself/galileo-maker-quark-board.html?wapkw=galileo <comment><USER2> I think the page, despite its title, does a rather bad job of actually _introducing_ the board.

Shouldn't it start, front and center, with a big sell-in as to _why_ the Galileo is (I guess) more awesome than the Arduino? What you can do with it, that you couldn't do before? And, perhaps, just some basic specs? Now I had to look for the Specs page, and download a PDF, just to get the "bullet points" for this new platform.

<comment><USER3> Here is a better introduction: [http://arduino.cc/en/ArduinoCertified/IntelGalileo](http://arduino.cc/en/ArduinoCertified/IntelGalileo)

</comment></comment><comment><USER4> I don't understand the selling point here, maybe someone can explain to me why:

1) I'll buy a board that's more expensive than all of it's competitors.

2) has a website that's impossible to understand any detail, it's all sales chat.

3) Has a tiny processor and even less RAM.

4) Very underwhelming specs all round, i'm also not that bothered about x86 (should I be?)

As far as I can tell, Intel has turned up late to the party with a cheap bottle of wine. I don't understand the unique selling point here at all, maybe someone can elaborate?

However, if intel's chip was super power efficient, and the board had a built- in li-ion battery that could power the whole thing for a month between recharges, now that would be interesting.

<comment><USER5> 1) It's "Intel"! 2) School boards buy into brand names "Kids should lean on Intel boards because they will be using Intel machines when they join the workforce" 3) the ad kinda reads like "Intel is finally legitimizing the Arduino and maker movement."

Administrators and PHBs (who BTW may hold Intel stock) are influenced by such things.

<comment><USER6> Bingo. In other words, HN readers, serious electronics hobbyists, anyone with even a little hardware savvy: these are not the target market. Intel is betting that they can steal/grow some significant piece of this market share based on their brand alone, and they are probably right.

</comment></comment></comment><comment><USER7> Really a 486 ...?

[http://semiaccurate.com/2013/10/28/intel-talks-little- quark/](http://semiaccurate.com/2013/10/28/intel-talks-little-quark/)

<comment><USER8> Ouch. They really slaughtered it.

As a hobbyist I think I'll get one; even though financially it probably doesn't make sense, it'll be fun to play with what amounts to a "modern" 486! Would be extra fun to build a small kernel for it, which is probably what I'll end up using it for :)

Using a Core processor in 16-bit real mode makes me giggle these days, but I love fiddling with toy kernels! This seems well suited with an arch that I'm familiar with. One day I'll learn ARM properly I guess

</comment></comment><comment><USER9> I'm not clear about Intel's motivation for releasing this. Are they looking to capture a part of the hobbyist/education markets, or do they see this as being a product that will used by businesses (who I'm guessing are the majority of their customers) for serious embedded applications?

Note that I'm not saying at Arduinos can't be used for "serious" applications, only that my perception is that so far they haven't displaced existing microcontrollers in industrial/automotive/etc applications.

<comment><USER10> Arduino is a bunch of stuff around an Atmel microcontroller. For all intents and purposes, _it is_ an existing microcontroller, except that the platform itself is outrageously expensive, far too expensive to be of any commercial use.

</comment></comment><comment><USER11> Galileo doesn't have hardware graphics acceleration, and native video outputs (may be solved by capes though). That would make Galileo not so suitable for media center or streaming applications, where BeagleBone and Pi excel... unless somebody manages to fit (externally powered?) PCIe graphics card and port its drivers to Galileo ;)

<comment><USER12> _not so suitable for media center or streaming applications, where BeagleBone and Pi excel..._

Can we all just finally admit that the whole "educational" thing of the RPi is out the window?

</comment></comment><comment><USER13> Even though it isn't about galileo, I wrote a blog post about the new Intel perceptual computing platform. In effect, they built a MS Kinect for $150, Windows only, and undeveloped software (only SDK).

Intel's new trend seems to be to piggyback on successful older ideas, and do badly at making their version. Its their choice to make sub-par equipment, but its also my choice to criticize them for these jokes.

And seriously... a x86 atmel clone? I can source 384's for $1.80 on digikey and use an arduino as a programmer. Sigh.

[http://crankylinuxuser.wordpress.com/2013/10/23/intel- percep...](http://crankylinuxuser.wordpress.com/2013/10/23/intel-perceptual- computing-fail/)

</comment><comment><USER14> Huh. A SoC on a board targeted at hobbyists without any capture/compare timer resources. What an... interesting choice.

</comment><comment><USER15> What is the price of the Galileo board?

</comment><comment><USER16> Anyone know the price?

Arduino is 20-30 USD

R Pi is 35 USD

Arduino Due (w/ARM) is 50 USD

<comment><USER17> Don't forget BeagleBone Black for ~$45, with a 1GHz Cortex-A8 application CPU and two additional independent 200MHz control MCUs.

<comment><USER18> The BBB is a pretty rockin' little board. Really between the Arduino's ability to have applications extremely cost reduced and the full OS power of the BBB, the RPi has been squeezed out of my stable of solutions for small/embedded system applications.

</comment></comment></comment><comment><USER19> Most notably missing from this page: how, where, and when can I get one?

<comment><USER20> I managed to get a galileo board at the Maker Faire Faire Rome if you are interested I can sell it to you, it has never been used, totally new I can send pictures. I live in France.</comment></comment>


Sweet taste, not just calories, dictates metabolic response - <AUTHOR> https://news.yale.edu/2017/08/10/sweet-taste-not-just-calories-dictates-metabolic-response <comment><AUTHOR> Daily Mail has the following headline based on this study: _Diet drinks and low-calorie meals trick the brain into making you FATTER and trigger diabetes, study claims_ [1]

[1] [http://www.dailymail.co.uk/health/article-4781050/Diet- drink...](http://www.dailymail.co.uk/health/article-4781050/Diet-drinks-trick- brain-making-FATTER.html)</comment>