Hacker Newsnew | past | comments | ask | show | jobs | submit | johndoe42377's commentslogin

  Location: Asia
  Remote: only
  Willing to relocate: Sweden or Norway only
  Technologies: classic FP: SML, Haskell, Scala, Erlang, FSharp
  Résumé/CV: https://karma-engineering.com/lab/wiki/TitleIndex
  Email: johndoe42377@gmail.com


  Location: Asia
  Remote: Prefered
  Willing to relocate: Sweden or Norway only
  Technologies: Haskell, Scala
  Résumé/CV: https://karma-engineering.com/lab/wiki/TitleIndex
  Email: johndoe42377@gmail.com
Could do async/email text-based consulting for founders or wannabes Haskell programmers.


> Physics without determinism

What does this even mean? The whole universe and life itself are possible precisely because there is determinism, which is captured in what we call logic, (and arithmetic).

Sects, fucking sects everywhere.


The turn of phrase is probably bad, but determinism can exist even in a fundamentally undeterministic universe. All that is required for the universe to be undetermimistic is for SOME events to lack a cause. For example, a universe in which once every billion years a particle appears out of thin air somewhere in the universe and flies off in a random direction is, on the whole, non-deterministic, even if every other interaction works according to simple mechanistic rules.


The universe and biology are stochastic.


Honestly, what kind of bullshit is this?


Why do difficult? $500/mo buys you a room, wi-fi and home made food almost everywhere in developing countries.

Working from home is a long sought boost for everyone. Places like Sikkim, or Ladakh, unspoiled parts of Nepal and Sri Lanka are ideal for remote work.

The problem is that there is no demand.


One thing westerners don't realize when they move to places like SriLanka is that they end up increasing the local prices. This happens in the US too, when Californians move to Texas and start paying more for properties (or rent). It is hard enough for people in developing countries to compete without foreigners moving in - with them, it becomes impossible.


There's also employment generated from the services consumed. USD shortages and other problems are similarly ignored.

This is a zero-sum view. I've recently observed it becoming more popular online. True to form, the simple take misses all of the nuance.

On one hand there are people decrying the horrible conditions for housekeepers sending remittance from the Gulf. On the other there are economically troublesome analyses like the above.


This already happens in a way in my country, you’ve got all these people who have emigrated for better wages and who are using the money they earned in those other countries to buy real estate at home. This is kind of shitty for the people that did not choose to emigrate, because on top of the shitty local wages they have to contend with rising real estate prices, too.


The author wanted to be nearby his children in Sydney, one of the most expensive cities in the world.


Demand isn't the main problem- it's that if you live in such a place, most employers will want to pay you according to local wages. The idea of taking a job in the US overseas and the exploiting the economic difference sounds good on paper, but I've seen companies attempt to adjust income accordingly.


Just lie.

Use a friends address...


« Why is is nighttime on your cam? It’s 1PM?! »


Use virtual backgrounds


Most companies don't allow fully remote or remote in different time zones. If they did, they could just outsource all the work to nationals of lower cost of living countries.


There is something fundamentally wrong with these models.

The brain "works" because it's evolved structure matches or reflects reality. It is not about having billions of neurons, but about to have the right structure which matches the environment.

My favourite example is how butterflies evolve pictures of eyes on its wings to scare predators, having literally no idea about existence of other creatures.

It has been evolved because other creatures have eyes, and they are there, of course.

The proper structure of neural networks must be based on such fundamental features, like "most of creatures have eyes" and similar ones.

Brain does not have a flat structure, like a billion x billion matrix. It is more clever and simpler that that.

A language model must be based on the fundamental notion that there are nouns (things), verbs (processes) and adjectives (attributes). It is that simple.


Slightly apples to oranges comparison.

The brain has an incredibly complex architecture, which evolved over millions of years. On top of that, it then develops throughout a human's lifespan. The brain we observe is a "finished product", and even then it has ~150 trillion synapses to do computations [0].

Even massive neural networks have a relatively simple architecture before they are trained. Part of the training process is effectively learning more complex architectures, which are manifested by changing weights.

What I'm getting it is that artificial neural networks aren't equivalent to the brain - ANNs are both learning their own structure, on top of the circuits actually doing computations. They are doing the work of millions of years of evolution, genetics, developmental biology, interaction with the environment etc. Perhaps it's to be expected that ANNs will need orders of magnitude greater number of parameters than a brain.

An interesting development is meta-learning, where we separate the process for learning the architecture (this could be using deep learning, but not necessarily) with the network actually doing computation (equivalent to the brain).

> A language model must be based on the fundamental notion that there are nouns (things), verbs (processes) and adjectives (attributes).

I agree, but how does the brain represent these concepts? Some would argue that ANNs do have these concepts, just hidden away in abstract vector representations. Take the visual system, which has been extensively studied - we see the brain represents contrast, edges, shapes and so on very similarly to convolutional NNs.

