Preferences

aewens
Joined 61 karma

  1. I think Raymond Hettinger is called out specially here because he did a well known talk called [Modern Dictionaries](https://youtu.be/p33CVV29OG8) where around 32:00 to 35:00 in he makes the quip about how younger developers think they need new data structures to handle new problems, but eventually just end up recreating / rediscovering solutions from the 1960s.

    “What has been is what will be, and what has been done is what will be done; there is nothing new under the sun.”

  2. You may be thinking of the `frozenset()` built in or the third party Python module [frozendict](https://pypi.org/project/frozendict/)?

    Personally, I’ve been using a wrapper around `collections.namedtuple` as an underlying data structure to create frozen dictionaries when I’ve needed something like that for a project.

  3. The way Git computes diffs is by more or less storing all the source code in the .git directory as objects. At first glance it looks like a bunch of hashes, but tools can pull out source code from the objects tracked within the .git directory. Not least of which, the remote URL points to their username on GitHub and the author for commits can give you their email.
  4. Lossy compression vs lossless compression is the difference of whether you can get a 1:1 copy of the original data if you compress and then decompress it.

    A simple example of this is if you have 4 bits of data and have a compression algorithm that turns it into 2 bits of data. If your dataset only contains 0000, 0011, 1100, and 1111; then this can technically be considered lossless compression because we can always reconstruct the exact original data (e.g. 0011 compresses to 01 and can decompress back to 0011, 1100 compresses to 10 and can decompress back to 1100, etc). However, if our dataset later included 1101 and got compressed to 10, this is now “lossy” because it would decompress to 1100, that last bit was “lost”.

    An LLM is lossy compression because it lacks the capacity to 1:1 replicate all its input data 100% of the time. It can get quite close in some cases, sure, but it is not perfect every time. So it is considered “lossy”.

  5. Probably since you can embed it in other languages quite trivially. For instance, in C after about a dozen lines of code you can now pass around data into Lua and back to C and thus give you access to a scripting language with little fuss. It’s also a fairly small and simple language, so adding it in won’t add much more to the overall footprint of the project.
  6. To play the devil's advocate:

    IANAL, but if I recall correctly part of having a trademark is having a legal obligation to enforce it, and if I'm reading the tweet correctly this is a name of a company and typically one cannot use a trademark in their company name.

  7. An analogy may help, imagine the website as a door. A website using HTTP is a normal door and using HTTPS is a door with a lock, where the keyring in this analogy are the trusted CAs by your browser. A website using HTTPS with an expired certificate is a door that should have a lock, but the lock no longer latches; and a self-signed certificate is a locked door with a key left in the doorknob.

    From a security perspective, a door without a lock has no expectation of protecting anything. But a door that should lock but doesn’t, or is supposed to be locked but has the key left in the latch is not providing the security expected, and should be given pause when anticipating security from the lock. This is what the browser is trying to translate with its UI.

  8. Skimming over the contents of the "About" page linked in the navigation at the top of the blog, it looks to answer most of your questions ;)

    https://glorifiedgluer.com/about

    The OP appears to be student and software engineer that is employed writing F# and Nix, and made the blog purely as an outlet to document the things they are interested in (and good on them that).

  9. No the parent, but I’m assuming they’re referring to the East of SIM spoofing to convince providers you’re another phone number that’s not your own.
  10. Those still exist today, check out the tildeverse and their family of niche shell boxes: https://tildeverse.org/
  11. > A field-programmable gate array (FPGA) is an integrated circuit designed to be configured by a customer or a designer after manufacturing – hence the term field-programmable.

    > FPGAs contain an array of programmable logic blocks, and a hierarchy of reconfigurable interconnects allowing blocks to be wired together. Logic blocks can be configured to perform complex combinational functions, or act as simple logic gates like AND and XOR. In most FPGAs, logic blocks also include memory elements, which may be simple flip-flops or more complete blocks of memory.[1] Many FPGAs can be reprogrammed to implement different logic functions, allowing flexible reconfigurable computing as performed in computer software.

    The above being from the FPGA Wikipedia page[0].

    So yes, it is done “in software”, but FPGAs is fancy hardware that can reprogrammed to act as new hardware on the fly using software. Many are implemented as PCI devices, so they could interact with the rest of the system over the PCI bus.

    [0] https://en.m.wikipedia.org/wiki/Field-programmable_gate_arra...

  12. If you enjoy public Unix systems, I’d highly advise taking a look at the Tildeverse community since they offer a wide array of them that all have their own niche.

    https://tildeverse.org

  13. For backend: Golang + SQLite + Nginx For frontend: Nuxt.js / Vue.js using the SSG option

    I meld the two using the JAMstack design in Nginx where the backend is exposed on /api path and the static site is hosted from the dist directory on the root path of the site. And while I use Go in production, I typically use Python for making proof of concepts or writing any quick glue scripts.

  14. I feel part of your dilemma is that you are defining the problem using two scenarios that will appear the same to you without previous experience with it.

    Allow me to explain. Let’s suppose you have been assigned to do the task X and we want to determine how you should feel about it. In your dilemma you ponder how to differentiate between something being outside of your skill set or merely being new and you may tell yourself you cannot do it. Both of these are just different ways to react to the same situation if you have not recently tested yourself against doing task X. Have you done it before and recently (since we need to account for change in skills over time) you can objectively know if it is within your skill set or not. Otherwise, this is an unknown and only after truly tackling it can you objectively know if you can or cannot do task X.

    Herein lies the role of anxiety, because in reality we cannot always try everything just to see what we can and cannot do because there are real world consequences to this that make it not worthwhile to test every aspect of your abilities. So when presented with a task, you have described two ways anxiety can filter out for you your comfort level: 1. Feeling anxiety because you have reason to believe it is outside your skill set based on previous experiences.

    2. Feeling anxiety because you have not attempted it before, so whether you can or cannot do it is an unknown (which is a hook Imposter Syndrome can use to get itself reeling).

    These are not the only ways of anxiety can have a role in this scenario, but it outlines where the anxiety can come from. For your question about a mental model, differentiating between the two could by asking yourself the question, “What about task X makes me feel anxious?” If part of task X includes some aspect you failed at before this falls closer to what you call “real” anxiety and if it is just the fear of the unknown it is closer to what you are calling “fake” anxiety (to be clear, as like others commenting here I do not agree with these terms as all anxiety is a real emotion you are feeling). However, in the case of the latter it being an unknown still means it may or may not be outside your skill set, so as mentioned above you cannot objectively know this until after trying it. Short of this, that is where your judgement skills and honesty towards yourself would play a factor in how comfortable you feel on taking on task X given unknowns. Edit: formatting

  15. Works fine for me, using Firefox v85.0.2 on macOS 11.2.1.
  16. Are there any performance metrics for this against using something like Electron instead?
  17. How would we go about proving that a news source claiming to be those things are actually real, truly unbiased, truth seeking, and fact checking?
  18. We do, but the problem is cost. It’s one of those “of these three attributes, pick two” between healthy, delicious, and cheap.
  19. Mine is the #meta and #team channels on tilde.chat, the tildeverse definitely makes for a fun little community to talk with.

This user hasn’t submitted anything.

Keyboard Shortcuts

Story Lists

j
Next story
k
Previous story
Shift+j
Last story
Shift+k
First story
o Enter
Go to story URL
c
Go to comments
u
Go to author

Navigation

Shift+t
Go to top stories
Shift+n
Go to new stories
Shift+b
Go to best stories
Shift+a
Go to Ask HN
Shift+s
Go to Show HN

Miscellaneous

?
Show this modal