Hacker Newsnew | past | comments | ask | show | jobs | submit | 1f60c's favoriteslogin

First of all this the ground 0 for everything piracy (and more, generally free stuff) https://fmhy.net/

Here are the recommended film sites https://fmhy.net/video#torrent-sites

I generally download from https://rutracker.org/ (need an account to search not for downloading). They have pretty much everything that you can imagine (not just films) and in proper quality too (BD Remuxes etc). There will be no scene releases here because they add russian/ukrainian dubs and subs to almost all films but that's a small problem.

The other one is Heartive which lists torrents from the DHT network with Magnet links https://heartiveloves.pages.dev/ You just click on the torrent icon in the middle top of the selected film and all the available releases will be listed in plain text. The only downside that you need to be familiar with the release tags

Last but not least https://nyaa.si/ if you have a slight interest in anything japanese from manga to anime to much more


The Chemical Safety and Hazard Investigation Board has a great YouTube channel where they carefully analyze similar accidents.

https://www.youtube.com/@USCSB/videos

Not necessarily nuclear (since chemical and industrial accidents are much, muhc more likely), but highly recommended if you're interested in such incidents and their causes.


Interesting blog post from the creators with more details about the model: https://oasis-model.github.io

Interactive demo: https://oasis.decart.ai/


There are many YouTube channels walking through cities as the movement and sound add more to the atmosphere than street-view like experiences. I also happen to cover Prague many times like [1] in 2020 without many tourists.

One thing I started a few years is multicam walks. This means that I carry some 4-6 Osmo Pockets to actually film in several directions simultaneaously - example: Dresden [2].

The editing process is taking multiple hours so I have hundreds of unreleased recordings. If someone has a hint on AI assisted multicam editing, where to start (like better gaze prediction etc. from VR) I'd be interested - especially feeding all camera streams and let a NN decide the best camera angle and cuts to be between 4-11s?

[1] https://www.youtube.com/watch?v=J7HIfklyF9w

[2] https://www.youtube.com/watch?v=ulzq8sorvR4


1. whenever you see strncpy(), there's a bug in the code. Nobody remembers if the `n` includes the terminating 0 or nor. I implemented it, and I never remember. I always have to look it up. Don't trust your memory on it. Same goes for all the `n` string functions.

2. be aware of all the C string functions that do strlen. Only do strlen once. Then use memcmp, memcpy, memchr.

3. assign strlen result to a const variable.

4. for performance, use a temporary array on the stack rather than malloc. Have it fail over to malloc if it isn't long enough. You'd be amazed how this speeds things up. Use a shorter array length for debug builds, so your tests are sure to trip the fail over.

5. remove all hard-coded string length maximums

6. make sure size_t is used for all string lengths

7. disassemble the string handling code you're proud of after it compiles. You'll learn a lot about how to write better string code that way

8. I've found subtle errors in online documentation of the string functions. Never use them. Use the C Standard. Especially for the `n` string functions.

9. If you're doing 32 bit code and dealing with user input, be wary of length overflows.

10. check again to ensure your created string is 0 terminated

11. check again to ensure adding the terminating 0 does not overflow the buffer

12. don't forget to check for a NULL pointer

13. ensure all variables are initialized before using them

14. minimize the lifetime of each variable

15. do not recycle variables - give each temporary its own name. Try to make these temporaries const, refactor if that'll enable it to be const.

16. watch out for `char` being either signed or unsigned

17. I structure loops so the condition is <. Avoid using <=, as odds are high that'll will result in a fencepost error

That's all off the top of my head. Hope it's useful for you!



It's a nod to the Long Now Foundation

https://longnow.org/

and can be taken in many ways, either as a sign of a true believer or just to invoke a sense of the scale of time beyond the immediate.


This always comes up in discussions about APL, J, and K.

Have you ever tried reading Euclid's "The Elements"? It's all prose and appreciably less clear than the modern algebraic formulations. Of course, that's only because we're all already familiar with the algebra, but once you know both notations, the terse symbolic one is an obvious win on readability and clarity.

And it's just not that hard to learn some tens of symbols. In practice, languages like Rust and whatnot require you to learn orders of magnitude more words, which require you to learn new mental models to understand what the mnemonic names mean anyway. The "readability" is really just smoke and mirrors, IMHO.

Once you know APL or K, then clusters of "unreadable" symbols become immediately recognizable and, frankly, stupidly straightforward. And to top it off, instead of some opaque identifier, the "name" in APL is usually the entire implementation! That empowers you to make variations as needed, reason about performance, and observe meta-patterns between names. Those are higher-level cognitive tasks that the symbols make much more legible than is possible with "readable names" everywhere.

In our software development industry, the word "readability" is mostly just code for "familiarity to me".


Next time you find yourself reverse engineering a weird protocol - use ImHex. You can literally define patterns (in a C++ / Rust -like language) so that your binary file gets highlighted and processed.

