# fun

Published articles for fun.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Fun with slope fields, css and react

DevFeed: [Fun with slope fields, css and react](<https://devfeed.tech/articles/fun-with-slope-fields-css-and-react-27377.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/fun-with-slopfields.htm>)

Author: Khan Academy

Published: 2015-08-05T22:00:00Z

Content type: opinion

Language: en

Sources: [Khan Academy](<https://devfeed.tech/sources/khan-academy.md>)

Topics: [CSS](<https://devfeed.tech/topics/css.md>), [React](<https://devfeed.tech/topics/react.md>), [notifications](<https://devfeed.tech/topics/notifications.md>), [math](<https://devfeed.tech/topics/math.md>)

Tags: [css](<https://devfeed.tech/tags/css.md>), [design](<https://devfeed.tech/tags/design.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [fun](<https://devfeed.tech/tags/fun.md>), [math](<https://devfeed.tech/tags/math.md>), [news](<https://devfeed.tech/tags/news.md>), [notifications](<https://devfeed.tech/tags/notifications.md>), [react](<https://devfeed.tech/tags/react.md>)

### AI overview

An account of designing a Khan Academy notification banner for LearnStorm winners under a tight three-day deadline. The project focused on improving the notification's visual presentation while incorporating LearnStorm's slope-field identity, using CSS and React.

### Source excerpt

By Marcos Ojeda A while ago, we needed to send out a notification to all our LearnStorm winners ... Read more

## A Kotlin Flow Guessing Game

DevFeed: [A Kotlin Flow Guessing Game](<https://devfeed.tech/articles/flow-guessing-game-39313.md>)

Original publisher: [Read original article](<https://kt.academy/article/game-flow>)

Published: 2026-03-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [kotlin-flow](<https://devfeed.tech/topics/kotlin-flow.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [fun](<https://devfeed.tech/tags/fun.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-flow](<https://devfeed.tech/tags/kotlin-flow.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

A game designed to test and strengthen understanding of Kotlin Flow.

### Source excerpt

A fun game that pushes your understanding of Kotlin Flow.

## A series of tricks and techniques I learned doing tiny GLSL demos

DevFeed: [A series of tricks and techniques I learned doing tiny GLSL demos](<https://devfeed.tech/articles/a-series-of-tricks-and-techniques-i-learned-doing-tiny-glsl-demos-26122.md>)

Original publisher: [Read original article](<http://blog.pkh.me/p/48-a-series-of-tricks-and-techniques-i-learned-doing-tiny-glsl-demos.html>)

Published: 2025-12-07T17:48:26Z

Content type: tutorial

Language: en

Sources: [The Last Static Blog RSS](<https://devfeed.tech/sources/the-last-static-blog-rss.md>)

Topics: [glsl](<https://devfeed.tech/topics/glsl.md>), [Demo](<https://devfeed.tech/topics/demo.md>), [Code](<https://devfeed.tech/topics/code.md>), [iteration](<https://devfeed.tech/topics/iteration.md>), [color](<https://devfeed.tech/topics/color.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [demo](<https://devfeed.tech/tags/demo.md>), [fun](<https://devfeed.tech/tags/fun.md>), [glsl](<https://devfeed.tech/tags/glsl.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [iteration](<https://devfeed.tech/tags/iteration.md>), [math](<https://devfeed.tech/tags/math.md>), [prog](<https://devfeed.tech/tags/prog.md>), [techniques](<https://devfeed.tech/tags/techniques.md>), [tricks](<https://devfeed.tech/tags/tricks.md>)

### AI overview

This tutorial examines four tiny GLSL demos--Moonlight, Entrance 3, Archipelago, and Cutie--and explains selected techniques learned while creating them. It introduces an alternative raymarching approach using inverse-density color contributions and relates it to photon-density integration.

### Source excerpt

In the past two months or so, I spent some time making tiny GLSL demos. I wrote an article about the first one, Red Alp. There, I went into details about the whole process, so I recommend to check it out first if you're not familiar with the field. We will look at 4 demos: Moonlight, Entrance 3, Archipelago, and Cutie. But this time, for each demo, we're going to cover one or two things I learned from it. It won't be a deep dive into every aspect because it would be extremely redundant. Instead, I'll take you along a journey of learning experiences. Moonlight Moonlight demo in 460 characters // Moonlight [460] by bµg // License: CC BY-NC-SA 4.0 void main(){vec3 o,p,u=vec3((P+P-R)/R.y,1),Q;Q++;for(float d,a,m,i,t;i++<1e2;p=t<7.2?Q:vec3(2,1,0),d=abs(d)*.15+.1,o+=p/m+(t>9.?d=9.,Q:p/d),t+=min(m,d))for(p=normalize(u)*t,p.z-=5e1,m=max(length(p)-1e1,.01),p.z+=T,d=5.-length(p.xy*=mat2(cos(t*.2+vec4(0,33,11,0)))),a=.01;a<1.;a+=a)p.xz*=mat2(8,6,-6,8)*.1,d-=abs(dot(sin(p/a*.6-T*.3),p-p+a)),m+=abs(dot(sin(p/a/5.),p-p+a/5.));o/=4e2;O=vec4(tanh(mix(vec3(-35,-15,8),vec3(118,95,60),o-o*length(u.xy*.5))*.01),1);} Note See it on its official page, or play with the code on its Shadertoy portage. In Red Alp, I used volumetric raymarching to go through the clouds and fog, and it took quite a significant part of the code to make the absorption and emission convincing. But there is an alternative technique that is surprisingly simpler. In the raymarching loop, the color contribution at each iteration becomes 1/d or c/d where d is the density of the material at the current ray position, and c an optional color tint if you don't want to work in grayscale level. Some variants exist, for example 1/d^2, but we'll focus on 1/d. 1/d explanation Let's see how it looks in practice with a simple cube raymarch where we use this peculiar contribution: One glowing and rotating cube void main() { float d, t; vec3 o, p, u = normalize(vec3(P+P-R,R.y)); // screen to world coordinate for (int i = 0; i < 30

## 11ty Hacks for Fun and Performance

DevFeed: [11ty Hacks for Fun and Performance](<https://devfeed.tech/articles/11ty-hacks-for-fun-and-performance-26560.md>)

Original publisher: [Read original article](<https://infrequently.org/2025/10/11ty-hacks-for-fun-and-performance/>)

Author: Alex Russell

Published: 2025-10-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Alex Russell](<https://devfeed.tech/sources/alex-russell.md>)

Topics: [Script](<https://devfeed.tech/topics/script.md>), [Nunjucks](<https://devfeed.tech/topics/nunjucks.md>), [Markdown](<https://devfeed.tech/topics/markdown.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [11ty](<https://devfeed.tech/tags/11ty.md>), [async](<https://devfeed.tech/tags/async.md>), [blog](<https://devfeed.tech/tags/blog.md>), [blogging](<https://devfeed.tech/tags/blogging.md>), [build](<https://devfeed.tech/tags/build.md>), [code](<https://devfeed.tech/tags/code.md>), [fun](<https://devfeed.tech/tags/fun.md>), [hacks](<https://devfeed.tech/tags/hacks.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [js](<https://devfeed.tech/tags/js.md>), [module](<https://devfeed.tech/tags/module.md>), [performance](<https://devfeed.tech/tags/performance.md>), [script](<https://devfeed.tech/tags/script.md>), [web](<https://devfeed.tech/tags/web.md>), [webdev](<https://devfeed.tech/tags/webdev.md>)

### AI overview

A developer shares techniques for improving performance in an 11ty site, including selectively loading shortcode resources through the 11ty Bundle plugin, avoiding duplicate scripts, and handling Nunjucks and Markdown preprocessing.

### Source excerpt

This blog really isn't just for beating up on Apple for the way it harms users, the web, standards, and society to maintain power and profits. So here's some fun stuff I've been doing in my 11ty setup to improve page performance. Contents Page-Specific Resources via Shortcodes and the 11ty Bundler Mo Pagination, Mo Problems Build Time Impact Scroll-Position Based Delayed Code Loading Faster CSS Selectors for 11ty Syntax Highlighting Lean Rada's CSS-only Low-Quality Image Previews Bonus Hack: Global Acronyms for Better Abbreviations Does It Work? Page-Specific Resources via Shortcodes and the 11ty Bundler You know how it gets once you've got a mature 11ty setup: shortcodes proliferate, and some generate output that might depend on JS or CSS. If your setup is anything like mine, you might also feel conflicted about including some of those resources globally. It's important to have them available for the posts that need them, but it's not great to bring a charting library, e.g., into every page when only 1 in 20 will need it. This blog has grown many such shortcodes that generate expansions for features like: Web Components for YouTube and Vimeo embeds WebPageTest.org test embeds plot.js based charts Here, for instance, is how a Vimeo embed looks in the markdown of a page, using Nunjucks for Markdown pre-processing: {% vimeo "VIDEOID", "TITLE" %} This expands to: <lite-vimeo videoid="VIDEOID" videotitle="TITLE"> <a href="http://vimeo.com/VIDEOID">TITLE</a> </lite-vimeo> But this also requires script; e.g.: <script type="module" async src="/assets/js/lite-vimeo/lite-vimeo.js"> </script> And the list keeps growing. To avoid having the weight of these components clogging up every page, a system for selectively pulling in their code would be helpful. It'd also be grand if we could make sure scripts appear just once, even if shortcodes are invoked multiple times per page. Included code should preferably also be located towards the top of the document. The 11ty Bundle plugin

## Code golfing a tiny demo using maths and a pinch of insanity

DevFeed: [Code golfing a tiny demo using maths and a pinch of insanity](<https://devfeed.tech/articles/code-golfing-a-tiny-demo-using-maths-and-a-pinch-of-insanity-26119.md>)

Original publisher: [Read original article](<http://blog.pkh.me/p/45-code-golfing-a-tiny-demo-using-maths-and-a-pinch-of-insanity.html>)

Published: 2025-09-29T13:30:50Z

Content type: tutorial

Language: en

Sources: [The Last Static Blog RSS](<https://devfeed.tech/sources/the-last-static-blog-rss.md>)

Topics: [glsl](<https://devfeed.tech/topics/glsl.md>), [Code](<https://devfeed.tech/topics/code.md>), [Canvas](<https://devfeed.tech/topics/canvas.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [3d](<https://devfeed.tech/tags/3d.md>), [canvas](<https://devfeed.tech/tags/canvas.md>), [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [floating-point](<https://devfeed.tech/tags/floating-point.md>), [fun](<https://devfeed.tech/tags/fun.md>), [glsl](<https://devfeed.tech/tags/glsl.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [math](<https://devfeed.tech/tags/math.md>), [prog](<https://devfeed.tech/tags/prog.md>)

### AI overview

This tutorial explains how a 448-character GLSL fragment shader creates a procedural demo by evaluating mathematical formulas for each pixel. It examines the shader structure, WebGL2 canvas inputs, code-golfing techniques, and a local live-coding workflow.

### Source excerpt

A few weeks ago, I made a tiny demo that fits into 448 characters: Red Alp GLSL demo in 448 characters void main(){vec3 c,p,K=vec3(3,1,0);for(float z,i,a,g=1.,t,h,d,w,k=.15;i++<1e2;d=max(max(d-3. ,-d),a=z)*k,w=g-g/exp(h>.001?a++,d/.4:h*3e2),g-=a*=w,c+=a*d*4.5+(d>z?z:h/2e2)*K,a=min(p.y+2. ,1.),c.r+=w*a*a*.1,t+=min(h*.2,k/=.985))for(p=normalize(vec3(P+P-R,R.y))*t,p.xz*=mat2(cos( sin(T*.2)+K.zyxz*11.)),p.z+=T*.3,d=p.y,h=d+.5,a=.01;a<1.;a+=a)p.xz*=mat2(8,6,-6,8)*.1,d+=abs (dot(sin((p/a+T)*.3),p-p+a)),h+=abs(dot(sin(p.xz*.6/a),P-P+a));O=vec4(tanh(c),1);} Note The number of characters was 464 characters at first, but thanks to the community it got reduced further, and the article updated accordingly. There is no texture, no mesh, no 3D helper: it's simply a procedural mathematical formula evaluated at each pixel assigning them a color. Code golfing is about making it as short as possible, and thus is part of the art performance. To put things into perspective, the 853x480 JPEG thumbnail of this article is 167x larger than this code. You can watch a larger version on its main dedicated page, or a portage on Shadertoy (484 chars). If your device is not powerful enough (I'm sorry for the lag on this page) or doesn't support WebGL2, a short preview video can be seen on Mastodon. I'm guessing the wizardry of the code has confused many people so we're going to dive through the making-of together. Overall, this demo is a particularly dense and entangled compilation of different techniques, where each aspect could mandate a dedicated article. For that reason, some parts will prefer to link to external resources when the literacy is verbose on the subject. Warning Some demos in this article will start "decaying" over time due to floating point variables getting too large. Reloading the page should fix that. The base template The code is written in GLSL and is executed for each pixel (technically each fragment) on a simple quad geometry (to be accurate it's even a single big triang

## A Kotlin Coroutines Guessing Game

DevFeed: [A Kotlin Coroutines Guessing Game](<https://devfeed.tech/articles/coroutines-races-guessing-game-39311.md>)

Original publisher: [Read original article](<https://kt.academy/article/game-coroutines>)

Published: 2025-06-24T00:00:00Z

Content type: article

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [kotlin-coroutines](<https://devfeed.tech/topics/kotlin-coroutines.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [coroutines](<https://devfeed.tech/tags/coroutines.md>), [fun](<https://devfeed.tech/tags/fun.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/tags/kotlin-coroutines.md>), [programming](<https://devfeed.tech/tags/programming.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

A game designed to test and improve understanding of Kotlin Coroutines.

### Source excerpt

A fun game that pushes your understanding of Kotlin Coroutines.

## A Game for Practicing Kotlin Collection Processing

DevFeed: [A Game for Practicing Kotlin Collection Processing](<https://devfeed.tech/articles/collection-processing-guessing-game-39310.md>)

Original publisher: [Read original article](<https://kt.academy/article/game-collection-processing>)

Published: 2025-01-13T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Kotlin programming](<https://devfeed.tech/topics/kotlin-programming.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [fun](<https://devfeed.tech/tags/fun.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [programming](<https://devfeed.tech/tags/programming.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

A game designed to help readers practice and deepen their understanding of Kotlin collection processing.

### Source excerpt

A fun game that pushes your understanding of Kotlin collection processing.

## Advent of Spin 2024 Wrap-up

DevFeed: [Advent of Spin 2024 Wrap-up](<https://devfeed.tech/articles/advent-of-spin-2024-wrap-up-15155.md>)

Original publisher: [Read original article](<https://www.fermyon.com/blog/advent-of-spin-2024-wrap>)

Author: Thorsten Hans & MacKenzie Adam

Published: 2025-01-08T12:00:00Z

Content type: article

Language: en

Sources: [Fermyon - Experience the next wave of cloud computing.](<https://devfeed.tech/sources/fermyon-experience-the-next-wave-of-cloud-computing.md>)

Topics: [Serverless](<https://devfeed.tech/topics/serverless.md>), [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [coding](<https://devfeed.tech/tags/coding.md>), [fun](<https://devfeed.tech/tags/fun.md>), [learn](<https://devfeed.tech/tags/learn.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>)

### AI overview

A retrospective on Advent of Spin 2024, looking back at coding challenges designed to help readers learn Spin and Serverless WebAssembly.

### Source excerpt

Wrapping up Advent of Spin 2024 - Looking back at the fun coding challenges to help you learn Spin and Serverless WebAssembly

## Announcing Advent of Spin 2024

DevFeed: [Announcing Advent of Spin 2024](<https://devfeed.tech/articles/announcing-advent-of-spin-2024-15154.md>)

Original publisher: [Read original article](<https://www.fermyon.com/blog/advent-of-spin-2024>)

Author: Thorsten Hans

Published: 2024-12-02T12:00:00Z

Content type: release

Language: en

Sources: [Fermyon - Experience the next wave of cloud computing.](<https://devfeed.tech/sources/fermyon-experience-the-next-wave-of-cloud-computing.md>)

Topics: [Code Challenge](<https://devfeed.tech/topics/code-challenge.md>), [Serverless](<https://devfeed.tech/topics/serverless.md>), [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>)

Tags: [coding](<https://devfeed.tech/tags/coding.md>), [fun](<https://devfeed.tech/tags/fun.md>), [learn](<https://devfeed.tech/tags/learn.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>)

### AI overview

The article announces Advent of Spin 2024, a coding challenge intended to help people learn Spin and serverless WebAssembly.

### Source excerpt

Announcing Advent of Spin 2024 - A fun coding challenge to learn Spin and Serverless WebAssembly

## Summer of Spin 2024

DevFeed: [Summer of Spin 2024](<https://devfeed.tech/articles/summer-of-spin-2024-15390.md>)

Original publisher: [Read original article](<https://www.fermyon.com/blog/summer-of-spin-2024>)

Author: Jasmine Mae Alindayu

Published: 2024-07-23T12:00:00Z

Content type: article

Language: en

Sources: [Fermyon - Experience the next wave of cloud computing.](<https://devfeed.tech/sources/fermyon-experience-the-next-wave-of-cloud-computing.md>)

Topics: [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [challenges](<https://devfeed.tech/tags/challenges.md>), [coding](<https://devfeed.tech/tags/coding.md>), [fun](<https://devfeed.tech/tags/fun.md>)

### AI overview

Fermyon's Summer of Spin 2024 is a Spin-off of Advent of Spin featuring fun coding challenges.

### Source excerpt

Fermyon's Summer of Spin is a Spin-off on the Advent of Spin, consisting of fun coding challenges!

## Advent of Spin 2023 Wrap-up

DevFeed: [Advent of Spin 2023 Wrap-up](<https://devfeed.tech/articles/advent-of-spin-2023-wrap-up-15153.md>)

Original publisher: [Read original article](<https://www.fermyon.com/blog/advent-of-spin-2023-wrap>)

Author: Sohan Maheshwar

Published: 2024-01-17T12:00:00Z

Content type: article

Language: en

Sources: [Fermyon - Experience the next wave of cloud computing.](<https://devfeed.tech/sources/fermyon-experience-the-next-wave-of-cloud-computing.md>)

Topics: [coding](<https://devfeed.tech/topics/coding.md>), [Serverless](<https://devfeed.tech/topics/serverless.md>), [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>)

Tags: [coding](<https://devfeed.tech/tags/coding.md>), [fun](<https://devfeed.tech/tags/fun.md>), [learn](<https://devfeed.tech/tags/learn.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>)

### AI overview

A wrap-up of Advent of Spin 2023, described as a coding challenge for learning Spin and serverless WebAssembly.

### Source excerpt

Announcing Advent of Spin 2023 - A fun coding challenge to learn Spin and Serverless WebAssembly

## Announcing Advent of Spin 2023

DevFeed: [Announcing Advent of Spin 2023](<https://devfeed.tech/articles/announcing-advent-of-spin-2023-15152.md>)

Original publisher: [Read original article](<https://www.fermyon.com/blog/advent-of-spin-2023>)

Author: Sohan Maheshwar

Published: 2023-11-28T17:00:00Z

Content type: article

Language: en

Sources: [Fermyon - Experience the next wave of cloud computing.](<https://devfeed.tech/sources/fermyon-experience-the-next-wave-of-cloud-computing.md>)

Topics: [Code Challenge](<https://devfeed.tech/topics/code-challenge.md>), [Serverless](<https://devfeed.tech/topics/serverless.md>), [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [coding](<https://devfeed.tech/tags/coding.md>), [fun](<https://devfeed.tech/tags/fun.md>), [learn](<https://devfeed.tech/tags/learn.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>)

### AI overview

The article announces Advent of Spin 2023, a coding challenge intended to help participants learn Spin and serverless WebAssembly.

### Source excerpt

Announcing Advent of Spin 2023 - A fun coding challenge to learn Spin and Serverless WebAssembly

## Random Animating Pie Button

DevFeed: [Random Animating Pie Button](<https://devfeed.tech/articles/random-animating-pie-button-32075.md>)

Original publisher: [Read original article](<https://www.maiatoday.net/p/random-animating-pie-button/>)

Published: 2021-06-16T21:36:11Z

Content type: tutorial

Language: en

Sources: [maiatoday](<https://devfeed.tech/sources/maiatoday.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Canvas](<https://devfeed.tech/topics/canvas.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [animate](<https://devfeed.tech/tags/animate.md>), [canvas](<https://devfeed.tech/tags/canvas.md>), [code](<https://devfeed.tech/tags/code.md>), [color](<https://devfeed.tech/tags/color.md>), [component](<https://devfeed.tech/tags/component.md>), [compose](<https://devfeed.tech/tags/compose.md>), [custom](<https://devfeed.tech/tags/custom.md>), [data-class](<https://devfeed.tech/tags/data-class.md>), [exploring](<https://devfeed.tech/tags/exploring.md>), [fun](<https://devfeed.tech/tags/fun.md>), [functions](<https://devfeed.tech/tags/functions.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [random](<https://devfeed.tech/tags/random.md>), [val](<https://devfeed.tech/tags/val.md>), [var](<https://devfeed.tech/tags/var.md>)

### AI overview

A Jetpack Compose sample demonstrates a custom pie-chart component that draws with Canvas and animates to a random percentage when a button is clicked.

### Source excerpt

I am exploring animations with small sampler functions using Jetpack Compose. This one is a custom component that draws a little pie chart. It will animate a random pie value on the click of the button. data class PieData( val foreground: Color = Color.White, val strokeWidth: Dp = 4.dp, val percentage: Float ) @Composable fun PieStatus( modifier: Modifier = Modifier, pieData: PieData ) { var animationPlayed by remember { mutableStateOf(false) } val currentPercentage = animateFloatAsState( targetValue = if (animationPlayed) pieData.percentage else 0f, animationSpec = tween(1000) ) LaunchedEffect(key1 = true) { animationPlayed = true } Canvas( modifier = modifier ) { val canvasWidth = size.width val canvasHeight = size.height drawCircle( color = pieData.foreground, center = Offset(x = canvasWidth / 2, y = canvasHeight / 2), radius = canvasWidth / 2 - pieData.strokeWidth.toPx(), style = Stroke(width = pieData.strokeWidth.toPx()) ) val arcPadding = pieData.strokeWidth.toPx() * 2 drawArc( color = pieData.foreground, startAngle = -90f, sweepAngle = currentPercentage.value * 360, useCenter = true, topLeft = Offset(arcPadding, arcPadding), size = Size(size.width - (arcPadding * 2f), size.height - (arcPadding * 2f)) ) } } code

## Google announces Logica, a reusable language for data queries

DevFeed: [Google announces Logica, a reusable language for data queries](<https://devfeed.tech/articles/google-announces-logica-organizing-your-data-queries-making-them-universally-reusable-and-fun-29477.md>)

Original publisher: [Read original article](<http://lambda-the-ultimate.org/google-announces-logica>)

Published: 2021-04-29T14:50:27Z

Content type: article

Language: en

Sources: [Lambda the Ultimate](<https://devfeed.tech/sources/lambda-the-ultimate.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Google](<https://devfeed.tech/topics/google.md>), [data](<https://devfeed.tech/topics/data.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [fun](<https://devfeed.tech/tags/fun.md>), [google](<https://devfeed.tech/tags/google.md>), [logic](<https://devfeed.tech/tags/logic.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [programming](<https://devfeed.tech/tags/programming.md>), [sql](<https://devfeed.tech/tags/sql.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

The article discusses Logica, a Datalog-like language developed internally at Google for organizing data queries into small, understandable, reusable pieces of logic. It contrasts Logica's workflow with SQL, which has limited support for packages, imports, and higher-level function composition.

### Source excerpt

You can read more about it at the Google Open Source blog post, Logica: organizing your data queries, making them universally reusable and fun. They advocate for datalog-like language they developed internally at Google. The reason? Good programming is about creating small, understandable, reusable pieces of logic that can be tested, given names, and organized into packages which can later be used to construct more useful pieces of logic. SQL resists this workflow. Although you can encapsulate certain repeated computations into views and functions, the syntax and support for these can vary among implementations, the notions of packages and imports are generally nonexistent, and higher-level constructions (e.g. passing a function to a function) are impossible.

## LAMBDA: An Excel worksheet function for defining new functions

DevFeed: [LAMBDA: An Excel worksheet function for defining new functions](<https://devfeed.tech/articles/lambda-the-ultimate-excel-worksheet-function-29484.md>)

Original publisher: [Read original article](<http://lambda-the-ultimate.org/node/5621>)

Published: 2021-01-27T03:27:09Z

Content type: article

Language: en

Sources: [Lambda the Ultimate](<https://devfeed.tech/sources/lambda-the-ultimate.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [data](<https://devfeed.tech/topics/data.md>), [decision-making](<https://devfeed.tech/topics/decision-making.md>), [Microsoft](<https://devfeed.tech/topics/microsoft.md>)

Tags: [data](<https://devfeed.tech/tags/data.md>), [decision-making](<https://devfeed.tech/tags/decision-making.md>), [excel](<https://devfeed.tech/tags/excel.md>), [fun](<https://devfeed.tech/tags/fun.md>), [function](<https://devfeed.tech/tags/function.md>), [lambda](<https://devfeed.tech/tags/lambda.md>), [lambda-calculus](<https://devfeed.tech/tags/lambda-calculus.md>), [microsoft](<https://devfeed.tech/tags/microsoft.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>)

### AI overview

The post describes LAMBDA, an Excel worksheet function that lets users define new functions. It addresses limitations of Excel's formula language, including its previous lack of user-defined functions and support for only scalar values.

### Source excerpt

Post by Andy Gordon and Simon Peyton Jones on LAMBDA giving Excel users the ability to define functions. Ever since it was released in the 1980s, Microsoft Excel has changed how people organize, analyze, and visualize their data, providing a basis for decision-making for the millions of people who use it each day. It's also the world's most widely used programming language. Excel formulas are written by an order of magnitude more users than all the C, C++, C#, Java, and Python programmers in the world combined. Despite its success, considered as a programming language Excel has fundamental weaknesses. Over the years, two particular shortcomings have stood out: (1) the Excel formula language really only supported scalar values--numbers, strings, and Booleans--and (2) it didn't let users define new functions. Until now.

## Applications of Blockchain to Programming Language Theory

DevFeed: [Applications of Blockchain to Programming Language Theory](<https://devfeed.tech/articles/applications-of-blockchain-to-programming-language-theory-29480.md>)

Original publisher: [Read original article](<http://lambda-the-ultimate.org/ltu-blockchain-plt-thinktank>)

Published: 2020-04-13T14:38:12Z

Content type: opinion

Language: en

Sources: [Lambda the Ultimate](<https://devfeed.tech/sources/lambda-the-ultimate.md>)

Topics: [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [smart contract](<https://devfeed.tech/topics/smart-contract.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>)

Tags: [blockchain](<https://devfeed.tech/tags/blockchain.md>), [bug](<https://devfeed.tech/tags/bug.md>), [distributed-computing](<https://devfeed.tech/tags/distributed-computing.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [fun](<https://devfeed.tech/tags/fun.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [semantics](<https://devfeed.tech/tags/semantics.md>), [smart-contract](<https://devfeed.tech/tags/smart-contract.md>), [transactions](<https://devfeed.tech/tags/transactions.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

A forum discussion explores how blockchain could contribute to programming language theory, practice, and developer productivity. It considers mutual and common knowledge, distributed computing fabrics, third-party transactions, and the verification and security of smart contracts, including an Ethereum smart-contract logic bug.

### Source excerpt

Let's talk about Blockchain. Goal is to use this forum topic to highlight its usefulness to programming language theory and practice. If you're familiar with existing research efforts, please share them here. In addition, feel free to generate ideas for how Blockchain could improve languages and developer productivity. As one tasty example: Blockchain helps to formalize thinking about mutual knowledge and common knowledge, and potentially think about sharing intergalactic computing power through vast distributed computing fabrics. If we can design contracts in such a way that maximizes the usage of mutual knowledge while minimizing common knowledge to situations where you have to "prove your collateral", third-party transactions could eliminate a lot of back office burden. But, there might be benefits in other areas of computer science from such research, as well. Some language researchers, like Mark S. Miller, have always dreamed of Agoric and the Decades-Long Quest for Secure Smart Contracts. Some may also be aware that verification of smart contracts is an important research area, because of the notorious theft of purse via logic bug in an Ethereum smart contract.

## Echo, Threat Modeling and Privacy

DevFeed: [Echo, Threat Modeling and Privacy](<https://devfeed.tech/articles/echo-threat-modeling-and-privacy-36768.md>)

Original publisher: [Read original article](<https://shostack.org/blog/echo-threat-modeling-and-privacy/>)

Author: Adam

Published: 2019-12-30T00:00:00Z

Content type: opinion

Language: en

Sources: [Shostack & Friends Blog](<https://devfeed.tech/sources/shostack-friends-blog.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>)

Tags: [fun](<https://devfeed.tech/tags/fun.md>), [podcast](<https://devfeed.tech/tags/podcast.md>), [privacy](<https://devfeed.tech/tags/privacy.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

The author discusses being featured on KUOW's Primed, reflecting on privacy, threat modeling, and how the Elevation of Privilege game works for non-technical participants.

### Source excerpt

I'm featured in (local NPR Affiliate) KUOW's Primed: Season 3, Episode 8.

## Design for Learning

DevFeed: [Design for Learning](<https://devfeed.tech/articles/design-for-learning-28398.md>)

Original publisher: [Read original article](<https://eaf4.com/design-for-learning/>)

Author: Edward Faulkner

Published: 2018-05-08T05:58:47Z

Content type: opinion

Language: en

Sources: [Edward Faulkner](<https://devfeed.tech/sources/edward-faulkner.md>)

Topics: [Learning](<https://devfeed.tech/topics/learning.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Software](<https://devfeed.tech/topics/software.md>), [Demo](<https://devfeed.tech/topics/demo.md>)

Tags: [demo](<https://devfeed.tech/tags/demo.md>), [fun](<https://devfeed.tech/tags/fun.md>), [learning](<https://devfeed.tech/tags/learning.md>), [software](<https://devfeed.tech/tags/software.md>), [talk](<https://devfeed.tech/tags/talk.md>), [videos](<https://devfeed.tech/tags/videos.md>)

### AI overview

A talk about how understanding learning helps people build better software, accompanied by an orbital mechanics demo.

### Source excerpt

This is a wide-ranging talk on learning and why you need to understand how people learn if you want to build good software. Plus I build a fun orbital mechanics demo. Presented at EmberNYC, March 2018.

## Prime numbers and universe factories

DevFeed: [Prime numbers and universe factories](<https://devfeed.tech/articles/prime-numbers-and-universe-factories-27097.md>)

Original publisher: [Read original article](<https://andrea.corbellini.name/2015/02/15/prime-numbers-and-universe-factories/>)

Author: andreacorbellini

Published: 2015-02-15T16:54:00Z

Content type: opinion

Language: en

Sources: [Andrea Corbellini](<https://devfeed.tech/sources/andrea-corbellini.md>)

Topics: [ASCII](<https://devfeed.tech/topics/ascii.md>)

Tags: [ascii](<https://devfeed.tech/tags/ascii.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [fun](<https://devfeed.tech/tags/fun.md>), [math](<https://devfeed.tech/tags/math.md>), [numbers](<https://devfeed.tech/tags/numbers.md>), [xkcd](<https://devfeed.tech/tags/xkcd.md>)

### AI overview

The article explores how prime numbers can encode ASCII text, inspired by an XKCD comic. The author searches prime numbers for English messages and discusses the possibility of finding longer texts or software encoded this way, while noting uncertainty about some primality results.

### Source excerpt

I'm a XKCD fan, and I look it up regularly. There's a comic that I particularly enjoyed: Pi Equals. The comic Pi Equals, from XKCD.com (CC-BY-NC 2.5). Well, it appears that Randall was right in that there's a help message hidden somewhere. And I just found it in a prime number: 245178888024581899558766786108789912235672909204719666025638877624752119760547413887830514281649480308707369249 That number corresponds to the ASCII encoding ...

## The Bellic School of Management Training

DevFeed: [The Bellic School of Management Training](<https://devfeed.tech/articles/the-bellic-school-of-management-training-38762.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2008/09/bellic-school-of-management-training.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2008-09-29T06:08:00Z

Content type: opinion

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [simulator](<https://devfeed.tech/topics/simulator.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [dev](<https://devfeed.tech/tags/dev.md>), [fun](<https://devfeed.tech/tags/fun.md>), [management](<https://devfeed.tech/tags/management.md>), [simulator](<https://devfeed.tech/tags/simulator.md>)

### AI overview

A humorous commentary presents Grand Theft Auto IV as an unconventional management-training simulator, comparing its missions with corporate training and the author's experience as a software development manager.

### Source excerpt

I haven't been blogging much this summer. Mostly it's because all my free time has been spent engaged in an important research project called "What Would Niko Bellic Do?" I've been enrolled in a high-quality Management Scenario Simulator with the unconventional name "Grand Theft Auto IV", probably some sort of inside joke, and I've been going through all its Developer Management training courses. You know how these corporate training videos go, right? They set up some contrived scenario with actors you're supposed to identify with, and the actors have inane discussions about sexual harrassment or bribing government officials or stealing company equipment, and then you're asked to answer questions about whether it was OK for Bob to grab Sue's ass in that particular edge-case scenario. Seriously, I just took one of these courses at work. You'd think they're a joke, but no, they're considered Important Employee Training. Well, this Niko Bellic course isn't much different, just more fun. I finished the final management training session a couple weeks ago. And by truly amazing coincidence, right after I finished the final training mission, my blog made it into the Top 100 Blogs for Development Managers (Q3 2008). I personally thought that was a little weird, seeing as I've never written explicitly about software development management. Unless of course you count that one time where I wrote about how you don't need them. BUT, now that I've finished all the Niko Bellic Advanced Management Training courses, I'm officially a Certified Expert Dev Manager, capable of not only handling unforseen tricky management situations, but also teaching others about them! So now I think my blog being in that list is totally justified. All the training in the simulator was top-notch. A lot of it was ground I'd covered before in my days as an actual dev manager. I already knew how to react, for example, when my mafia boss told me he'd been betrayed by my previous manager, and I had to take