HN user

whilenot-dev

1,148 karma

https://blog.whilenot.dev/ https://github.com/whilenot-dev https://gitlab.com/whilenot-dev https://codeberg.org/whilenot-dev

Posts4
Comments501
View on HN

This is what robotics should be used for.

I disagree. We should use robotics to extend our reach into hazardous environments, enhance our physical capabilities, or to provide a steady handling of things where it's absolutely needed - doing laundry in my household is none of these.

Folding laundry takes me 10 mins every 10 days. I organize my closet once in a while according to my sense of fashion, and now I'll just need to keep that structure. I don't always like to do these chores, but I have no issue in acknowledging them as part of my responsibilities. Why would I even automate[0] that?

Robotics is costly, and I see no way how that would change anytime soon. That isn't a flaw of some kind either, it's rather just one of the limitations that needs to be accounted for, neglecting that would be detrimental to the future I envision.

Don't get me wrong, I love robotics with a passion, as engineer I like to tinker, and I'm a big admirer of FESTOs bionic research[1]. It's just that the field suffers from an "overpromised and underdelivered" aura as far as I can remember, and I remember the presentation of ASIMO[2] 26 years ago.

Some people would like to see the field hyped up, focused on the consumer like every other field in tech, probably for financial gain, but I personally see the value in its downplay. To be honest, I love these reality checks, as I see them as a valuable part of the learning process all together - a journey for what it means to automate, and what it means to define as human natural chore.

[0] https://xkcd.com/1205/

[1] https://www.festo.com/us/en/e/about-festo/research-and-devel...

[2] https://en.wikipedia.org/wiki/ASIMO

This doesn't answer GPs question, though: Why is a panic-baiting "we'll get rid of jobs" better than some gain-baiting "we'll make your workforce 10x more productive"? Why is panic a better response to investors than gain?

We got:

- A: "AI helps in automating tedious tasks"

- B: "Your workforce can be more motivated and productive"

- C: "You can do more with fewer people"

Why not advertise A → B, stop there and let their customers do the reasoning for B → C themselves? Why go straight to a hyperbolic A → C and swallow all the hate that comes with it?

My own presumption is that we got that strange fetish for optimization (C) and just don't trust our own ambitions to make the potential gain in productivity (B) work any other way.

Cool, didn't know about `history fixup`! I only ever did the manual dance with `rebase -i` and `rebase` for all other branches. That and `history split` will sure come handy!

What happens with a conflicting fix though? Do I still need to resolve all conflicts on the base branch and `reset --hard` all other branches?

I meant to write quite a long response to your comment, but let me just bring it down to a single question: How is your feeling different from melancholia?

There is and always will be mainstream, niche, the unknown and everything in between. There was always very little new material and a lot of works just gained recognition when their zeitgeist was long overdue, too. I think experimentation is hard, and it's even harder to justify experimentation in the evolving economic climate.

Genres are meant to be collapsed, or rather they should blend and dissolve into each other. The earlier (and good) seasons of The Simpsons are a poster child when it comes to "flattening and duplicating old material". Almost every episode cites a movie or work of literature, and there was nothing wrong with it! It's part of why I understand the 90s as a cultural era of citations, and I had to grow up with that sentiment. It took me quite some time to understand that we moved past it.

Nowadays, we are fortunate enough that a lot of things from the past 10 decades have been digitized and are readily available on demand. That's amazing! Nothing is stopping me from asking myself some naive questions, like "What makes a good drama?" or "If Die Hard is considered to be a Christmas movie, why isn't Falling Down considered to be a summer movie?". I think there is still stuff to explore.

I'll just leave this unfinished thought with a recommendation to a niche movie I discovered recently: Sleep Has Her House (2017)[0]

[0] https://scottbarley.com/Sleep-Has-Her-House

Our hypothesis is simple: session logs are now the most important artifact in software development, and should be stored alongside the code itself in the repository. [...] Humans can more easily understand and verify what was built and why, providing a provenance layer that leads to far faster review periods.

Did they understand the coming issues (reviews), but just came up with a completely wrong hypothesis (session logs)? I mentioned it in another comment some time ago, I think the biggest issue in VCS software arises from the combination of two separate ones...

  - A (technical): Reviews are currently not part of the VCS

  - B (cultural): The amount of merged source code currently grants for higher authority/ownership of a code base than the review/verification of that code
These two things in combination are also part of the reason why we deem software engineers replaceable in the current hype cycle. Adding session logs to the VCS seems like treating the symptoms instead of the disease.
Cloudflare Drop 13 days ago

In Austria and Germany, you just cannot transfer the copyright ("Urheberrecht"). You can only transfer - meaning sell - the right of use ("Nutzungsrecht"). The only exception I know of is with employments, where the employer is the rightful copyright holder. The US, Switzerland, and maybe other legislations allow for the transfer of copyright.