I can't recommend it enough - it's perfect for the job and it's free and Open Source.

https://imhex.werwolv.net/


I love Pico and wanted to point out there's very active development for a soon to be released v2: https://v2.picocss.com/

I haven't read that one yet, but "Algorithms + Data Structures = Programs" is just an absolutely beautiful gem of a book. It embodies his principles of simplicity and clarity. Even though it's outdated in many places, I adored reading it.

Algorithms?

- Algorithm Design Manual (3rd ed.) (by Skiena)

- Art of Computer Programming vols 1, 2, 3, 4A, 4B (editions 3,3,2,1,1) (collectively, "TAOCP") (by Knuth)

- Algorithms (by Erickson) [CC-BY-4.0]

- Algorithms (by Sedgewick & Wayne)

- Introduction to Algorithms (4th ed.) ("CLRS") (by Cormen et al.)

- How to Design Programs (by Felleisen et al.) - crossover between basic programming advice, functional programming, and some limited/basic algorithms coverage [CC-BY-NC-ND-4.0]

- Pearls of Functional Algorithm Design (by Bird)

- Purely Functional Data Structures (by Okasaki)

Publishers? Pragmatic Bookshelf, or O'Reilly (not oreilly.com-selling-Packt). Find what everyone is using as a learning/reference resource for a specific topic and use that, regardless of publisher; it's rarely if ever Packt.


This seems super subjective, while being written as if it's not.

I find this way WAY harder to read/scan, and very much prefer Google's standard: https://google.github.io/eng-practices/review/developer/cl-d...


I discovered Cog a couple of years ago and I use it on dozens of my own projects now. It's a really neat thing to have around.

One trick I use a lot is including the output of the "--help" command in the README files for CLI tools that I release.

Here's an example: https://github.com/simonw/ospeak/blob/main/README.md#ospeak-...

View source on that file and you'll see this:

    ## ospeak --help

    <!-- [[[cog
    import cog
    from ospeak import cli
    from click.testing import CliRunner
    runner = CliRunner()
    result = runner.invoke(cli.cli, ["--help"])
    help = result.output.replace("Usage: cli", "Usage: ospeak")
    cog.out(
        "```\n{}\n```".format(help)
    )
    ]]] -->
    ```
    Usage: ospeak [OPTIONS] [TEXT]

      CLI tool for running text through OpenAI Text to speech

      Set the OPENAI_API_KEY environment variable to your OpenAI API key to avoid
      using the --token option every time.

      Example usage:

          ospeak "Everyone deserves a pelican" --voice alloy -x 1.5

    Options:
      --version                       Show the version and exit.
      -v, --voice [alloy|echo|fable|onyx|nova|shimmer|all]
                                      Voice to use
      -o, --output FILE               Save audio to this file on disk
      -x, --speed FLOAT RANGE         Speed of the voice  [0.25<=x<=4.0]
      -s, --speak                     Speak the text even when saving to a file
      --token TEXT                    OpenAI API key
      --help                          Show this message and exit.

    ```
    <!-- [[[end]]] -->
I can now run "cog -r README.md" any time I want to update that block of text in the README.

I also have this line in my GitHub Actions test.yml workflow: https://github.com/simonw/ospeak/blob/73a449d3f006737e72e7a0...

    cog --check README.md
That way my tests will fail if I make a change to the help and forget to update the README.

I like reflecting my help output in my documentation mainly because it's a useful way to review if the help makes sense without having to actually run the command.

I maintain these much larger pages using Cog in a similar way:

- https://docs.datasette.io/en/stable/cli-reference.html

- https://sqlite-utils.datasette.io/en/stable/cli-reference.ht...

- https://llm.datasette.io/en/stable/help.html

I wrote a bit more about this pattern here: https://til.simonwillison.net/python/cog-to-update-help-in-r...


The word "training" implies creating a new model by fine-tuning an existing model on top of new documents.

As several other comments in this thread have already indicated: this is almost always the wrong direction. Which is confusing because it's the direction everyone always assumes they should go in at first.

The approaches that does work is surprisingly simple: take the user's question, search for snippets of your documents that appear to be about that question, then paste all of those snippets into the prompt along with the user's question and see what answer you get.

This is known as RAG: Retrieval Augmented Generation. It's a very powerful approach.


This has just been my experience with RSI (now recovered), so please take it with a grain of salt.

I used to have debilitating RSI when typing. I tried everything and it just got worse over time. Stretches. Typing a certain way. Taking breaks etc. My wrist would become locked after 10 minutes of typing and stay that way for the rest of the day.

I then read a book claiming that all pain is just based on expectation, so if you think it'll be painful it'll be painful, and get worse overtime as the expectation reinforces.

Quite literally within the space of 5 minutes, it all went away. All gone. That was around 8 years ago and I've not had it since. Doesn't matter how long I type, in what position etc. Doesn't affect me at all.

