I think Kotlin is a better alternative to Go Lang for building service side rendered websites because Ktor let's you create HTML without writing XML.
Tom Delalande
I think that Kotlin is great way to build server side rendered websites with Tailwind and HTMX. This is because of it's convenient features like string template-ing, extension functions and trailing lambda functions.
I think Kotlin is a better alternative to Go Lang for building service side rendered websites because Ktor let's you create HTML without writing XML.
I think Kotlin is a better alternative to Go Lang for building service side rendered websites because Ktor let's you create HTML without writing XML.
updated 8 months ago
I think Kotlin is a better alternative to Go Lang for building service side rendered websites because Ktor let's you create HTML without writing XML.
This is a new format so I'm interest to hear your feedback. I had a lot of fun studying this project.
Lichess: lichess.org
lichess.org/patron
References
reddit.com/r/chess/comments/7fnc3b/i_started_lichessorg_as_a_hobby_side_project_ama
reddit.com/r/chess/comments/mpasyl/i_started_lichess_ask_me_anything
lichess.org/@/thibault/blog
lichess.org/@/lichess/blog/developer-update-275-improved-game-compression/Wqa7GiAA
lichess.org/@/thibault/blog/starting-from-scratch/NITT84rC
docs.google.com/spreadsheets/d/1Si3PMUJGR9KrpE5lngSkHLJKJkb0ZuI4/preview
youtube.com/watch?v=LZgyVadkgmI&pp=ygUSbGljaGVzcyBkZXYgc3RyZWFt
Timestamps
0:00 - Intro
0:29 - Story to kill retention
2:06 - Lichess vs Chess.com
3:51 - Scala
6:20 - Play Framework
7:00 - MongoDB
9:16 - Snabbdom
11:17 - Architecture
15:47 - Flutter
16:01 - Developer Mindset
18:21 - Openness
18:45 - Key Takeaways
21:51 - Lichess Patreon
Please subscribe, as a human I have been conditioned to care about base 10 numbers and my brain will release happy chemicals when I reach the next one.
Some useful links:
- maplant.com/2020-04-25-Writing-a-Simple-Garbage-Collector-in-C.html
- en.wikipedia.org/wiki/Tracing_garbage_collection
- en.wikipedia.org/wiki/Virtual_memory#Paged_virtual_memory
- en.wikipedia.org/wiki/Garbage_collection_(computer_science)
- en.wikipedia.org/wiki/Tagged_pointer
- https://www.cs.princeton.edu/~appel/papers/45.pdf
github.com/thebrowsercompany/windows-samples
github.com/readdle/swift-android-buildtools
https://skip.tools/
github.com/android/compose-samples
developer.apple.com/tutorials/sample-apps
This video is for entertainment purposes only, you probably shouldn't do as I say or as I do.
I wanted to do something a little more significant than a 'Hello world' in Assembly so I decided to tackle the game of life. I took the opportunity to try and recreate some of my favourite programs in low level languages. Including a Vi clone in C and a file manager in C++.
Level 1: Decision tree
Level 2: State machine
Level 3: Mathematical algorithms
Level 4: Neural networks
Level 5: General Neural networks
I think we tend to focus too much on ChatGPT instead of implementing useful AI systems. AI can be refreshingly simple and to prove that I implemented a short demo for each of the mentioned levels using pure HTML, CSS and Java-script (with no dependencies).
Large Language Models (LLM) are amazing, but there is no universal solution in tech.
This is a more beginner friendly video than usual, let me know what you think!
Basic opaque session tokens are usually the way to go. Using stateless tokens has many added costs, while not providing that many benefits in practice.
Music: youtu.be/jUkI7Ixiqgk
Let's talk about authentication. I would like to show how easy it is to implement authentication with 3 different methods. Password, Oauth2 (or social login) and passkeys. They all have their benefits and drawbacks but hopefully this video is a fun way to understand how the systems powering authentication actually work.
I've also made a demo little website to help show how registration and sign in works. It's just a toy project so hopefully it doesn't break under the pressure.
Full disclosure: the demo website is hosted on the cloud. My little MacBook didn't too well with the traffic from the last video so I'm committing this cardinal sin until I upgrade my home server.
I'm sorry :( I really liked the riff I wrote for the intro since it has a time signature of 7/4 but I got carried away a bit...
Let's spin up a server a simpler way.I'm experimenting with some background music, let me know what you think.In this video I will be showing how to use fundamentals to spin up a server, replacing cloud providers like AWS, Google Cloud Provider and Microsoft Azure with Linux, Docker and Git. For many applications, the tools we use are grossly over-engineered. I'm trying to force myself to rethink my approach and use simpler tools. Hosting this server is part of that.
I'm experimenting with some background music, let me know what you think.
In this video I will be showing how to use fundamentals to spin up a server, replacing cloud providers like AWS, Google Cloud Provider and Microsoft Azure with Linux, Docker and Git. For many applications, the tools we use are grossly over-engineered. I'm trying to force myself to rethink my approach and use simpler tools. Hosting this server is part of that.
I built a prototype of an application remedy these frustrations. And also explore some existing solutions to fix similar problem using tools like Postgres, SQLite, HTTPie, Bash and JQ.
I couldn't decide which language I preferred so I made a TCP server that does some basic file processing in all of them. Using no dependencies where applicable.
I did this using Rust, Go (or Golang), Crystal, Kotlin, Julia, Zig, Nim, Gleam, Swift and Dart.
Just for fun, I gave each language a 1 to 5 score in the categories of tooling, safety, readability and ergonomics.
Just btw this is an incredibly biased video so please don't take anything personally.
Thank you so much for taking the time to watch.
Timestamps
0:00 Problem space
0:40 CRUD implementation
1:12 Issues
1:48 Event sourcing
3:02 CQRS
3:34 Aggregate
4:05 Advantages
4:40 Disadvantages
5:08 Exit
Thank you so much for taking the time to watch.
Github Writeup on Markdown issues: github.github.com/gfm
Timestamps:
0:00 - What is Markdown?
0:11 - The problem with Markdown
0:42 - What is AsciiDoc?
1:00 - Embedded source code
1:30 - Exporting
1:47 - Better tables
1:57 - Diagram plugins
2:17 - More features
youtube.com/channel/UCYuQjtwffrSIzfswH3V24mQ?sub_confirmation=1
This video is meant for Typescript developer interested in Kotlin. I cover the syntax, tooling and create a general project. If you're on the fence about trying Kotlin, I hope that this can be helpful.
Thank you so much for taking the time to watch
Github:
github.com/tom-delalande/learning-kotlin-typescript
Twitter:
twitter.com/tomdelalande_
Discord
discord.gg/Cg66xQ8KgP
Twitch:
twitch.tv/tomdelalande
Timestamps
0:00 - Agenda
0:32 - Advantages
1:32 - Syntax
3:28 - Code Editor
4:22 - Build & Dependency Management
6:47 - Web Server
9:07 - Outro
youtube.com/channel/UCYuQjtwffrSIzfswH3V24mQ?sub_confirmation=1
I rebuilt the same 5 pages with React and HTMX (Kotlin) to see how they compare. They are surprisingly similar.
Thank you so much for taking the time to watch.
Twitter:
twitter.com/tomdelalande_
Discord
discord.gg/Cg66xQ8KgP
Twitch:
twitch.tv/tomdelalande
Github
github.com/tom-delalande/learning-htmx-vs-react
Timestamps
0:00 Intro
0:13 Overview
1:14 Tabs
2:13 Updating another component
3:17 Animations
4:22 Asynchronous Polling
5:06 Chat
6:30 Summary
twitch.tv/tomdelalande
Discord
discord.gg/Cg66xQ8KgP
Convert Website
tinyclub.io/kotlin-html
Converter Github
github.com/tom-delalande/html-to-kotlin-converter
On the next step in my ever-going quest to avoid Javascript no matter the cost. I show you how easy it is to compile Kotlin code to Javascript.
0:00 Intro
0:36 Why I needed to compile Kotlin to JS
1:46 Compiling Kotlin to JS
3:52 Example of when I chose NOT to use this
4:19 HTML to Kotlin Converter Example
4:46 Final thoughts
HTMZ: leanrada.com/htmz
HTMX: htmx.org
Original HTMX video: youtu.be/9OYn48xBzOY
HTMX + Poker video: youtu.be/c7eacNAuGUw
The Kotlin server side rendering adventures continues in this latest installment. HTMX can be replaced by 1 line of Javascript, the author calls it HTMZ. This is very cool.
0:00 intro
0:18 state of web development
0:56 too BIG
1:06 htmz
1:54 converting from htmx to htmz
3:20 explanation
3:54 final thoughts
0:00 - What is Pkl
0:24 - Why I'm interested
1:10 - Use case
1:38 - Template example
2:21 - Configuration example
2:45 - What I preferred about TOML
3:13 - Website example
3:28 - Parsing in Kotlin
3:47 - What I don't like (additional complexity)
4:16 - Final thoughts
Obviously you should always test changes locally before checking them in, and this won't work for many cases. Like any changes to builds, infra or database migration. But feature toggles are an amazing, simple and underutilized tool in software engineering.
I'm pushing it in a weird direction today by building a server side rendered multiplayer game. I'm very happy with the result.
I enjoyed the user experience of using HTMX websocket and HTMX polling. This is a very nice developer experience that lets me build good looking websites quickly. I built this before I started using Tailwind UI but that may be something I look more into in the future.
Software engineering is completely changing and I look forward to a future where I don't have to write JavaScript. Which may be sooner than I expect -- I still need to look into KotlinJS to see what it can actually do.
0:00 - Poker demo
0:53 - Queue demo
1:07 - Explanation
3:03 - Main menu UI
3:37 - Main menu server
4:13 - Queue UI
4:29 - Queue endpoint
4:43 - Game UI
6:48 - Game model
8:00 - Game web-socket
8:44 - Actions menu
9:36 - Final thoughts
I'm using Ktor HTML to render server side HTML. I create a custom HTMX style syntax to add Passkey attributes.
0:00 - Passkeys explanation
0:40 - Demo
0:51 - Authentication explanation
4:40 - Documentation
5:25 - Server side code
8:07 - Client side code
10:19 - Fin