Sot GameTorch
GitHub - spiside/pdb-tutorial: A simple tutorial about effectively using pdb
A simple tutorial about effectively using pdb. Contribute to spiside/pdb-tutorial development by creating an account on GitHub.
Books | mathspp
Books I have written about Python and other topics.
Array languages for Clojurians
As a lisp, Clojure of course qualifies as one such mind-altering substance. (It arguably qualifies again on the basis of its focus on immutability.) But Blazeski’s article points out that array-based languages such as J, its predecessor APL ("A Programming Language"), and the proprietary q are equally mind-expanding. Let’s see what was – and remains – so compelling about the array programming approach to problems, and compare it to Clojure’s approach.
One operator to do both is pretty handy. We can of course replicate each with out-of-the-box Clojure:
(map (partial + 2) [2 3 4]) ; => (4 5 6)
(map + [2 3 4] [1 2 3]) ; => (3 5 7)
What Web Framework Should I Use in Clojure?
In this guide, I describe the available Clojure web framework options and give my recommendations.
Why we need Ladybird with Andreas Kling & Chris Wanstrath (Changelog Interviews #604)
Andreas Kling and Chris Wanstrath have joined forces to form a non-profit called Ladybird Browser Initiative to manage the newly forked Ladybird browser. We discuss what it's going to take to get to alpha, the why behind Ladybird, avoiding incentives other than those of the users, their plans for incremental adoption
There’s this guy named Sean Baxter, who has his own C++ compiler called Circle, and he has adapted the memory safety model of Rust to C++, and then built a compiler that shows that you can actually do this. And he recently spoke to the C++ Standards Committee, showing them “Look, you say that this is impossible, but I did it. Can we talk about making C++ safe now?” And they seemed interested, but it’s the C++ Standards Committee, so even if they’re ultra-interested, this might get into a standard in eight years, or something.
We’ve talked about it. I mean, I’ve done a ton of programming languages as hobbies… I did the Crafting Interpreters book, and building an interpreter in Go, building a compiler in Go… I did the MAL, M-A-L project on GitHub, Make a Lisp, where they just give you tests, and they give you the Lisp file, and you implement the Lisp in your own language and get them to pass… I did the From Nand to Tetris course that’s available online. That was the thing I put a lot of time into. And I’ve made just tons of programming languages that are like 40% to 20% complete. [laughs]
Grokking Hash Array Mapped Tries (HAMTs) - by Nick M
A simple and intuitive explanation of what Hash Array Mapped Tries are and where they're used.
HAMTs are frequently used in functional programming languages, such as Clojure and Scala in order to implement persistent data structures like maps and sets. HAMTs provide efficient lookup, insertion, and deletion operations while ensuring immutability. They’re also well-suited for concurrent environments where multiple threads or processes access and modify shared data structures simultaneously. Their structural sharing property allows for efficient copying and sharing of data, reducing the need for expensive locking mechanisms.
WIP is waste
A manifesto on work, waste, cost and value.
Work in progress has zero value. Ship!
- Before a task is shipped it provides zero value.
- Any work in progress is pure cost.
- Two tasks in progress adds cost, for no value.
- Only after shipping do you create value. Always ship.
- One task shipped is infinitely better than 4 tasks “almost done”.
- Ship something of value first. Then begin something new.
GitHub - extrawurst/gitui: Blazing 💥 fast terminal-ui for git written in rust 🦀
Blazing 💥 fast terminal-ui for git written in rust 🦀 - extrawurst/gitui
What Is Negative Engineering? | Future
Negative engineering is the time-consuming and sometimes frustrating work that engineers do to ensure small bugs don't take down systems.
There were no warnings or red lights, because the process simply hadn’t run in the first place. And so a new, time-consuming activity was added to the data analytics stack: manually checking the database each morning to make sure everything had functioned properly.
Negative engineering is “insurance as code”
Negative engineering is the time-consuming and sometimes frustrating work that engineers undertake to ensure the success of their primary objectives.
Creative Coding: Generative Art, Data visualization, Interaction Design, Resources | terkelg
Creative Coding: Generative Art, Data visualization, Interaction Design, Resources. - GitHub - terkelg/awesome-creative-coding: Creative Coding: Generative Art, Data visualization, Interaction Design, Resources.
GitHub - abi/screenshot-to-code: Drop in a screenshot and convert it to clean code (HTML/Tailwind/React/Vue)
Drop in a screenshot and convert it to clean code (HTML/Tailwind/React/Vue) - GitHub - abi/screenshot-to-code: Drop in a screenshot and convert it to clean code (HTML/Tailwind/React/Vue)
The Python Tutorial — Python 3.12.1 documentation
Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python’s elegant syntax an...
How Marketing Changed OOP In JavaScript — Smashing Magazine
Discussing the decisions surrounding JavaScript prototypes, the article by Juan Diego Rodriguez scrutinizes their origin, examines missteps in the design, and explores how these factors have affected the way we write JavaScript today.
There is no difference, and JavaScript will execute the same code, but the latter example is honest about what JavaScript is doing under the hood, while the former hides it behind syntactic sugar.
Do I have a problem with the classical approach? Yes and no. An argument can be made that the classical syntax improves readability by having all the code related to the class inside a block scope. On the other hand, it’s misleading and has led thousands of developers to believe that JavaScript has true classes when a class in JavaScript is no different from any other function object.
What Removing Object Properties Tells Us About JavaScript — Smashing Magazine
Removing properties from an object in JavaScript might not be the most exciting job, but there are many ways to achieve it, each revealing a fundamental aspect of how JavaScript works. Juan Diego Rodríguez explores each technique in this article.
- Contestant A: “I set c to undefined.”
- Contestant B: “I used the delete operator.”
- Contestant C: “I deleted the property through a Proxy object.”
- Contestant D: “I avoided mutation by using object destructuring.”
- Contestant E: “I used JSON.stringify and JSON.parse.”
- Contestant F: “We rely on Lodash at my company.”
Music for Programming
A series of mixes intended for listening while ${task} to focus the brain and inspire the mind.
Download Free Essential eBooks for Unicorn Designers - Lapa.Ninja
Download Free Essential eBooks for Unicorn Designers - Lapa.Ninja
Introduction - From Perl to Rust
Many introductions to Rust already exist. Most of them are aimed at C++ programmers. That makes sense, but lots of folks are coming to Rust from other languages now.
My current1 day job is mostly Perl. It occurred to me that an introduction to Rust aimed at people who already know Perl could be useful.