HN user

jaeh

72 karma

[ my public key: https://keybase.io/jascha; my proof: https://keybase.io/jascha/sigs/6-0JzzB3XlsxUOSm4P69uzmj7aILbSjKaZM2tF53puM ]

co-founder: https://artificial.museum/

personal homepage: https://jaeh.at/

open source projects: https://github.com/jaeh/

Posts0
Comments37
View on HN
No posts found.

The norm is cooperation and competition is the tool we invented to cooperate more effectively.

Competition is only cooperation's favorite strategy.

(By choosing from competing groups we select more favorable cooperation partners, because there are too many to choose from.)

Both of our statements are true. darned doublethink.

1D Chess 3 months ago

damn. multiyear streak ruined. i even managed to forget i was playing.

i just lost the game.

I met Sir Terry Pratchett only once, briefly, at a book signing, and got scolded for a bad joke (and for letting him sign his first book, which he did not like), i think it's really hard to guess what he would have wanted at that time. This happened around 2006, after he knew about the dementia, but well before i or the public knew about it.

The younger Terry, unencumbered by dementia, would likely have loved the idea of analyzing his writing for most scientific purposes, he co-wrote multiple scientific fiction books together with physicists and other science communicators.

I actually regret making him upset, i did not know about his troubles at the time and i would not make the same (completely unrelated to his ailment) joke knowing about it, neither would i have brought his first book if i knew he disliked it.

Just imagine having your head full of a world you created, a world filled with more stories than you could ever write down, and realizing that you will never get a chance to do so and that it will all fade before you can share it. That experience must be extremely painful and for sure leads to changes in personality traits.

Right before i had my turn he signed the book of my girlfriend and he also signed her journal even though there was a strict "only one book per person" rule. When she asked him if he would sign the journal as well he said "I would even sign your hand, madam". This is the Terry i will remember, the charming and incredibly witty person that bestowed upon me the best stories i have ever enjoyed.

GNU Terry Pratchett, for Death can not have him!

his songs have traveled with me my whole life but it took me 30+ years to find my favorite:

the future.

things are going to slide (slide) in all directions

won't be nothing (won't be)

nothing you can measure anymore

...

i've seen the nations rise and fall,

i've heard their stories, heard them all

but love's the only engine of survival.

...

and all the lousy little poets coming round

trying to sound like charlie manson

...

give me back the berlin wall

give me stalin and st. paul

i've seen the future, siblings

it is murder

https://www.youtube.com/watch?v=LYzPVKg3wyo

the song is from 1992 ...

edit: tried to fix the formatting

Quid Pro Crow 3 years ago

I ALSO think you're overestimating the intelligence of Republican politicians. :)

chaos.social is run by the chaos computer club, you can assume that they configured it that way on purpose.

my profile, on the same server, loads fine.

hoisting divs as hud works nicely already, both in ios (webxr viewer) and android (chrome + google play services for ar)

you just need a div directly below body, then you can actually enable it as a hud in augmented reality.

at the moment we only use it to show announcements to the visitors, but i also have tested buttons with event listeners attached and you can even console.log from there.

html

  <html>
    <body>
      <canvas id="three-canvas"></canvas>
      <div id="hud">
        <button>Will be visible in ar</button>
      </div>
    </body>
  </html>

js
  const xrSession = await window.navigator.xr.requestSession('immersive-ar', {
    // ...requiredFeatures,
    domOverlay: {
      root: $('#hud'),
    },
  })

css
  #three-canvas {
    z-index: 999;
  }
  #hud {
    z-index: 1000;
  }
edit: use window.navigator instead of W.NAV, my custom "window" global.

do you mean like this?

  const onResize = () => {
    const { innerWidth: w, innerHeight: h } = window
    camera.aspect = w / h
    camera.updateProjectionMatrix()
    renderer.setSize(w, h)
  }
  window.addEventListener('resize', onResize)
HTML Tips (2020) 5 years ago