[0] It's likely that this number doesn't come close to capturing the brain's complexity, as it doesn't incorporate parameters like long-term potentiation/depression, synchronization, firing rates, habituation vs sensitization, immunomodulation and likely so much more we haven't yet discovered.


If the brain is the answer, the question involves trillions of parameters. Clearly there's more to the brain than just size, but also clearly, the brain is big for a reason. In fact scale is one of the very few things we can say for certain plays a big role in the function of the brain. GOFAI notions of embedding grammars and knowledge webs are just guesses on faith—the evidence points precisely in the opposite direction—and don't really make much sense anyway.


It is too late, but I think they should have adopted the ML family approach of uniform pattern matching (in function clauses and parameters as well). Uniformity is a big deal.

Ok, Scala or Rust got a chance. Partial functions (clauses), currying and patterns complement each other remarkably and it is well-researched and formalized for decades.


Obviously, not. Not even apples versus oranges. Church encoding shows you that "all you need is lambda", which is the same to say all you need is a membrane in biology.

Even further, Lambda calculus shows you that function creation and application are necessary and sufficient for everything, with obvious parallels to biology (enzymes are just proteins).

Visitor pattern is just some wired wrapping to satisfy a rigid type system, which composition of Traits or typeclasses would solve. One just pass a function which knows the structure.


> Obviously, not. Not even apples versus oranges.

Formally, `A + B` is isomorphic to `forall T. (A -> T, B -> T) -> T`, where the inner `(A -> T, B -> T)` is the type of a visitor.

    a + b
    -- CPS transform
    = forall t. ((a + b) -> t) -> t
    -- distribute -> over +
    = forall t. (a -> t, b -> t) -> t
    -- if you want to drop even the product, distribute -> over *
    -- but this loses you the ability to name a separable Visitor
    = forall t. (a -> t) -> (b -> t) -> t

    type Visitor a b t = (a -> t, b -> t)
    type Sum a b = forall t. Visitor a b t -> t

    iso :: Sum a b -> (a + b)
    iso s = s (Left, Right)
    
    osi :: (a + b) -> Sum a b
    osi (Left a) = \(onA, onB) -> onA a
    osi (Right b) = \(onA, onB) -> onB b


What is the point of doing forall T but not forall A and B?


A and B are free to be chosen by a producer of the generic Sum type. However, T can be chosen "late", by a consumer of Sum; a value of type Sum A B must work for any T you decide to use down the line.

If it helps, the equivalent Java signature is:

    interface Sum<A, B> {
      <T> T visit(Function<A, T> onA, Function<B, T> onB);
    }
Hopefully this makes it more clear that A and B are fixed when you receive a value of type Sum A B, but you get to pick a T when consuming that value.


Thanks


I really don't know how to respond to this sectarian bullshit.

Three is literally nothing in the ability to create another abstraction by finding an isomorphism, which is just a pair of functions.


You're right that there is no benefit in creating another abstraction, but the point of the post is sometimes the language doesn't have support for the original abstraction (e.g. sum types), so in some cases the other abstraction (e.g. visitor pattern or Church encoding) is the only available abstraction.


Look, I never tried to be offensive or even bully. But I care about the principle of calling things by its proper names and precise language usage. I am describing things exactly how I see them.

And I have reasons to do so. Like so many others I have traveled that road, from Haskell basics up to the latest writings and courses of that self-propelled category theory expert - Bartosz, for whom I have great respect.

However, at the end of the journey I came to different conclusions, that the whole subfield is nothing but a sect (the definition is a consensus based group of eager supporters) and the whole set of nested abstractions is empty of meaning, except in producing deeper and deeper nested abstractions. I cold provide analogies with Eastern religious sects, which I have studied too, where abstract things are described in minute details, and the merit is in the knowledge of these minute details, but I won't. It will only complicate this discussion.

So I don't see any meaning, and I see socially constructed interested, identical to esoteric teachings, which is even better definition of what Bartosz and others are doing.

Let's say it is Hegel all over again.


Oh, I forgot to mention, that "enzymes are proteins" is isomorphic (lol) to "procedures are list structures" (or "code is data") which explains the miracle of Lisp and it's macros and connects Lisp to life itself, and justifies why MIT folks ware so fascinated with it.


Just a nice set of ideas to be used for social signalling.

In with type systems, a typeclass is all you need. The mantra is "to be an X (being substituted for an X) is to be able to perform (implement) such and such actions (or have this or that biochemical properties).

It is that general, that deep, it could be even seen in molecular biology.

Category theory, on the other hand, is just a few nested abstract concepts, of which only monoid has some connection to reality, which ends up empty, like most abstract pseudo- philosophical bullshit.

And yes, I have watched and read everything by Bartosz. It is empty.


There are a lot of claims made to try to apply CT to programming; I agree most of that effort is overhyped.

But CT in general has nothing to do with programming, it's proper role is in pure mathematics