Cloudflare Drop 13 days ago

Hoarding massive amounts of data for the success of machine learning algorithms was a thing long before LLMs were a thing too. Remember the neural networks hype that kicked off around 2010? LLMs didn't even challenge the prevalent paradigms of deep learning: "Most of the value of deep learning is where you can get a lot of data" or "Data is the new oil".

TypeScript 7 14 days ago

I don't think GP was referring to transpilation speed when they wrote "most advanced type system known to mankind".

What do you mean? Where is the percentage of "75-80%" coming from? Local service is great, and I'm happy to pay a little extra to see my neighbors employed.

not 100% of the population voted yes.

Well, call me surprised! Which democratic election ever achieves a one-sided 100%?

Still, the majority of the EU population seems to in favor of the EU, whereas the majority of the US citizens are pro-Trump, or they were during the last election at least. So I don't really understand what you're arguing for here.

But in reality a big enough proportion of Europeans see the EU as a hostile foreign influencing force.

Yeah, I have to doubt your perceived reality here. Can you name some of these "hostile foreign influences"?

The big competitor to Apple is Google, whereas the big competitor to Microsoft is Linux/FOSS IMHO. I'm sorry to be blunt, but in the current political climate I couldn't care less what any Americans are using and for whatever reason. EU citizens on the other hand sure got a few reasons during the last decade due to foreign American politics.

Well, where do you live?

I live in an EU country and care deeply for the right to erasure and our consumer rights. The EU legislature does some good things on that front. I "care" for EU tech companies as much as I can care for any company currently. I think technological sovereignty is and will be important moving forward, for our economic resilience, infrastructure stability, among other things.

BTW "EU nationalist" just sounds like an oxymoron to me.

How is the definition incorrect? I know haplotype as all the genomic variation on a single gene. And since every gene comes in two copies, two haplotypes define one diplotype.

I can just tell you from experience that aluminum foil is much more fragile than paper, your college might face some difficult challenges in making it work and need to rework their machine. Maybe very lightweight paper comes close, but certainly not the standard 80gsm printing paper.

I created an embossing machine than would emboss aluminum foil with the scratch marks of a teaspoon. Aluminum foil tends to get a fold rather quickly, doing that for 40m was quite a challenge.

The embossing machine: https://postimg.cc/67wkVGBy

The embossing process as GIF: https://postimg.cc/3W6zSqKx

The embossed aluminum foil as GIF: https://postimg.cc/yDh5NY0D

I made an artwork in 2013-ish, where I attached an aluminum foil to a good DC motor. I mounted it from the ceiling with 2 stepper motors to control height and one orthogonal axis. The motor would unwind the foil by accelerating quickly in either direction (CW/CCW). By changing directions it would also create folds and stabilize the emerging shape: https://imgur.com/a/gaRKGtQ

I always imagined an additional stepper motor to cover an area like a delta 3D printer and liked to think about the difficulty in creating the 3D software, and the need to find a solution to simulate the unwinding-into-shape through some physical model.

EDIT: unwinding GIF here: https://imgur.com/a/VP3gEiv

it is not in general possible to find bugs by examining the code.

Oh hell yes it is, at every level of abstraction even. We call those things code smell... A file descriptor that hasn't been closed, a coroutine that hasn't been awaited, a big try/catch block that just falls back to some value without logging the error, wrong type castings, etc.

As a general rule: Neither type checker, nor compiler, nor runtime should ever be steps that merely want to be satified - work with these steps and treat them as the valuable tools they are, and never work against them.

Their implementation of an exhaustive check will give you a compiler error if you miss a variant in your switch statement. I much prefer a compiler error over a run time error.

What are you talking about? You'd still get the compile error just the same.

Falling back on returning the input argument doesn't even make sense in the typescript docs:

  type Shape = Circle | Square;
 
  function getArea(shape: Shape) {
    switch (shape.kind) {
      case "circle":
        return Math.PI * shape.radius ** 2;
      case "square":
        return shape.sideLength ** 2;
      default:
        const _exhaustiveCheck: never = shape;
        return _exhaustiveCheck;
    }
  }
Case circle and square are returning a number, but an unknown shape is returning itself? This is especially annoying when teammates are starting to cast values into a Shape throughout the codebase. Guess I'll need to make a PR to the typescript docs.
  default: {
    const _exhaustive: never = result;
    return _exhaustive;
  }
...is not how people should implement an exhaustiveness check ever! An exhaustiveness check exhausts your knowledge about the world, it should throw an exception at runtime. Just returning the non-matched case is a recipe for disaster. Do this instead:
  default:
    ((value: never) => { throw new Error(`Missing case for value: ${value}`); })(result);