Gorilla Recap 15

This week we mainly dive into some cool AI things, like StackOverflow's own chatbot that will greatly improve the debugging experience. Alongside a cornucopia of interesting tech related topics that I curated over the course of the week! And the usual sprinkle of Gorilla stuff! Enjoy!

Gorilla Recap 15
Threading the fine line between system and chaos - a work in progress

Hey everyone 👋 and hello to all new subscribers that joined since last week! Thanks for signing up and joining along for the ride! This is the weekly Gorilla Recap, a newsletter in which I go over everything that I found noteworthy from the past week. Hope you have a good stay!


Before we start - since this newsletter is meant to be something to enjoy in your inbox every Monday, I'm making an effort at improving it in that regard. For instance, no more embedded tweets that can't be displayed in an email - instead screenshots that link to their respective tweets by clicking on them. Let me know if there's any other improvements to make this a better experience!

That said, let's get into some cool tech, genart and AI things of the past week! 👇

Overflow AI

This is arguably the most exciting news for me personally this week! StackOverflow is bringing out it's own AI chatbot! All while staying true to the original mission that StackOverflow promised - keeping the developer community at the center!

Essentially, the chatbot will provide responses to your questions while also citing the answers that it uses to provide reponses to your questions - I think that this is HUGE! What's bothered me about ChatGPT is that there's no way of telling what the source of the answer is, even if it is in many cases a patchwork of some internal representations. Now I can actually credit something tangible when I do end up using a snippet of generated code, and at the same time feel much more comfortable about it while doing it!

This enhanced search experience is also planned to be delivered as an integration to IDEs like Visual Studio Code, as well as Slack. You can check out the entire roadmap here:

Announcing OverflowAI
Let’s highlight the new features and products we announced today from the stage of WeAreDevelopers.

Interesting Reads

Some juicy reads from the past week 👇

Reviving dead social Media

One of those great links from the Ghost newsletter, and a very fitting one at that. It seems that the landscape of social media platforms is in a constant state of upheaval, and I've certainly been struggling with making a decision on how to navigate the rising tides moving forward.

A couple years back it wasn't as difficult as it seems now, just make an account, make good content and play by the rules of the algorithm. And with consistency you'll very likely end up with a decent amount of engagement. Well, it's no so easy anymore, things feel a lot more random these days. It's almost like social media platforms don't know what they want anymore.

Emily Rochotte paints a beautiful picture of the current identity crisis that social media platforms find themselves in today and also illustrates some approaches to navigate these turbulent waters in addition to finding success on them:

Reviving dead social media | The Content Technologist
Automation killed the social media star. How can creators embrace evolving social media algorithms without chasing their audience away?

Authenticity and emotions matter more than ever.

Beware of NPM Malware

You probably download NPM packages without giving it a second thought. And that's fine, the likelihood that you'll download a package that contains some sort of malware is quite low - roughly 0.007222% according to an article on The New Stack:

Is npm a Hotbed of Malware?
WhiteSource, a leading open source security provider, says npm, one of the most widely used JavaScript package managers, is a playground for malicious actors.

And the average indie dev, hacking away in their bedroom is often not the target of elaborate malware schemes, but rather, researchers and devs working at larger companies handling sensitive and valuable data on a daily basis. What sounds like a plotline from a dystopian movie becomes a very real threat - a North Korean state-backed hacking syndicate known as the 'Lazarus Group' attempts infiltration of sensitive devices with elaborate malware schemes. This excellent article by Feross Aboukhadijeh goes into the details:

Social engineering campaign targeting tech employees spreading through npm malware - Socket
The Lazarus Group launched a sophisticated social engineering campaign targeting developers in the cryptocurrency and cybersecurity sectors, using compromised accounts and malware-laden NPM packages.

Putting the "You" in CPU

Not a read for the faint of heart - Lexi Mattick explains how programs run on your computer, from start to finish, in this e-book-esque series of articles. How can you pass up on something that starts off as strong as this:

I would’ve killed for one solid article explaining what I learned, so I’m writing the article that I wished I had.

Even if you know exactly how computers work, or at least think that you know how computers work, this one's a must read:

Putting the “You” in CPU
Curious exactly what happens when you run a program on your computer? Learn how multiprocessing works, what system calls really are, how computers manage memory with hardware interrupts, and how Linux loads executables.

I wish someone would have shown me this when I took my first computer architecture course.

Google's Proposal for a Web Environment Integrity API

Last week I also came across this scary tweet - a proposal from Google about integrating a Web Environment Integrity API into their browsers. Despite it being a proposal, an apparent prototype already exists in chromium:

So what does this WEI API do? It essentially allows browsers to monitor and fingerprint the entities that are operating the browser. This is to ensure that these entities play by the same rules as others, for example, as a measure against automated means of cheating in browser games. At least that is my understanding of it. A more detailed explanation can be found here:

Google’s nightmare “Web Integrity API” wants a DRM gatekeeper for the web
It’s just a “proposal,” but it’s also being prototyped inside Chrome right now.

The Bull Case for Digital Art

An interesting thread I found by Twitter user SuzanneNFTs, highlighting some of the factors that make digital NFT art attractive for the younger generation, and is in many ways already primed to value as well as be more open to purchasing and owning digital assets:

AI Corner

Why transformative Artificial Intelligence is really, really hard to achieve

