wisdom
amh-code
Our great sponsors
wisdom | amh-code | |
---|---|---|
26 | 8 | |
567 | 551 | |
- | - | |
5.4 | 10.0 | |
8 months ago | over 1 year ago | |
Jupyter Notebook | ||
GNU General Public License v3.0 only | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
wisdom
-
Ask HN: Best stack for real time data intensive apps
If you want to output to a browser here is the guide to achieve the best possible performance according to the numbers:
https://github.com/prettydiff/wisdom/blob/master/performance...
Warning: every time I post this people claim to want superior performance but then whine when they realize they have to actually write code (as opposed to letting NPM or React or jQuery do 99% of everything).
-
Ask HN: What are the hidden performance tricks for JavaScript?
This was attempt to research the fastest possible approach to a JavaScript GUI in the browser.
https://github.com/prettydiff/wisdom/blob/master/performance...
The techniques mentioned are stupid fast to the fewest milliseconds, but most JavaScript developers find this incredibly unpopular.
-
Ask HN: How can I learn about performance optimization?
Measure everything and be extremely critical. Be ready to challenge common and popular held assumptions.
Here is something I wrote about extreme performance in JavaScript that is discarded by most programmers because most people that program JavaScript professionally cannot really program.
https://github.com/prettydiff/wisdom/blob/master/performance...
-
Ask HN: What are good patterns for holding state?
For simple state management here is what I do: https://github.com/prettydiff/wisdom/blob/master/state_manag...
Here is an application with an OS-like GUI making use of that concept: https://github.com/prettydiff/share-file-systems
-
IBM study: 40% of workers will have to reskill in the next three years due to AI
The challenge is in determining who is about to become obsolete and that is not clear. For example OOP remains the most popular and requested programming paradigm even though it has gradually slid into functional obsolescence more than a decade ago[1].
Even still legacy code will remain in use and talent to maintain legacy systems will remain in demand. My university still teaches COBOL because there still exists demand for people to maintain these legacy applications even if new applications are no longer written in that language.
[1] https://github.com/prettydiff/wisdom/blob/master/Object_Orie...
-
TypeScript Is Surprisingly OK for Compilers
That depends on how many changes it requires. If its just a matter of don't do these 3 things and your code suddenly becomes more predictable its like being slapped with a magic wand. Everybody wins. All you have to do to ensure 100% of your code compiles in a JIT is be predictable. Predictable code is, on its face, always less confusing.
> The performance benefits are likely to be minimal
This makes me cry, but not a cry of joy or ecstasy. People guessing about performance is perhaps the most frequent anti-pattern in all programming. Please read this document, you can skip to the end but it may not make much sense if you do. https://github.com/prettydiff/wisdom/blob/master/JavaScript_...
-
As a self learner which courses, books, tutorials have impacted you positively?
After talking about the biggest failures I have seen through my career in learning JavaScript I watched a YouTube video about an interview with a divorce attorney. It was interesting because the behaviors I heard expressed in that video exactly aligned with behaviors I see expressed in failures to learn after large commitments of time investment in programming. It inspired me to write this: https://github.com/prettydiff/wisdom/blob/master/JavaScript_...
The most important learning for me out of this is that people are predictable and how we commit is modeled by how perceptions of rewards are attained. It also inspired me to dive deeper into self learning about behavior and economics, because people do exceptionally irrational things to avoid perceived discomfort.
-
Why are many of the biggest web frameworks in dynamically typed langs?
> just want to know what makes a good web framework.
Personal opinion. A framework is an architecture in a box so that you, the developer, do not have to make as many decisions. Normally when developers are asking such questions they are seeking easiness: https://github.com/prettydiff/wisdom/blob/master/Easiness.md
-
Htmx
Software developers, especially DOM fearing front developers love using the word easy. It isn’t so much an infatuation but more like a fatal attraction obsession where obstruction means war on a very emotional level. Ironically, people are loathe to confront these feelings openly and thus cannot define the word easy with any kind of clear practical application.
So, I did the world a favor and wrote just such a definition: https://github.com/prettydiff/wisdom/blob/master/Easiness.md...
-
Building a Front End Framework; Reactivity, Composability with No Dependencies
Depends on the definition of simplicity. People say they want simple, but then really want easy. The most easy is always somebody doing the work for you. I got tired of hearing people mention easy when really they probably mean some combination of fearful and/or lazy, so I chose to define easiness:
https://github.com/prettydiff/wisdom/blob/master/Easiness.md
If developers really wanted simplicity or to be done with work faster they would just learn the primitives of their environment: DOM, functions, and events. Most of the frameworks have APIs that are huge, so clearly simplicity isn't what's wanted.
amh-code
-
Ask HN: Recommendations for high quality, free CS books online
I recently stumbled on https://en.algorithmica.org/hpc/ which I absolutely loved. It's really well written, comprehensible and concise. It felt like a pleasure to read which I find really rare with CS textbooks and I feel like I've come out of it understanding how computers work a bit better
Does anyone have any similar CS books they'd recommend? Ideally they'd be:
- Algorithms for Modern Hardware
-
Ask HN: How can I learn about performance optimization?
I admire Daniel Lemire’s work on SIMD implementations. [Lemire]
[Lemire] https://lemire.me/en/#publications
I learn a lot by reading my compiler’s and profiler’s documentation.
For Rust, the Rust Performance Book by Nicholas Nethercote et al. [Nethercote] seems like a nice place to start after reading the Cargo and rustc books.
[Nethercote] https://nnethercote.github.io/perf-book/
Algorithms for Modern Hardware by Sergey Slotin [Slotin] is a dense and approachable overview.
[Slotin] https://en.algorithmica.org/hpc/
Quantitative understanding of the underlying implementations and computer architecture has been invaluable for me. Computer architecture: a quantitative approach by John L. Hennessy and David A. Patterson [H&P] and Computer organization and design: the hardware/software interface by Patterson and Hennessy [P&H ARM, P&H RISC] are two introductory books I like the best. There are three editions of the second book: the ARM, MIPS and RISC-V editions.
[H&P] https://www.google.com/books/edition/_/cM8mDwAAQBAJ
- Algorithms for Modern Hardware – Algorithmica
-
Ask HN: Programming Courses for Experienced Coders?
Hello, recently I've enjoyed Casey Muratori's Performance-Aware Programming course[0]. You could read Algorithms for Modern Hardware[1] to learn similar set of stuff though. Casey's course is aimed at bringing beginners all the way to a nearly-industry-leading understanding of performance issues while the book assumes a bit more knowledge, but I think a lot of people have trouble getting into this stuff using a book if they don't have related experience.
I've also found Hacker's Delight Second Edition[2] to be a useful reference, and I really wish that I would get around to reading What Every Programmer Should Know About Memory[3] in full, because I end up reading a bunch of other things[4] to learn stuff that's surely in there.
[0]: https://www.computerenhance.com/p/welcome-to-the-performance...
[1]: https://en.algorithmica.org/hpc/
[2]: https://github.com/lancetw/ebook-1/blob/80eccb7f59bf102586ba...
[3]: https://people.freebsd.org/~lstewart/articles/cpumemory.pdf
[4]: https://danluu.com/3c-conflict/
-
SIMD Everywhere Optimization from ARM Neon to RISC-V Vector Extensions
https://en.algorithmica.org/hpc/ and http://0x80.pl/ have some stuff about this, but the latter can be dense. I've had fun getting my hands dirty with some problems at https://highload.fun/ but there's not much direction unless you go to the telegram chat and ask people questions.
-
Fastest Branchless Binary Search
Other fast binary searches https://github.com/sslotin/amh-code/tree/main/binsearch
What are some alternatives?
share-file-systems - Use a Windows/OSX like GUI in the browser to share files cross OS privately. No cloud, no server, no third party.
sb_lower_bound - Fastest Branchless Binary Search
dom-proxy - Develop lightweight and declarative UI with automatic dependecy tracking without boilerplate code, VDOM, nor compiler
branchless-binary-search - Binary search implementation that avoids branch instructions
caya - a tiny useful simple language experiment
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
zustand - 🐻 Bear necessities for state management in React
tigerbeetle - The distributed financial transactions database designed for mission critical safety and performance.
swc - Rust-based platform for the Web
ThinkingInSimd - An essay comparing performance implications of ignoring AVX acceleration
webcomponents - Web Components specifications
std-simd - std::experimental::simd for GCC [ISO/IEC TS 19570:2018]