Every type theory gives a categorical logic [0]. Category theory is all about describing the structures which definitely exist around mathematical objects even if we don't acknowledge them very often. This isn't social signalling; I'm not posting under my real name and I'm not trying to get accolades. This is mathematics; we teach it to each other.

[0] https://mikeshulman.github.io/catlog/catlog.pdf


I would claim that such structures are imaginary, not structures at all, and the whole field is a sect (a socially constructed movement based on sectarian consensus which regards "knowledge" of details of abstractions, which does not make any sense outside of sectarian contexts).

Let's talk the most basic algebraic laws. Yes, there is indeed no difference in adding 2 apples to 3 apples, or adding 3 of them to 2. The question is from which pile to start, and the result is the same. (Multiplication, being just repeated addition, is also obvious - there is really no difference which side of a rectangle comes first).

Notice, that there is still a fundamental connection to reality. Adding C to O has exactly the same properties. There is no difference which comes first.

The identity element is more tricky, because nothing of this sort existed in nature. Nature has distinct start and stop sequence, and does structural pattern matching in the literal sense.

So, we would superimpose an element upon reality which lacks it, the same way as it goes with zero. Let's say, that trying to add what's can't be added (by physical properties) produces no change to the original element, and it is equivalent to addition of a zero.

Generalising this noop we will get something similar to identify.

1 for multiplication, is natural , while an identify matrix is an artificial construction.

Okay, this is all common sense. The important thing that there is literally nothing deeper than this shaky generalisation which we call monoid. First, because only addition and multiplication are "true monoid".

Protein production by an enzyme is almost it, but no identity.

There is no identities outside your head. A list is a monoid because of added '() - the empty list, which, again, does not exist anywhere. There is no such thing as an empty DNA sequence, empty molecule, etc.

I could go on, but maybe you already see where it goes. Everything is imaginary and too abstract to have any applicable, meaningful context.


This sounds facetious. After all, the humble empty set is not physical either, and yet most set theorists will claim that it is Platonically real.

More generally, mathematics is a social construction, yes. The word literally means "things we teach each other", and the defining quality of mathematical facts is that they are non-obvious but can be verified for oneself without any additional help or context.

Denying the usefulness of category theory will only make theoretical physics harder. It doesn't make physics any simpler.

Edit: I was going to just link you to the Encyclopedia of Philosophy, but I'll spell out the definitions explicitly instead.

A formal logic is a system with some propositions and some deductive rules. Each rule takes a (family of) propositions and sends them to new propositions, changing their syntax but not their truth. Rules may be composed associatively, and for each proposition, there is a trivial identity rule which changes nothing.

This is a category, right? So every formal logic has a corresponding category whose objects represent its propositions and whose arrows represent its rules.


If you have to appeal to Platonism to make the "realness" of a concept less controversial, your claim will not be strong, as Platonism itself is controversial, and by definition supposes the existence of things which cannot be perceived. This makes it more difficult to argue for the realness of a concept, not less, since any means of "observing" the existence of that concept must be indirect to a Platonist.

It is also inconsistent to claim that mathematics is a social construction, while agreeing with these Platonic mathematicians enough to use their view as evidence.


Okay, but like, every logic has a corresponding category, right? Please focus on the maths and stop struggling; you're only making things harder for yourself.


That doesn't contradict the previous notion that category theory is "empty" or adds nothing to the original understanding of the logic. At best, you've just changed how you describe precisely the same elements of the system. And once you start using categories to talk about categories you lose concrete referents entirely, describing description.

If the point was modelling linguistic syllogisms, or accounting for the stock of apples in your warehouse, why bother? These tasks are better served by analyzing the objects in question, rather than you, the describer.

> Please focus on the maths and stop struggling; you're only making things harder for yourself.

This is condescending – I could say the same thing and ask you to "stop struggling with philosophy". But neither of us should.


There is nothing wrong with abstract thinking. It is indeed useful. It is, in fact, one of the things that separate the higher animal species like humans from the rest.


This is the social signalling I am talking about.


Hi Karma.


This is the first time someone recognised me. By writing style, I suppose.


I've read a lot of your work and appreciate it. I don't agree with all of it. But all of it is good.

And indeed you have a distinct style.


Remote, like almost everything else, is just not for everyone.

For some people, which are usually called "introverts" and similar names, remote is a bliss, and for people like Torvalds, it worked well for decades.

The only real problem is for mostly useless management positions, who will have difficulty to justify their necessity without in-person social signalling bullshit.

For really capable people a simple and straightforward text-based workflow is all what is required.

Again, the development of Linux kernel would be the use case.

My bet is that the actual developers of the Pfizer vaccine do not need any bullshit meetings either.

One more time - for some of us not facing idiots in person is a bliss, and we are capable of writing communication at the level way beyond what is required for most jobs or business relations.

And it is not Slack and other synchronous bullshit. Async email and tickets will do.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: