HN user

DeepRote

5 karma

i hack money and your daughters

Posts0
Comments17
View on HN
No posts found.

The reason it's so expensive to live near SF is because of people like this.

Your landlord knows how much you'll pay if they know you work in the gay area and will tolerate a 5-hour commute.

It's the same reason NJ is becoming more expensive. They know you'll pay because you're willing to ride PATH every day to get to work.

Don't commute more than an hour to work. If you can't afford to live close to your work, find different work.

People like this are making it even worse, and not just in SF, in NYC, in Boston, in and around Raleigh, in ATX, everywhere.

Commuting is making it harder for other people and yourself.

Yeah but humans can more easily make macro-decisions based on micro situations. It's easier for us to look at a map and figure out which side is winning, sometimes that's really hard for a computer to do.

I'm not a Dota2 player, but like SC2 for example is a game with LOTS of room for AI improvements. I've always thought that having some sort of APM limit might actually encourage AI authors to adopt new and unique approaches to macro-strats, but it doesn't seem to be on the horizon.

When it comes to do a small thing rapidly, I think bots are almost always going to win.

When it comes to do something large-scale with finesse, I think humans are going to have an advantage for a LONG time.

I think that part of what makes human agents so effective at certain tasks, especially in the context of being up against another human is that we can evaluate an event and better understand the WHY of it relative to the player that played it.

If I see a player pull back a bit, sometimes I think to myself that maybe they saw something they weren't expecting or something they weren't quite sure how to handle. When a computer sees the same move, a floating point number among millions changes slightly. I can try and figure out why they might be pulling back, if I did something weird or if I did something totally normal I might suspect it is bait, etc. I can think all these things in a short period of time and while large AIs might have better FLOPS than me, it doesn't understand what I'm doing, why I do it, etc.

Curriculum learning isn't as effective in bots as it is in humans is my contention, I guess.

Fair/unfair is a pointless observation when it comes to humans vs bots. The diversity of human-based problem solving is the perfect friction to train AIs against, imo.

ScalaJS already is a real player, it just doesn't stack up to Typescript.

I'm not making this shit up out of thin air, look at usage numbers.

Purescript is not going anywhere, most likely ever.

Scala is not even remotely stagnant. Scala programmers are becoming stagnant, but scalac hasnt experienced any major growth slowdowns, Scala native is progressing quite a bit, ScalaJS is still a thing, and Dotty seems to at least be implementing some of that new DOT stuff.

I'm not defending how obnoxious it CAN be to write Scala, but say it's stagnant is just dishonest or misinformed. Or both.

Also SBT. Fuck sbt.

The fallacy there is that Clojure development is drastically slowing in favor cljs. Because there's jobs doesn't mean anything with regards to dev status.

My dad has been writing COBOL for 30+ years, but I think we could both agree that it's a dead language in a certain sense.

My first language was Scheme. I wrote some stupid BATCH scripts at school and decided I wanted to learn to program. I worked my way through half of SICP, etc etc. I LOVE Lisps. I was rooting for Clojure a few years ago.

However, I think Clojure is embracing types too little too late. Large systems are hard to do in dynamic languages. There's no easy way around that. Sure, immutability helps, and having a strong style guide helps and having strong interactive programming helps, but it never goes away that it's harder to do when you can't reason about the structure of something without evaluating that thing.

That there are more Clojure jobs sprouting up as development is drying up screams disaster maintenance to me.

I'd love to be proven wrong. I would LOOOVE for Clojure 2.0 to fully embrace a strong type system and maybe some stricter semantics but it just isn't going to happen. Very few people are familiar with Clj internals, fewer people still are still working on it, and fewer people still plan on continuing that work for a long period of time.

Call me crazy, but I think there are two major threats to Clojure's current reign in the enterprise lispverse.

Racket's rewrite to Chez. That's big. That will mean big performance gains and I think could provide incentive for someone industrious to wrangle some of the crazier parts of racket into a coherent biz-ready language.

The other is Elixir. Now, I hate elixir but people seem to eat that kind of stuff up. They have a strong macro story, BEAM is very powerful in the right hands, and as time goes on it becomes more and more clear that it's easy to write high-concurrency, low-latency, SMP-enabled systems in Elixir.

Elixir doesn't have a type story (racket does, but it's kinda lame), but that never stopped Clojure up to this point.

Also, Clojerl (clj on erlang/otp) exists, which could strengthen the motivation for moving away from Clojure by making pure-clojure applications vulnerable to completely automated porting thus eliminating the need for clojure maintenance programmers.

That's my take on that whole situation.

Have you ever looked at Julia?

I mention it just because I've had almost a carbon-copy of that conversation but I showed them Julia and now that person actually is writing Julia for their startup. That person is doing technical chemical engineering stuff, so the fit is a bit more pronounced, but I think it's a neat language aside from that. Parametric types and multiple dispatch and lisp-macros, oh boy!