I've already touched upon the risks of AI moving itself into a position of unhalted growth in previous issues of the Gorilla Recap. There's a big dichotomy around this very issue currently, some think that it's a genuine concern and that we are very near to the singularity if we don't carefully monitor advancements in the AI space, others argue that we are still nowhere near achieving general intelligence, and that most models at this point are still only imitating and regurgitating patterns that they have been trained on.

An excellent article by Arjun Ramani and Zhengdong Wand published by The Gradient tackle this topic, arguing that the world is just too complicated for us to assume that advancements in theoretical AI, such as the current text generation models (that have become incredibly popular in recent months), can be considered powerful enough to be transformative on a larger scale:

Why transformative artificial intelligence is really, really hard to achieve
A collection of the best technical, social, and economic arguments Humans have a good track record of innovation. The mechanization of agriculture, steam engines, electricity, modern medicine, computers, and the internet—these technologies radically changed the world. Still, the trend growth rate

[...] myriad hurdles stand in the way of widespread transformative impact. These hurdles should be viewed collectively. Solving a subset may not be enough. Solving them all is a combinatorially harder problem.

Why AI is a Threat to Artists

Even though I find recent AI advancements really exciting, it also poses a very real risk to many types of creatives, especially to those who create and produce visual and written content - as those two fields have seen the largest leaps in advancement in recent years. I often find that the space is advancing so fast that the attention is immediately shifted to the new technologies when we haven't even decided on regulating the tools from yesterday.

Paris Marx, host of the wonderful podcast Tech won't save us is joined by Molly Crabapple, an accomplished and prolific illustrator to discuss all of these matters and voice her concerns:

Why AI is a Threat to Artists w/ Molly Crabapple - Tech Won’t Save Us
Are AI image generation tools really democratizing art? Molly Crabapple explains why art is innately human, what’s lost by having AI take over making art, and what risks image generation presents for working-class artists.

Check out the other episodes as well, really an excellent podcast!

Molly Crabapple also wrote an op-ed for the Los Angeles Times on the same topic which I found to be a very important read:

Op-Ed: Beware a world where artists are replaced by robots. It’s starting now
AIs can spit out work in the style of any artist they were trained on — eliminating the need for anyone to hire that artist again.

Gorilla Articles

Programming Soft Body Physics and Blobs

We continue making cool things with our particle system: last week we discussed how springs work and put together a particle and spring mesh - this week we double down on this and have a look at making squishy and bouncy blobs.

Turns out that fine tuning them is quite tricky and there's a number of configurations in which they can be wired together. This tutorial walks you through this process, shows some improvements to the particle system so far and also goes over some possible configurations for our blob shapes:

There hasn't been a second article this week, as I've gotten quite sick and bedridden over the weekend, in addition to helping my family move across the country. But I'm on the mend now and already working on the posts of the coming week! So keep your eyes peeled for that!

Gorilla Sketches

I got a decent amount of sketching in towards the beginning of the week, returning to an idea that I did some months ago actually - a sketch that revolved around computing the collisions between arc shapes and subsequently being able to pack them on the canvas.

Back then I would trace the arc shapes with tiny line segments and then compute the intersections of those to determine if the two arcs intersected. This time I wanted to do it the proper way however, and actually compute the intersections of those arcs which turns out to be a bit tricky, requiring you to first determine if the two circles that the arcs fall on intersect and then check if those points of intersection fall into the angular range that the arcs cover. I managed to do it ultimately however:

You can view an animated version of this here

This ultimately lead to recreating the original arc packing sketch:

It's not much, but it's honest work.

And alter integrating it into the circular sketch that I started working on in the previous week - combining a more chaotic system with elements that retain some structure. You know, threading that fine line of system and chaos in generative art:

Excited to see where this will go!

Tip of the Week

I don't use it as often as I used to anymore, but FFMPEG is one of those very useful tools that you should have in your trickbag as a creative coder. Whether you need to convert between different media formats, or need to shave off a couple of MBs from a gif to get it within some platform's size limit - FFMPEG got your back.

The caveat is that it's not the easiest command line tool to use - with it's hundreds of different flags and options, that can be mixed and matched in various ways, it can quickly become difficult to actually figure out how to perform a specific task. ffmprovisr to the rescue. I wish I had found this site many moons ago, rather than having to scour different forum and stackoverflow posts to find the correct command, It provides commands alongside detailed explanations for the flags that are being used:

https://amiaopensource.github.io/ffmprovisr

Alternatively you can also give my personal beginner's guide a shot:

A Simple Guide to FFMPEG
FFmpeg is an essential tool for creative coders. Here’s a primer on using FFmpeg, and showcase of some of it’s capabilities.

Music for Coding

This week I thoroughly enjoyed these fantastic soundscapes from Ben Böhmer, a german producer and musician that blends sounds in a magical manner to the like of Tycho, Bonobo and Christian Löffler. If you want something for a moody and rainy train ride through a grey and brutalist German landscape, this hits the spot:

And that's it from me this week again, hope this caught you up a little bit with the events in the world of tech, AI and generative art in the past week! If you enjoyed it, consider sharing it with followers, friends and family on your socials, that share interest in this nerdy stuff. Otherwise, consider signing up to get notified whenever there's new content on the blog. Cheers and happy sketching ~ Gorilla Sun 🌾