As per Acceptance and Commitment therapy (not the book, something I discovered much later) this can be defined as "the solution is the problem". When you focus on the solution, it defines itself as the problem and it simply becomes worse (think for example, someone who's overweight so eats to make themselves feel better, thereby becoming more overweight and the cycle repeating itself etc.)

Interestingly, the only time my wrist gets sore is when I get really stressed. So I think there's some merit to it being a response from the brain.

I think a large part of it has to do with the eastern idea of letting go. The basic idea is that suffering is a result of holding on too tightly, as opposed to observing intently. Once you observe, the suffering goes away.


You can find those and more here: https://open.umn.edu/opentextbooks/

I'm still looking for the sources. I would like to compile them to epub format


I love the "we can do better" attitude through the post. Imagine if all developers had this mindset!

Of course if we all did, then nothing would ever get done because we could always do better. Sometimes you need someone to say "this is good enough".


"A life well lived is a series of personal obsessions shared without expectation of an audience."

Source - https://news.ycombinator.com/item?id=34034857


As per PG: “It turns out almost any word or word pair that is not an obviously bad name is a sufficiently good one, and the number of such domains is so large that you can find plenty that are cheap or even untaken. So make a list and try to buy some. That's what Stripe did. (Their search also turned up parse.com, which their friends at Parse took.)”

This is neat!

One note: for loopback on macOS, instead of iShowU Audio Capture Device, one could also use BlackHole, which is open source: https://github.com/ExistentialAudio/BlackHole

And can be installed with brew:

    brew install blackhole-2ch

Having finished a CS undergrad and followed the OSSU curriculum for some years I can confidently recommend https://teachyourselfcs.com/ instead. The courses chosen are more focused on capital-C capital-S Computer Science, and the resources are better suited for self-paced self-direction. One should start with https://teachyourselfcs.com/ and refer to OSSU if they find the former lacking in some measure.

Self-teaching computer science is a long and winding road. OSSU seems to favor a completionist approach that most people would do well to avoid. Grok on the fundamentals and quickly specialize, because life is too short to learn computer science in an encyclopedic way.


- Ziglings is great - https://github.com/ratfactor/ziglings

- zig.news has some good posts https://zig.news/

- Zig's language docs: https://ziglang.org/documentation/master/

- Zig's standard library code https://github.com/ziglang/zig/


ive been making general notes on How To Name Things (from companies to variables) here since its one of the well known hard problems - offering it up for others

https://www.swyx.io/how-to-name-things

this piece would be a new category for me - how to name products, given a big brand that covers multiple products


I like this topic, so here are some more "bit hacks" links, from my collection:

  * http://aggregate.org/MAGIC/
  * http://graphics.stanford.edu/~seander/bithacks.html
  * https://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer/109025#109025
  * https://github.com/bloomberg/bde/blob/main/groups/bdl/bdlb/bdlb_bitutil.h

> but I want the ability to hear what the enemy says.

Read propaganda written for internal consumption then. I find it much more illuminating. Maybe through Google Translate, I think it's quite decent at ru → en translation these days.

Some of the main outlets off the top of my head:

https://interfax.ru

https://tass.ru

https://regnum.ru

https://pravda.ru

https://kommersant.ru

https://gazeta.ru

https://iz.ru

https://ria.ru

https://lenta.ru

https://rbc.ru

Or through an aggregator:

https://yandex.ru/news/


It's really not at all.

https://github.com/magic-wormhole/magic-wormhole - get things from one computer to another, safely

https://github.com/schollz/croc - Easily and securely send things from one computer to another

https://upload.disroot.org/ - 2GB per file, end to end encrypted, source: https://github.com/ldidry/lufi, other instances: https://alt.framasoft.org/framadrop/

https://datash.co/ - end to end encrypted, made for transfer between two devices

https://send.tresorit.com/ - 5GB per file, end to end encrypted

https://github.com/kern/filepizza - WebRTC + STUN/TURN file transfer between multiple devices

https://instant.io/ - WebTorrent transfers between browsers

https://wormhole.app/ - share files with end to end encryption and a link that expires, or keeps working after closing browser

https://toffeeshare.com/ - p2p, end to end encrypted

https://wetransfer.com/ - emails link to recipient of file

https://docsend.com/ - can protect files with email/pass verification. can revoke access or eSign documents

and many, many more. these are just the ones I've seen that are geared towards direct transfer between two computers, but there's hundreds more sites that offer free file storage, even without an account or any personal info needed.


Long ago, I used to have my favorite pirate sites bookmarked and sometimes the IPs saved. Now, Yandex, is the great piracy search engine. Just type in what you want, and in what format you want it in, and it'll usually show up within the first 10 results. For example:

https://yandex.com/search/?msid=1661717771857485-52510224241...


You can find them here: https://news.ycombinator.com/threads?id=TerryADavis

(small warning: he was very rasist, but because of his illness it is hard to tell if he could do something about this)


Hah, you might like my project https://forlater.email. :)

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

Search: