HNHacker News
TopNewBestAskShowJobs

vanni

1,721 karma · joined April 28, 2010

SW Eng, Italian living in Italy.

CTO @ Jet HR. Formerly CTO @ Fiscozen.

Started coding at 5 on a VIC-20.

#remote #linux #python #django #vue #aws

https://www.linkedin.com/in/ingtotaro

submissionscomments
vanni··on Picol: A Tcl interpreter in 500 lines of code
https://github.com/msteveb/jimtcl/blob/master/README#L144
vanni··on The latest Firefox version broke ChatGPT website
https://bugzilla.mozilla.org/show_bug.cgi?id=2010712

https://github.com/webcompat/web-bugs/issues/201270

vanni··on Vite+ – Unified toolchain for the web
Relevant:

Vite: The Documentary https://www.youtube.com/watch?v=bmWQqAKLgT4

vanni··on Mozilla's new Firefox Linux package for Ubuntu and Debian derivatives
It's documented: https://support.mozilla.org/en-US/kb/install-firefox-linux#w...
vanni··on Largest island in a lake on an island in a lake on an island (2007)
https://www.britannica.com/story/is-australia-an-island
vanni··on Ask HN: Do you read articles on HN before reading/writing comments?
https://addons.mozilla.org/en-US/android/addon/ublock-origin...
vanni··on Svelte took #1 spot in State of JavaScript 2020 survey
My main concerns as a "technology buyer" are (from what I found online with a rapid search): lack of funding, currently only two main committers (the original author not among them), project apparently in bugfixing-only mode, and the original author online attitude.
vanni··on Svelte took #1 spot in State of JavaScript 2020 survey
Some food for thought (found during a quick evaluation of Svelte for future projects)

Contributors

https://github.com/sveltejs/svelte/graphs/contributors

See main three graphs.

Roadmap

https://github.com/sveltejs/svelte/issues/622

> (last comment - Jun 28, 2020) This isn't really an up to date of view on where we are and where we would like to go. We have some tentative plans to improve how we communicate the 'roadmap' in the future. We'll update when we know more.

https://github.com/sveltejs/svelte/issues/3704

> Honestly the roadmap for the near future is the same as it's been since Svelte suddenly got much more popular without a corresponding increase in maintainer resources: fixing bugs. Developing exciting new features is going to take a back seat to dealing with the huge backlog of issues for the time being.

From original Svelte author:

https://twitter.com/Rich_Harris/status/1341076126475710465

> [...] if you do this on a github repo i'm involved with because you're dissatisfied with the help that was given freely and patiently by other contributors, i will make a mental note of who you are so i can ensure you never get my help, ever

https://twitter.com/Rich_Harris/status/1341167074018795526

> [...] believe it or not I don't spend my time waiting around to be summoned by people expecting me to do free work for them

vanni··on Ditherpunk: The article I wish I had about monochrome image dithering
Probably dynamic contrast ratio by graphic driver and/or monitor that is tricked/triggered by unusual dithered patterns during scrolling.
vanni··on Olbers' Paradox
Right. Sabine Hossenfelder about it: https://www.youtube.com/watch?v=ZYM6HMLgIKA&t=395s
vanni··on Ask HN: Losing all interest in programming, what now?
Relevant: https://twitter.com/danoot/status/1334967635318956034
vanni··on Parse, don’t type-check
OK, mystery solved. In Python:

  1 in [1,2,3] is True
is evaluated as

  (1 in [1, 2, 3]) and ([1, 2, 3] is True)
similarly to

  1 < 2 < 3
:facepalm:
vanni··on Parse, don’t type-check
The disassembly in parent comment is made with CPython 3.6.9, but nothing substantial changes on CPython 3.8.x/3.9.x or PyPy.

Maybe it is related to grammar, and not to compiler...

AST dump in CPython 3.6.9 (manually formatted):

  In [1]: import ast
  
  In [2]: print(ast.dump(ast.parse("""\
     ...: def a():
     ...:     return (1 in [1,2,3] is True)""")))
  
  Module(
      body=[
          FunctionDef(
              name='a',
              args=arguments(args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]),
              body=[
                  Return(
                      value=Compare(
                          left=Num(n=1),
                          ops=[In(), Is()],
                          comparators=[
                              List(elts=[Num(n=1), Num(n=2), Num(n=3)], ctx=Load()),
                              NameConstant(value=True)
                          ]
                      )
                  )
              ],
              decorator_list=[],
              returns=None
          )
      ]
  )
  
  In [3]: print(ast.dump(ast.parse("""\
     ...: def b():
     ...:     return ((1 in [1,2,3]) is True)""")))
  
  Module(
      body=[
          FunctionDef(
              name='b',
              args=arguments(args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]),
              body=[
                  Return(
                      value=Compare(
                          left=Compare(
                              left=Num(n=1),
                              ops=[In()],
                              comparators=[List(elts=[Num(n=1), Num(n=2), Num(n=3)], ctx=Load())]
                          ),
                          ops=[Is()],
                          comparators=[NameConstant(value=True)]
                      )
                  )
              ],
              decorator_list=[],
              returns=None
          )
      ]
  )
vanni··on Parse, don’t type-check
It's not a matter of operator precedence for two reasons:

1) "in" and "is" have same precedence, and group left to right (see https://docs.python.org/3/reference/expressions.html#operato...)

2) you'll have runtime error:

  In [1]: def c():
     ...:     return (1 in ([1,2,3] is True))
  
  In [2]: c()
  ...  
  TypeError: argument of type 'bool' is not iterable
