2022.08.29 - Typescript is terrible for library developers
Ping Xia
Title: 2022.08.29 - Typescript is terrible for library developers
This Week’s Highlights
Typescript is terrible for library developers https://erock.prose.sh/typescript-terrible-for-library-developers https://mp.weixin.qq.com/s/lWWj_xZV8IeIw8E3ForFaA
I love TypeScript as an end‑developer. However, as a library developer, I hate TypeScript. There are many reasons why TypeScript sucks for library developers, but in the end it reduces developer productivity. In effect, we are shifting complexity from end‑developers to library developers. This places a huge burden on us to be experts in how TypeScript works. Related: Announcing TypeScript 4.8
The Future of NGINX: Getting Back to Our Open Source Roots https://www.nginx.com/blog/future-of-nginx-getting-back-to-our-open-source-roots/
Each year at NGINX Sprint, our virtual user conference, we make new commitments for the coming year. This year is no different. Our promises for the next twelve months can be captured in three words: modernize, optimize, and extend. We intend to make sure these are not just business buzzwords; we have substantial programs for each one and we want you to hold us to our promises.
Contributing to open source – taking the dive https://blog.scottlogic.com/2022/08/26/contributing-to-open-source-taking-the-dive.html
Working on open‑source projects can be a great learning experience for any developer looking to expand their skills. It’s also a good way for newcomers to gain demonstrable, practical skills that could help them land their first developer job. However, getting started can be daunting. As a self‑taught developer, despite having toyed with the idea when I first started learning, I never quite found the courage to dive in – being somewhat afraid of exposing my inexperience. In hindsight, it feels like a missed opportunity given that it could have provided me with some of the hands‑on experience that I was lacking at the time. Related: Open source and accidental innovation , 3 ways every company can get started with an open‑source software strategy , Time Till Open Source Alternative .
Using :has() as a CSS Parent Selector and much more https://webkit.org/blog/13096/css-has-pseudo-class/ https://www.zhangxinxu.com/wordpress/2022/08/css-has-pseudo-class/
The WebKit team shipped :has() in Safari Technology Preview 137 in December 2021, and in Safari 15.4 on March 14, 2022. Igalia did the engineering work to implement :has() in Chromium, which will ship in Chrome 105 on August 30, 2022. Presumably the other browsers built on Chromium won’t be far behind. Mozilla is currently working on the Firefox implementation.
Tauri VS. Electron – Real‑world application https://www.levminer.com/blog/tauri-vs-electron
In this article I’m going to compare Electron and Tauri using a real‑world app: Authme. Authme is a simple cross‑platform two‑factor authenticator app for desktop. It’s not a big app and not very complex, perfect for a quick comparison. You can take a look at the source code of the Electron app on GitHub and the Tauri app is also on GitHub. My goal is that the Tauri app eventually replaces the Electron one.
Deep Reads
Meet the top layer: a solution to z-index:10000 https://developer.chrome.com/blog/what-is-the-top-layer/
The top layer sits above its related document in the browser viewport, and each document has one associated top layer. This means that elements promoted to the top layer needn’t worry about z‑index or DOM hierarchy. They also get a neat ::backdrop pseudo‑element to play with. The Fullscreen API spec goes into more details as Fullscreen was a great example of the top layer in use before dialog support came along.
The minimum TypeScript you need for React https://ente.io/blog/tech/typescript-for-react/
But TypeScript also has a learning curve. For some of us, it’s a steep one. Everything is well documented, but there is a lot of the said documentation 😅. There are also cheat sheets, say for using TypeScript with React, but they assume a basic understanding of TypeScript. So what is missing (or at least I haven’t found) are quick recipes for the most common use cases we run into when trying to introduce TypeScript into an existing React app. Here goes.
Reading Code – GitHub Hotkey https://alexkondov.com/reading-code-github-hotkey/
A small library that allows you to trigger actions on an element when a sequence of keys is pressed. It works directly with the DOM, it’s small enough to be understood easily and it utilizes interesting data structures that you don’t see every day. This was it.
How to Build an Online Diagramming Tool: How Feakin Was Designed and Built https://zhuanlan.zhihu.com/p/558803698
In high school I read a few books on 3D graphics programming. After that, anything graphics‑related fell out of my interest range. Until recently, I rekindled a bit of curiosity: the architecture‑governance tool ArchGuard relies on “graph as code” to generate architecture diagrams for better governance. Earlier this year, the open‑source knowledge‑management tool Quake needed to support a “concept‑building system” concept, requiring management of many different diagram formats.
An Introduction to Constraint‑Based Design Systems https://www.colepeters.dev/posts/an-introduction-to-constraint-based-design-systems
A design system is, at its core, a unifying tool. Implemented effectively, design systems reconcile an organization’s intent with its artifacts, by creating cohesion between the makers of those artifacts — that is, the organization’s designers and engineers.
Spark: do you optimize the infrastructure? https://shvbsle.in/do-you-optimize-your-infra/
If your company is currently scaling up[1] then you might be very aware of how costly these experiments are. You probably lie in the pink‑colored valley. This is where you need to use large GPUs, Spark, BigTable, etc., to make sense of data. But at this stage you don’t have the luxury of leaving a 200‑node Spark cluster running over the weekend. You are on a strict budget and you are trying to survive as long as you can on that budget.
Key‑Range Partitions https://martinfowler.com/articles/patterns-of-distributed-systems/key-range-partitions.html
Partition data in sorted key ranges to efficiently handle range queries. Related: Fixed Partitions .
Inside the Pinecone https://www.pinecone.io/learn/inside-the-pinecone/
Last week we announced a major update. The incredible work that led to the launch and the reaction from our users — a combination of delight and curiosity — inspired me to write this post. This is a glimpse into the journey of building a database company up to this point, some of the internal debates and decisions we made along the way (both good and bad), and the ongoing innovation at the core of Pinecone that I find exciting.
Why do arrays start at 0? [https:
Originally written by Ping Xia (平侠) and published in Chinese on Web技术周刊 (Web Tech Weekly). Translated and adapted for DriftSeas with permission.
Sources & References
- [1]https://erock.prose.sh/typescript-terrible-for-library-developers
- [2]https://mp.weixin.qq.com/s/lWWj_xZV8IeIw8E3ForFaA
- [3]Announcing TypeScript 4.8
- [4]https://www.nginx.com/blog/future-of-nginx-getting-back-to-our-open-source-roots/
- [5]https://blog.scottlogic.com/2022/08/26/contributing-to-open-source-taking-the-dive.html
- [6]Open source and accidental innovation
- [7]3 ways every company can get started with an open‑source software strategy
- [8]Time Till Open Source Alternative
- [9]https://webkit.org/blog/13096/css-has-pseudo-class/
- [10]https://www.zhangxinxu.com/wordpress/2022/08/css-has-pseudo-class/
- [11]https://www.levminer.com/blog/tauri-vs-electron
- [12]https://developer.chrome.com/blog/what-is-the-top-layer/