its a bit flaky, sometimes it just does not work, and its hard to debug, css is a hard language to debug and get right.

https://jaeh.at works fine when reloading, no layout changes, and the layout changed slightly before i fixed it using width & height.

https://noncon.org does not (and i had no time to fix, might be because width of images is not set, might be something with the css position/float layout, we had about a week to setup the whole conference infrastructure, including the streaming server, layout flashing was my last concern at the time and i kept myself too busy since then to fix something so trivial...)

sorry for the personal links, just examples i knew from the top of my head because i built them ;)

HTML Tips (2020) 5 years ago

great article!

just have one suggestion:

noopener is an actual security issue, the opener object is dangerous!

noreferrer is something we should do for the privacy of our users.

nofollow is for us developers to avoid our properties being connected to other properties (links are not endorsements)

maybe think about expanding that section of the docs :)

actually, rel="noopener noreferrer nofollow" should be the standard and opt-outed from. imho, rel="opener referrer follow" would have been the right thing to do.

During the second world war, Austria was called "Ostmark", not österreich.

And yes, "we do not talk about that" since the war ended, the Myth that we were the "First Victim of the Nazis" still perpetuates, at least in the Generation of my Grandmother (who is 94).

The only austrian resistance when the nazis entered in 1938 was a Group of International Brigades that had returned from the spanish Civil War and they all got slaughtered. You likely will not find that in a lot of history books either, somehow the ~80.000 international Volunteers of the Civil War in Spain are rarely mentioned anywhere.

No Pasaran!

I've seen things you people wouldn't believe. Blue trout eating Algae off the floor of the Ocean. I watched Seabass glitter in the moonlight near the Tannhäuser Gate. All those moments will be lost in time, like tears in rain. Time to fly.

before others try: it won't run using wine (at least on lubuntu with wine 4.2)

first i was like: oh, another person that understands why this does not happen and laments the state of things.

then i scrolled down.

this tool sounds awesome.

i am a programmer that learned inkscape and edits the curves by hand afterwards, because designers can not be bothered, but animations are a tough problem for me to solve.

i am almost tempted to install a windows vm just to test this, which is a huge compliment!

"let's just leave this ugly hack here for tonight and get some logs about the restarts, then delete it tomorrow..."

"oh, we forgot the print. lets retry tonight."

"darn, did not happen. lets leave this part in our infra for now until we trigger the edgecase again."

5 weeks (or days...) later: "damn, why did we do that again? better not touch it"

i love it when i find myself cargo culting code like that and finally have the time (and courage) to remove it :)

https://repl.it/repls/SilverCarelessWearable

  error: attempt to divide by zero
   --> main.rs:2:16
    |
  2 |   let result = 1 / 0;
    |                ^^^^^
    |
    = note: #[deny(const_err)] on by default

  error: this expression will panic at runtime
   --> main.rs:2:16
    |
  2 |   let result = 1 / 0;
    |                ^^^^^ attempt to divide by zero

  error: aborting due to 2 previous errors
very simple example though, no idea what happens when that value comes via socket or file, guess that would panic! then.

when i try to explain complicated topics to people not familiar with them, i try to simplify instead of going into detail.

one thing that worked nicely for me in the past when explaining domains: full domain name: actual internet address of a company, like a street address of a store. google.com is equal to streetname.number

if you know the number (eg tld) of the house, you just go there directly and enter the store.

if you do know the street (google), but do not know the number of the house (.com) you need to stop and ask someone for the way, and this is what google.com is for.

usually the big aha effect is that google.com is an address which leads you to a page that allows you to find other addresses.

going to google.cn (or whatever country you like) might help too, explaining how google has both .com and .cn and .nz and so on, all different "storefronts" of the same company, catering to different countries.

once that is understood, and if it was easily understood, maybe explain how the top bar (in most browsers) can be used for both searching for addresses and to input addresses directly, then set the default search engine to duckduckgo.

hope that helps :)