It seems related to CPython bytecode compiler implementation, the two functions are parsed in a different way, parentheses make the compiler go on a different path... but I'd like to understand why, without diving into CPython source code :) Anyone?
vanni··on Parse, don’t type-check
"pretty unintuitive" is an understatement...

  In [1]: import dis
  
  In [2]: def a():
     ...:     return (1 in [1,2,3] is True)
  
  In [3]: def b():
      ..:     return ((1 in [1,2,3]) is True)
  
  In [4]: a()
  Out[4]: False
  
  In [5]: b()
  Out[5]: True
  
  In [6]: dis.dis(a)
    2           0 LOAD_CONST               1 (1)
                2 LOAD_CONST               1 (1)
                4 LOAD_CONST               2 (2)
                6 LOAD_CONST               3 (3)
                8 BUILD_LIST               3
               10 DUP_TOP
               12 ROT_THREE
               14 COMPARE_OP               6 (in)
               16 JUMP_IF_FALSE_OR_POP    24
               18 LOAD_CONST               4 (True)
               20 COMPARE_OP               8 (is)
               22 RETURN_VALUE
          >>   24 ROT_TWO
               26 POP_TOP
               28 RETURN_VALUE
  
  In [7]: dis.dis(b)
    2           0 LOAD_CONST               1 (1)
                2 LOAD_CONST               5 ((1, 2, 3))
                4 COMPARE_OP               6 (in)
                6 LOAD_CONST               4 (True)
                8 COMPARE_OP               8 (is)
               10 RETURN_VALUE
Why?!
vanni··on Oblique Strategies
Somewhat relevant:

https://intuiti.it/

A tool for Creativity born in the Polytechnic University of Milan. A synthesis of Design, Tarot and Gestalt Psychology.

vanni··on Building GUIs with DearPyGui
From the "Integration with Other Frameworks" section of the article [1]:

> DearPyGui can actually be used in conjuction with other GUI frameworks. For example, with tkinter:

> This just requires replacing start_dearpygui with setup_dearpygui, render_dearpygui_frame, and cleanup_dearpygui in order to expose the event loop.

[1] https://itnext.io/python-guis-with-dearpygui-137f4a3360f2#2a...

vanni··on 0.30000000000000004
This is called fixed-point arithmetic:

https://en.wikipedia.org/wiki/Fixed-point_arithmetic

> In computing, a fixed-point number representation is a real data type for a number that has a fixed number of digits after (and sometimes also before) the radix point.

> A value of a fixed-point data type is essentially an integer that is scaled by an implicit specific factor determined by the type.

vanni··on Ask HN: What's the most valuable thing you can learn in an hour?
How to Solve a Rubik's Cube:

https://www.wired.com/story/how-to-solve-a-rubiks-cube-step-...

vanni··on Ask HN: Successful one-person online businesses?
Related:

Ask HN: One-person SaaS apps that are profitable? https://news.ycombinator.com/item?id=19701783 752 points - 6 months ago

vanni··on Really Fixing Getrandom()
Somewhat relevant: CPU Time Jitter Based Non-Physical True Random Number Generator by Stephan Müller

http://www.chronox.de/jent/doc/CPU-Jitter-NPTRNG.html#toc-Ap...

https://pdfs.semanticscholar.org/af73/17c970fd416646b2e46659...

vanni··on [dead]
> Only six months after we had launched Stack Overflow, my co-founder Jeff Atwood and I were invited to speak at a Microsoft conference for developers in Las Vegas. We were there, I think, to demonstrate that you could use their latest ASP.NET MVC technology on a real website without too much of a disaster. (In fact .NET has been a huge, unmitigated success for us, but you kids go ahead and have fun with whatever platform you want mkay? They’re all great, or, at least, above-average).

A bit too much condescending?

vanni··on A random dungeon generator that fits on a business card
dog https://twitter.com/munificentbob/status/1101903466111283200
vanni··on Domain hacks with unusual Unicode characters
An IP is just an unsigned 32 bit integer:

3520653040 = 209 * 256^3 + 216 * 256^2 + 230 * 256^1 + 240 * 256^0

The 209.216.230.240 representation is the sequence of octets (256 = 2^8) from MSB to LSB expressed as decimal values.

vanni··on Slack outage: Connectivity issues affecting all workspaces
Slack and Chromecast having an almost simultaneous worlwide outage... have they something in common? Same enemies?

https://twitter.com/search?f=tweets&q=chromecast%20slack

https://techcrunch.com/2018/06/27/google-home-and-chromecast...

vanni··on What Astronomers Are Learning from Gaia’s New Milky Way Map
https://en.wikipedia.org/wiki/Gaia_(spacecraft)
vanni··on Flow chart of cognitive biases
COGNITIVE BIAS CODEX + definitions (9MB):

https://upload.wikimedia.org/wikipedia/commons/c/ce/Cognitiv...

vanni··on Detecting integer constant expressions in macros
In my opinion it's clearly a compliment.
vanni··on In defence of swap: common misconceptions
You can use Alt+SysRq+f to manually call oom_kill.
vanni··on Mozilla Awards Over Half a Million to Open Source Projects
https://www.djangoproject.com/weblog/2015/dec/11/django-awar...

https://blog.mozilla.org/blog/2015/12/10/mozilla-open-source...

Page 1 of 7Next →