What's not manly about that? I'd fuck Lauren too. Granted, I might not tweet it out quite like that, but yeah.

You don't get to determine morality based off someone's speech, only off their actions.

Until they actually fuck, it's that big of a deal. People that complain about mean things online were recently attacking people with dangerous weapons the other day. I have become suspicious of most people who want to gatekeep other people, it's usually a signal that they have no respect for the concept of personal property and human rights.

Neither are making "big strides". They both are barely able to exist.

Eta will never even approach Scala in terms of adoption, and I had only heard about Purescript a few weeks ago reading about Elm.

Typescript will dominate functional JS-world (already is, tbh) and Scala is still crushing function JVM-world, and if Dotty ever actually materializes, adoption will get even better. Additionally, Scala-Native and ScalaJS are making progress and could eventually be real players. Not likely to take food away from Haskell or Typescript, but they will certainly maintain larger usage than PS or Eta.

edit: I'll concede that Clojure matters a bit in JVM-world, but it's dying quickly.

Disclaimer: I'm a huge fan of Shkreli. Great guy, excellent financial instincts, pharma wizard etc.

I'm surprised he didn't get assassinated for some of that stuff with Wu-Tang, especially in NY. I know I've been waiting a new full-featured Wu-tang album for a LOOOONG time, and I know a lot of new yorkers were too. Multiply that anger by several million people and media deception, it shocks me that he's still around.

The lesson I've learned about all this is the value in nobody knowing your name. Shkreli was fucked over HARD by the media, he's really just a cool guy playing the game, and they spin him as this terrible evil mastermind.

He used to stream all the time, you couldn't watch him for more than five minutes before falling in love with him. He's a man of the people in the truest sense. More than anyone I've ever met.

I hope he finds a way through all this.

I've experienced sort of a diagonal problem to this.

F# is way too entwined with .NET to be immediately useful to programmers familiar with Ocaml or Scala or Haskell, etc.

Some of the basic List., Array. stuff is simple enough, but then you start talking about interfaces and classes and members and all this stuff that doesn't really translate from C#->sanity very well.

I know people love it, but I've long considered C#/Java to be kludge languages on platforms they don't deserve. The JVM might be the most impressive software engineering marvel I can think of, and yet on top of that christmas tree stands a tall, stinky shit.

I'd love to see F# as a F#-first platform, and offer .NET interop as a secondary language feature.

I've also noticed a concerning trend in F# circles that """diversity""" should be celebrated. There is no merit in your skin color or your genitals. If you can hack well, you deserve to do so. End of story.

A counterpoint to the F# being poisoned by .NET is Clojure. Look how well Clojure did Java interop and how "not a big deal it is." Immutability everywhere, functional by default, and it feels painful to do things the Java way in Clojure. F# doesn't mind at all if you sink to .NET trickery and in some cases require it.

I could think of more, but off the top of my head, the .split instance method comes to mind. I have a Markov Chain kata that I spring on new hires to see how they do things, and .split is an instance method, which is counter-intuitive to how functional problems are solved because you don't just |> into it.

I'm waiting to see where Clojure goes with core.type before I abandon F#. I really WANT to keep riding the F# train but it causes quite a few headaches. Not more than it solves, but more than other solutions that I've considered.

To balance this out, I'll say something I really love about F#. Units of measure. Few languages have this, and the kind of numerical work we do means we really get our mileage out of UoM. I always see finance horror stories or like the excel rounding bug, it makes me wonder exactly how much money UoM has saved us from losing through some innocent type somewhere. Debugging money code is way easier when you can verify all the conversions separately from the logic. It feels like cheating, to be totally honest. I know there are big shops out there that don't have UoM in their tools, and I used to feel bad for them, but now that we have it, I can't help but NOT feel bad for them.

Anyways, yeah, F# isn't perfect. There's plenty to be said also for the amount of progress they make with language updates. It grows a crazy amount between major versions, and I haven't had too much problems yet taking old F#3.0 code and revitalizing it. Very pleasant experience in that regard as well.

The sooner intel dies a fiery death.

Microsoft is already preparing for the ARM-war with Windows 10 on ARM, intel has already made threats that x86 emulation is a litigious minefield, etc. They need to go, and I think Microsoft has their hammer and nails ready for the service.

Bill Gates should spend some of that charity money on LLVM, that'd be great too.

Elixir is just an AST transform for erlang/otp. I like erlang and there are features that I wish it had sometimes, but elixir couldn't be further from what I'd come up with if I decided to fix it myself. It takes all the bad parts of lisp, shoves them into a bad ast format, and crunches it all down to beam code. It's just a terrible implementation of a terrible idea.

I am actually moving components of my apps away from erlang to f# to shield it from the destruction of beam that elixir will bring about.

2/10