2023 Reading list (updated as we go)

everything cli https://www.commandlinefu.com/commands/browse

Amazon Is Making a New Web Browser ? https://gizmodo.com/amazon-prime-new-web-browser-survey-1850224922?utm_source=tldrnewsletter

Interview with OpenAI’s Greg Brockman: GPT-4 isn’t perfect, but neither are you https://techcrunch.com/2023/03/15/interview-with-openais-greg-brockman-gpt-4-isnt-perfect-but-neither-are-you/?utm_source=tldrnewsletter&guccounter=1

On jpeg-XL https://cloudfour.com/thinks/on-container-queries-responsive-images-and-jpeg-xl/#jpeg-xl-the-holy-grail-image-format
https://cloudinary.com/blog/the-case-for-jpeg-xl

On crypto and thieves :
“In February 2022, a hacker stole 120,000 wrapped Ethereum from Wormhole, a cross-blockchain bridge” https://newsletter.mollywhite.net/p/oasis-defi-centralization – subscribe to Molly White newsletter for unbiased crypto news.

B Corporation Certification : https://en.wikipedia.org/wiki/B_Corporation_(certification) “As of September 2022, there are 5,697 certified B Corporations across 158 industries in 85 countries.” https://www.bcorporation.net/en-us/
https://www.positive.news/economics/five-trends-sustainable-business/

https://lumalabs.ai/ : acquire 3d assets anywhere with a phone

https://roaringbitmap.org/ compressed bitmaps

Code RED in google : https://medium.com/@ignacio.de.gregorio.noblejas/can-chatgpt-kill-google-6d59742ee635

Node.js is aging like milk https://javascript.plainenglish.io/node-js-is-aging-like-milk-now-whats-next-a4e726ae668f :

Ryan Dahl, creator of Node.js moved to Go.

TJ Holowaychuk, creator of Express.js framework moved to Go.

Boston dynamics showing off https://youtu.be/-e1_QhJ1EhQ

Chat GPT4 talk https://www.theverge.com/23560328/openai-gpt-4-rumor-release-date-sam-altman-interview

Fyne IDE, currently work in progress https://github.com/fyne-io/defyne

1995 paper by the Niklaus Wirth “A Plea for Lean Software” https://cr.yp.to/bib/1995/wirth.pdf

2022 Reading list

Pingora : Cloudfront new rust based proxy for edge servers https://blog.cloudflare.com/how-we-built-pingora-the-proxy-that-connects-cloudflare-to-the-internet/

How much memory your video card has : https://www.cyberciti.biz/faq/howto-find-linux-vga-video-card-ram/

Rewriting a monolith into microservices (or just into a more maintainable monolith) : the Strangler pattern https://www.redhat.com/architect/pros-and-cons-strangler-architecture-pattern

Context switching costs in sw development : https://www.infoq.com/articles/multitasking-problems/

Wasmedge runtime https://wasmedge.org/book/en/index.html

Python compiler that produces native machine code (10/100x speed gain) https://github.com/exaloop/codon

How AVIF compares to other image formats https://storage.googleapis.com/avif-comparison/index.html

Some tools for enumerating : https://github.com/OJ/gobuster, https://github.com/OWASP/Amass

Updates on the twitter affair : https://newsletter.pragmaticengineer.com/p/the-scoop-twitters-ongoing-cruel

Reverse engineering Swift physics

Pelikan cache, a C/Rust memcached type cache server made in twitter http://www.pelikan.io/

Giza 3D http://giza.fas.harvard.edu/giza3d/

Memory allocator used in Go language : https://google.github.io/tcmalloc/design.html
Slab Allocation : https://hammertux.github.io/slab-allocator
Linux virtual FS filename lookup : https://www.kernel.org/doc/html/latest/filesystems/path-lookup.html
Linux dentry cache and slabtop command

Your wordpress site can feed mastodon https://fedi.tips/the-fediverse-beyond-mastodon/#WordPress

Image Format wars :
– Google removing JXL support from chrome : https://chromium-review.googlesource.com/c/chromium/src/+/3988999
– reasons https://www.phoronix.com/news/Chrome-Dropping-JPEG-XL-Reasons
– comments : https://cloudinary.com/blog/the-case-for-jpeg-xl
– support for JXL in android : https://issuetracker.google.com/issues/259900694?pli=1

Bare metal or cloud services : https://levelup.gitconnected.com/how-we-reduced-our-annual-server-costs-by-80-from-1m-to-200k-by-moving-away-from-aws-2b98cbd21b46

New Directions in Cloud Programming : https://www.cidrdb.org/cidr2021/papers/cidr2021_paper16.pdf

I know you all know but, just a reminder :

package main

import "fmt"

func main() {
  var m = 0.1
  var n = 0.2
  fmt.Println(m + n)

  var a = 0.1
  var b = 6.0
  fmt.Println(a * b)

  var o = 0.6
  var p = 0.3
  fmt.Println(o + p)

  var f = 1.39
  fmt.Println(f * f)

  const c = 1.39
  fmt.Println(c * c)
}

0.30000000000000004
0.6000000000000001
0.8999999999999999
1.9320999999999997
1.9321

Reducing Cognitive load (Golab2022 notes) in code :

  • Line of Sight : 1st level, second level for error conditions
    • eliminate else, return early, avoid extra nesting, wrap in function
    • align the happy path
    • remove misterious booleans
  • Package Names : concise and clear, move on the calling side. No util/common/ packages, split
  • Pure functions as much as possible
  • pass with & to indicate we change the object
  • Don’t lie to the reader

Interesting WASM talk from https://xeiaso.net/

Organize you software assets https://stackoverflow.blog/2022/09/19/i-spent-two-years-trying-to-do-what-backstage-does-for-free/ spotify open sourced their internal tool

VCF East 2019 Bryan Kernigham interviews Ken Thompson : how unix, pipes, and other things like grep came out just to run nroff/troff for Bell Labs patents office https://youtu.be/EY6q5dv_B-o

Engineering ladders https://github.com/jorgef/engineeringladders

Stackoverflow engineering https://hanselminutes.com/847/engineering-stack-overflow-with-roberta-arcoverde

Stackexchange 1.3 bil pageview/month : https://stackexchange.com/performance

Airbnb path from monolith to microservices https://medium.com/qe-unit/airbnbs-microservices-architecture-journey-to-quality-engineering-d5a490e6ba4f

Perche’ l’innovazione e’ cosi’ difficile in italia : qui

Questo non vale solo per la digitalizzazione, vale per l’industrializzazione e per il capitalismo. Prendo in prestito la domanda (e la risposta) di Roberto Maragliano “Perché i temi della maturità sono ancora così? Ce lo dice Camillo Olivetti (padre di Adriano) in un appunto del 1927: “L’istruzione della nostra borghesia ha un fondamento prettamente anti-industriale. Noi siamo ancora i figli dei Latini che lasciarono ai servi e ai liberti i lavori industriali e che in ben poco conto li ritennero, tanto che ci tramandarono i nomi dei più mediocri proconsoli e dei poetucoli ed istrioni che dilettarono la decadenza romana, ma non ci ricordarono neppure i nomi di quei sommi ingegneri che costruirono le strade gli acquedotti e i grandi monumenti dell’Impero Romano” (da Paolo Bricco, Adriano Olivetti, un italiano del Novecento, Rizzoli, appena uscito)”.

End to end tracing : Jaeger (opentelemetry)

Consistent Hashing used for load balancing resources :

Porting python2 code to python3

Interesting point of view on “complete rewrite” vs “enhance/evolve the existing” from dropbox tech blog

T Shape Engineers

Perkeep .. “Throughout our life, we all continue to generate content …”

Peer to peer hypermedia protocol : https://ipfs.io/

Building and Testing in-kernel (Rust code to be discussed at next Linux Plumbers : https://lpc.events/event/16/page/193-proposed-microconferences and discussed here : https://arstechnica.com/gadgets/2021/03/linus-torvalds-weighs-in-on-rust-language-in-the-linux-kernel/

Linux Foundation Real Time OS : https://www.zephyrproject.org/learn-about/

Microservice patterns : https://microservices.io/patterns/index.html

Broken Window Theory applied to software ( initial statement in “The Pragmatic Programmer” by Andrew Hunt and David Thomas, 1999 if I’m not wrong) interesting review and interesting to meet another fan of simplicity and minimalism in code.

Again on avoiding accidental complexity (I wrote something on this in the past) https://searchsoftwarequality.techtarget.com/tip/How-to-prevent-accidental-complexity-in-software-development
Interesting :

Super, 10X, rockstar — these are names for developers who produce a lot of code or work in many development areas. Such developers sometimes build a reputation — and an ego. “These super developers usually make their code unnecessarily complex just because they can,” Rials said. Other team members struggle to comprehend and edit the complex code. These colleagues might even compliment the super developer about the code’s complexity, which encourages more of it. Businesses should empower junior developers to take a fresh look at code.

Bill Rials, associate director and professor at Tulane University’s School of Professional Advancement

How common the pattern above is ..

Composer, music theorist, architect, performance director and engineer https://en.wikipedia.org/wiki/Iannis_Xenakis (I love multi potential people). Known for his studies on Music generation software : author of UPIC, which inspired many other tools like Iannix, HighC, UPISketch. I was able to run HighC …

Tz0, a video game made to listen music

The first ecologist ? https://www.rachelcarson.org/

Clearness when she explains, clearness of vision, clearness of thinking : Mariana Mazzucato

Back to untargeted adv ?

https://projecteuler.net/ take some time to solve math things

The importance of Rubber Ducking : a funny tool to do it alone ..

Ethical resources : sustainable, mindful, transparent, open and much more. Here’s a list of tools (browsers, search engines, email services, web hosting, tools for team collaboration, messaging, and a lot more) for a more ethical internet.


Web design patterns

Heidelberg

You’ve probably seen these acronyms around : SSG, SSR, MPA, SPA, PWA. Web design is getting complex and this tries to explain (with the help of other good content) what these acronyms mean :

  • PWA : Progressive Web App, web apps developed using a number of specific technologies and standard patterns to allow them to take advantage of both web and native app features. Not sure if this is a web design pattern
  • MPA : Multi Page Application, every operation requests data from server, receives a new page (html+css+js) and renders the data in the browser.
  • SPA : Single Page Application, performs inside a browser and does not require page reloading during its use. Initial html+cs+js is obtained from the server and then all login is done in js browser side.More info here and here
  • CSR : Client Side Rendering, all rendering happens in the browser. Use when UI is complex, lots of dynamic data, you need auth and SEO contents are not that many.
  • SSR : Server Side Rendering, as the acronyms imply, renders content in the server and sends ready .html+js files to the browser. Browser still executes js to reload pages. Use when UI has little interactivity, when you need best SEO and faster loading.
  • SSG : Static Site Generating, all pages are already generated and rendered server side.

There are several popular frameworks that can be used for static site generation (SSG) and server-side rendering (SSR).

For SSG, some popular options include Gatsby, Next.js, and Jekyll. These frameworks use a variety of technologies, such as React, Vue, and Ruby, to generate static HTML pages from dynamic content.

For SSR, some popular options include Express, Flask, and Hapi. These frameworks use Node.js and other technologies to generate the HTML for a page on the server and send it to the client.

Overall, there are many different frameworks available for both SSG and SSR, and the best choice will depend on the specific needs and goals of the project. It is important to carefully evaluate the features and capabilities of each framework to determine which one is the best fit for the project.

Enchanted by Amanda Gorman speech at Presidential Inauguration 2021

“When day comes we ask ourselves,

where can we find light in this never-ending shade?

The loss we carry,

a sea we must wade

We’ve braved the belly of the beast

We’ve learned that quiet isn’t always peace

And the norms and notions

of what just is

Isn’t always justice

And yet the dawn is ours

before we knew it

Somehow we do it

Somehow we’ve weathered and witnessed

a nation that isn’t broken

but simply unfinished

We the successors of a country and a time

Where a skinny Black girl

descended from slaves and raised by a single mother

can dream of becoming president

only to find herself reciting for one

And yes we are far from polished

far from pristine

but that doesn’t mean we are

striving to form a union that is perfect

We are striving to forge a union with purpose

To compose a country committed to all cultures, colors, characters and

conditions of man

And so we lift our gazes not to what stands between us

but what stands before us

We close the divide because we know, to put our future first,

we must first put our differences aside

We lay down our arms

so we can reach out our arms

to one another

We seek harm to none and harmony for all

Let the globe, if nothing else, say this is true:

That even as we grieved, we grew

That even as we hurt, we hoped

That even as we tired, we tried

That we’ll forever be tied together, victorious

Not because we will never again know defeat

but because we will never again sow division

Scripture tells us to envision

that everyone shall sit under their own vine and fig tree

And no one shall make them afraid

If we’re to live up to our own time

Then victory won’t lie in the blade

But in all the bridges we’ve made

That is the promise to glade

The hill we climb

If only we dare

It’s because being American is more than a pride we inherit,

it’s the past we step into

and how we repair it

We’ve seen a force that would shatter our nation

rather than share it

Would destroy our country if it meant delaying democracy

And this effort very nearly succeeded

But while democracy can be periodically delayed

it can never be permanently defeated

In this truth

in this faith we trust

For while we have our eyes on the future

history has its eyes on us

This is the era of just redemption

We feared at its inception

We did not feel prepared to be the heirs

of such a terrifying hour

but within it we found the power

to author a new chapter

To offer hope and laughter to ourselves

So while once we asked,

how could we possibly prevail over catastrophe?

Now we assert

How could catastrophe possibly prevail over us?

We will not march back to what was

but move to what shall be

A country that is bruised but whole,

benevolent but bold,

fierce and free

We will not be turned around

or interrupted by intimidation

because we know our inaction and inertia

will be the inheritance of the next generation

Our blunders become their burdens

But one thing is certain:

If we merge mercy with might,

and might with right,

then love becomes our legacy

and change our children’s birthright

So let us leave behind a country

better than the one we were left with

Every breath from my bronze-pounded chest,

we will raise this wounded world into a wondrous one

We will rise from the gold-limbed hills of the west,

we will rise from the windswept northeast

where our forefathers first realized revolution

We will rise from the lake-rimmed cities of the midwestern states,

we will rise from the sunbaked south

We will rebuild, reconcile and recover

and every known nook of our nation and

every corner called our country,

our people diverse and beautiful will emerge,

battered and beautiful

When day comes we step out of the shade,

aflame and unafraid

The new dawn blooms as we free it

For there is always light,

if only we’re brave enough to see it

If only we’re brave enough to be it”