MrJakob
MrJakob
  • Видео 83
  • Просмотров 71 465
Beginnings of a Tetris Clock | Rust Terminal Tetrominos
In this video, I'll be live coding the first part of a unique terminal application that displays a clock using Tetris-like blocks (tetrominos) together with all of you. We are building a graphical application right in the terminal, rather than the usual graphical user interface.
I'll be using my self-developed PixelLoop Engine, which we've explored in previous videos, to bring this terminal-based project to life.
In this initial step, we'll be setting up the project and implementing the creation and downfall animation of the tetrominos, as well as collision checking to stop them when they reach the bottom of the screen.
Join me on this Rust programming journey! Together, we'll explore topics...
Просмотров: 234

Видео

Scripting with Rust: Build a Daily Driver Theme Switcher for Your CLI
Просмотров 2 тыс.16 часов назад
Need to quickly write a script for your daily tasks? Want to leverage the power of Rust to do it? You’re in the right place. In this video, we’ll explore how to write scripts in Rust using a handy tool called [Scriptisto](github.com/igor-petruk/scriptisto). Together, we’ll develop a practical example that addresses a common need in my daily work: a Rust script that toggles the themes of my esse...
Mastering Menu Bar Apps: Using Rust and Tauri for macOS Development!
Просмотров 1,2 тыс.14 дней назад
Welcome back to our RetroPulse Mod player series! In this video, we’ll focus on creating a macOS menu extra (also known as a menu bar app) using Tauri. This type of application will display a small icon in the macOS menu bar, providing users with quick access to the app's controls and features. We’ll walk through the process of setting up the menu extra, ensuring that the icon remains in the me...
Modern marquee scrolling text | React & CSS Animation for our Retropulse player
Просмотров 21814 дней назад
In the previous video, we established a robust communication channel between our Rust backend and the web frontend, allowing us to push real-time track information to our application. Now, it's time to enhance the user experience even further by implementing a dynamic display for artist and song information. In this video, I'll guide you through the process of reimplementing the deprecated marq...
Building a Mod Player with Tauri: The update dilemma!
Просмотров 61521 день назад
In the previous video, we successfully created a UI for our RetroPulse Mod player using Tailwind and React. However, our application is still missing a crucial piece - a way to push data from the Rust backend to our web based frontend. In this video, I'll show you how we can establish a seamless communication channel between the two, allowing us to push information about the currently playing t...
Rapid UI Development: Design a MOD Player with Tauri, Tailwind & Rust
Просмотров 57928 дней назад
Welcome to Part 3 of our live coding series, where we dive deeper into developing a MOD/Tracker player using the libopenmpt library with Rust and the Tauri framework! In this episode, we'll focus on creating the foundation for the player interface, utilizing JSX/TSX along with Tailwind CSS and shadcn components. Join me as we explore the process of designing an intuitive and responsive UI for o...
Async Tauri Commands: Building a Robust, Multithreaded RetroPulse Player
Просмотров 532Месяц назад
In the previous video, we got the initial RetroPulse Mod player up and running. However, we quickly ran into an issue - as soon as we started playing audio, the main application thread became blocked, preventing us from responding to user input or performing any other tasks. In this video, I'll show you how we can solve this problem by creating a dedicated, encapsulated Player component that ru...
Revive Retro Tunes - Using tauri and libopenmpt to write a mod player in rust
Просмотров 613Месяц назад
Music lovers, get ready for an exciting new project - in this #LiveCoding video, I'm kicking off the development of "#RetroPulse", a minimalist #ModPlayer built right into your menu bar! #TrackerMusic files, also known as Mod files, were hugely popular in the 90s demoscene and as part of all the games of the #ChipTune era. Using a powerful tech stack of #RustLang, TypeScript/Next.js, and Tauri,...
Firework Particle Engine in the Terminal - Thank you for 1000 subscribers
Просмотров 1,6 тыс.Месяц назад
I've hit 1000 subscribers, and it's time to celebrate with a bang! 🎉 In this special episode, I am lighting up the terminal with pixelart fireworks using our PixelLoop rendering engine. 🔥 What's in store: * A heartfelt thank you to this amazing community * An exclusive tour of the fireworks display particle engine * Insights into PixelLoop's capabilities and the coding process 👀 Spot any intere...
Pixel Rendering in the Terminal: Creating a Breakout Game in Rust | PixelLoop Engine by
Просмотров 641Месяц назад
Watch as we live code a twist on the classic Breakout game, right in your terminal! Shell Smash brings arcade action to the command line using our custom PixelLoop engine. In this video, we'll take you through the entire process of creating Shell Smash from scratch, including: - Setting up the game structure - Implementing ball physics - Creating the paddle and controls - Designing breakable "s...
Let's optimize our Terminal renderer by 10000%
Просмотров 4,1 тыс.Месяц назад
Get ready to supercharge your coding skills with our latest tutorial! In this follow-up session, we take the PixelLoop engine's rendering capabilities to an astonishing new level-making it a staggering 10,000% faster! Join me as we dive deeper into the world of terminal rendering, applying powerful optimizations to the code we developed in the previous video. In this session, you'll discover ho...
Pixel Perfection Meets Terminal: Rendering with Unicode and ANSI
Просмотров 4 тыс.2 месяца назад
Prepare to be amazed by this cutting-edge coding tutorial! In this live-coding session, we're taking the PixelLoop engine to new heights, bringing your pixel-perfect creations to life right in your terminal. Dive into the fascinating world of ANSI escape sequences and Unicode characters as we craft a state-of-the-art output driver for stunning terminal rendering. By the end of this tutorial, yo...
Unicode & ANSI Alchemy: Turn Text into Images in Your Console
Просмотров 9292 месяца назад
Unleash the power of ASCII art with this mind-bending coding tutorial! In this live-coding session, you'll learn how to create an amazing image-to-text converter using ANSI codes and Unicode characters, bringing your favorite images to life right in your terminal. This fascinating technique allows you to display any image using nothing but text, perfect for retro computing enthusiasts and comma...
Lanczos Image Resizing in Rust from scratch
Просмотров 5852 месяца назад
Lanczos Image Resizing in Rust from scratch
Use C libraries in Rust from scratch | stb_image_write
Просмотров 1,1 тыс.2 месяца назад
Use C libraries in Rust from scratch | stb_image_write
Matrix Waterfall effect in your Terminal! In Rust!
Просмотров 1,5 тыс.2 месяца назад
Matrix Waterfall effect in your Terminal! In Rust!
Shifting Sands 🏖️🎨 Adding Random Color for a Natural Look!
Просмотров 3783 месяца назад
Shifting Sands 🏖️🎨 Adding Random Color for a Natural Look!
Safely using Unsafe Rust: Optimizing our Color Implementation
Просмотров 4793 месяца назад
Safely using Unsafe Rust: Optimizing our Color Implementation
How to simulate falling Sand in rust: A pixel game engine adventure
Просмотров 1,3 тыс.3 месяца назад
How to simulate falling Sand in rust: A pixel game engine adventure
Abstract the Drawing Code: Future-Proofing out Pixel Loop Engine
Просмотров 8433 месяца назад
Abstract the Drawing Code: Future-Proofing out Pixel Loop Engine
Building a Rust Pixel Drawing Engine: Abstract Update/Render Loop Tutorial
Просмотров 9584 месяца назад
Building a Rust Pixel Drawing Engine: Abstract Update/Render Loop Tutorial
Howto create a X86 JIT Compiler in Rust | Compiling Brainf*ck to Machine Code
Просмотров 5134 месяца назад
Howto create a X86 JIT Compiler in Rust | Compiling Brainf*ck to Machine Code
Writing a X86 JIT - Initial Experiments
Просмотров 3594 месяца назад
Writing a X86 JIT - Initial Experiments
Parsing and executing Brainf*ck from Scratch
Просмотров 1524 месяца назад
Parsing and executing Brainf*ck from Scratch
Parsing with Rust - Epic Journey
Просмотров 6675 месяцев назад
Parsing with Rust - Epic Journey
Dithering explained with Rust CLI: Coding an Error Diffusion Algorithm
Просмотров 2545 месяцев назад
Dithering explained with Rust CLI: Coding an Error Diffusion Algorithm
Demystifying the Power of Unicode: Fractional Progress Bars in Rust CLI
Просмотров 1,7 тыс.5 месяцев назад
Demystifying the Power of Unicode: Fractional Progress Bars in Rust CLI
Level Up Your CLI: Building a Stylish Progress Bar in Rust!
Просмотров 3,1 тыс.5 месяцев назад
Level Up Your CLI: Building a Stylish Progress Bar in Rust!
Sync XKCD in Rust: Shockingly Simple!
Просмотров 2565 месяцев назад
Sync XKCD in Rust: Shockingly Simple!
Setting up Yew and TailwindCSS - 001 - StableDiffusion powered ePaper
Просмотров 327Год назад
Setting up Yew and TailwindCSS - 001 - StableDiffusion powered ePaper

Комментарии

  • @Ozy_Viking
    @Ozy_Viking 3 часа назад

    Love it!!!

  • @two_number_nines
    @two_number_nines 5 дней назад

    scriptisto writes to disk and wipes/hides the temporary executable. it doesn't do much. just use proper scripting languages or script mode compilers. tcc for example can run .c as a script without wearing down your disk

    • @MrJakob
      @MrJakob 5 дней назад

      Thank you for your comment! I appreciate your feedback. Just to clarify, Scriptisto doesn't recompile every time; it only compiles when the source file has changed. This means it functions similarly to compiling an executable-once you've made changes, you can use that executable without additional recompilation, which helps reduce disk wear. As someone who frequently works with both scripting and compiled languages, I see the advantages and disadvantages of each. This project is an interesting attempt to merge the two worlds. Is it perfect? Perhaps not. But does it work? Absolutely! I could have chosen to write my tool in a traditional scripting language or as a standard compiled Rust project, but I found great joy in exploring something new. Ultimately, the question of whether that was the best choice is subjective. As I mentioned in another comment, it's always a good thing to use the right tool for your specific problem. Therefore another language or environment might be better suitable for your needs and that is perfectly fine. I simply wanted to experiment with this solution to expand our all tool belt by one further tool. I wasn't aware that tcc has a direct execution mode-I'm curious to learn more about it! Is it a true interpreter, or does it compile and execute directly? I'll definitely look into that. Thanks for bringing it to my attention!

    • @two_number_nines
      @two_number_nines 5 дней назад

      @@MrJakob Im overly-pedantic on reducing my disk writes, so I've been torturing chatbots on how to do everything without writing files to disk. This is how I've learned about tcc with the -run flag. AFAIK tcc -run doesn't write-n-hide, but keeps the compiled "file" in memory Perl style. The change-only-recompile functionality is a good optimization from scriptisto, but it makes me want to try making something similar to scriptisto using ram-disk. Way too many programs deserve a ramdisk sandbox for their temporary junk.

    • @MrJakob
      @MrJakob 5 дней назад

      It's great to be mindful of disk usage, but I'm not sure that operating entirely in memory, as suggested regarding Scriptisto, is the best approach. The reason is that each time you want to run your script, it would need to compile the entire project along with all of its dependencies, especially in the case of Rust. Typically, ahead-of-time compilers function quite differently from just-in-time compilers or interpreters. If you use a standard ahead-of-time compiler to perform all its tasks in memory before executing the result, you may experience significant startup times before your program actually runs. Additionally, with Rust, the temporary files needed for compiling can be quite large, which would consume a lot of memory each time your script is run. Therefore, it seems more reasonable to compile the project once and then execute the cached binary repeatedly, as you will likely run it far more often than you will change it. Nevertheless, it's always a good idea to experiment and explore new ideas. If you believe you have a solid approach to creating an in-memory version of Scriptisto, I encourage you to go ahead and play around with that concept. Some remarkable developments have emerged from situations where someone claimed something wasn't feasible, only for another person to prove them wrong by making it happen.

    • @two_number_nines
      @two_number_nines 5 дней назад

      @@MrJakob yeah external storage by definition is for storing chunky data that takes a lot of time to re-compute if not stored. I would just use real scripting languages if compile time and memory use is a real problem, but nowadays ram is so cheap, that ram-disks are very practical. Compiled languages are meant to shine in writing once to disk and running the executable as a user, so any workaround to make them into a script will cost time and memory

    • @MrJakob
      @MrJakob 5 дней назад

      Tell that to Apple about the cheap memory! But jokes aside, you’re absolutely right. One should always choose the tool that best fits the problem at hand, whether it’s a scripting language, an ahead-of-time compiled language, or something in between. Personal preference and other factors also play a significant role in the decision. As for me, I’m quite happy with the outcome of my simple tool. Would I use Scriptisto and Rust for that again? I really can’t say. Nevertheless, experimenting with this different approach was quite enjoyable.

  • @alainQuicktec
    @alainQuicktec 5 дней назад

    soo underrated!

  • @severgun
    @severgun 5 дней назад

    too much work for small string manipulation.

    • @MrJakob
      @MrJakob 5 дней назад

      Thank you for your comment. What you see is just the beginning. As mentioned, tmux required a bit more work, particularly with the need to reload the configuration after changes. The version I'm using also parses my VS Code config JSON and adjusts the values based on the selected light or dark theme preferences. My main goal was to create an extendable solution for the future and to explore using Rust as a scripting language. If this approach doesn't align with your needs, that's perfectly fine. Everyone has their own methods for solving problems, and I encourage you to use what works best for you. I shared this to provide an alternative perspective that might be useful in certain situations, adding another option to your arsenal for when the need arises.

  • @rafaelsakatauskas1356
    @rafaelsakatauskas1356 6 дней назад

    This channel is a hidden gem, 1+ subscriber

    • @MrJakob
      @MrJakob 6 дней назад

      Thank you very much for the kind words.

  • @kamertonaudiophileplayer847
    @kamertonaudiophileplayer847 6 дней назад

    It's exactly what I did recently. So no bush or Cargo for me. Just rb.

  • @its_code
    @its_code 6 дней назад

    ❤❤❤❤❤😊

  • @needMoreInput
    @needMoreInput 7 дней назад

    Cool find. I like where this going.

    • @MrJakob
      @MrJakob 7 дней назад

      Thank you! I agree, Scriptisto is a fantastic piece of software. One feature I’ve noticed that could use improvement is the ability to automatically clean up the cache directory of build assets when the corresponding script files no longer exist. Implementing a feature like that could make for an interesting video on this channel in the future. Who knows?

  • @1miwq
    @1miwq 7 дней назад

    Loving the videos! What keyboard are you using? Seems satisfying.

    • @MrJakob
      @MrJakob 7 дней назад

      Thank you. I am using a Keychron Q1 Pro with Kailh Speed Bronze Switches. It’s a very sturdy and satisfying keyboard even though I am currently contemplating switching over to a split keyboard.

  • @tsalVlog
    @tsalVlog 7 дней назад

    light mode this early in the morning? savage. great video!

    • @MrJakob
      @MrJakob 7 дней назад

      At least it is only partially light mode. Most of the time I even remembered to mention the switch before hand so that you could avert your eyes, from this bright abomination 😅. Glad you liked the video 👍

  • @MaxJM711
    @MaxJM711 14 дней назад

    Love to see some more progress on your app Jakob! I got Nuxt working with shadcn for mine so that's definitely a promising sign for me haha Just a question, how do you feel Rust works in a Mac? As in compile times and such. I'm planning to save up for one and I wanna know how it can truly improve my life as a developer with its specs lol

    • @MrJakob
      @MrJakob 14 дней назад

      I’m currently using an M1 MacBook Air, and it was a significant upgrade from my nearly maxed-out MacBook Pro with an x86 processor that I had before. Macs have worked well for me in development since I switched from my trusty Linux ThinkPads over 10 years ago. In terms of hardware, you shouldn't encounter any major issues. However, I must mention that Apple hardware tends to be more expensive than other well-designed options on the market. I've heard great things about Framework laptops, for instance. Ultimately, it depends on your software needs and budget. RAM and SSD space can be quite pricey with Macs. That said, I’m personally very happy with my MacBook for daily work, while also using various Linux systems on the side. But it really comes down to personal preference! Best of look with your projects future :)

    • @MaxJM711
      @MaxJM711 14 дней назад

      @@MrJakob Thanks for the thorough insight into this Jakob! I would mainly use the Mac for daily work/projects since I'm doing a mix of cybersec (VM heavy) and development, mainly to build myself a nice portfolio. I'd definitely keep my Nix laptop for some more specific stuff or even a home server kinda thing, I suspect it would be great for that, and would give me an extra chance to properly test out something like Kubernetes :D Many thanks and best luck to you too bro, really looking forward to more videos! :)

  • @BRODZELi
    @BRODZELi 14 дней назад

    Also, It would be great to see a video about the contribution to the positioner as well.

    • @MrJakob
      @MrJakob 14 дней назад

      I'm thrilled to hear that you enjoy my videos! I definitely plan to create a video on this topic. However, I can't promise it will be the next one, as my spare time is a bit limited at the moment. Thank you for your understanding!

  • @BRODZELi
    @BRODZELi 14 дней назад

    Thanks for sharing, this was awesome. It would be great if the video tutorial about Tauri would continue. ❤

  • @BRODZELi
    @BRODZELi 15 дней назад

    Please, more Tauri tutorials

    • @MrJakob
      @MrJakob 15 дней назад

      The next one is already in the pipeline and will be published tomorrow as by the usual schedule. We will finally make our player a real menubar/tray application. We are covering, proper placement, menu creation, handling of window decorations and so on. After that we will see. As the mod player reached a state where I am happy using it, I might do something else for a while until returning to tauri things later on.

  • @MaxJM711
    @MaxJM711 17 дней назад

    Awesome job Jakob! Really really like what you're doing since it's showing me the power of Tauri. Would love to make a homemade version of Spotify one day following this tutorial, this is awesome haha

    • @MrJakob
      @MrJakob 17 дней назад

      Thanks for the kind words :). And good look for your future project.

  • @SashikaSandeepa
    @SashikaSandeepa 20 дней назад

    Are u using vscodevim or vscodeneovim extension?

    • @MrJakob
      @MrJakob 20 дней назад

      I've been using the default Vim extension for VSCode, and I wasn't even aware that there was a Neovim extension that actually utilizes Neovim under the hood. I appreciate the tip and will definitely check it out!

    • @SashikaSandeepa
      @SashikaSandeepa 20 дней назад

      @@MrJakob oh I was just curious to know which one most people use.

    • @MrJakob
      @MrJakob 20 дней назад

      I see. I would assume that most people use the default Vim extension, as it simulates basic Vim navigation and commands while remaining completely within the editor itself. The Neovim extension, on the other hand, appears to run a real Neovim process in the background, piping input and output through it. This is just my impression from a quick glance at it.

  • @ok-alarm
    @ok-alarm 21 день назад

    I tried both Tauri and Dioxus, and built a bit of a complicated project for learning purposes, I prefer dioxus now, passing data to front end and vice verse in tauri is tedious in the app i just built. dioxus is in early stage, but the dx is better for me. its still buggy and lack somethings i needed, but i got the job done. tauri is awesome if I have an existing web app and want to make a desktop app for it. but building from start, I'll choose dioxus.

    • @MrJakob
      @MrJakob 21 день назад

      I've already added Dioxus to my list for a closer look. There’s so much to explore and so little time! So far, I’m enjoying the Tauri v2 experience. Of course, it ultimately depends on what you need and what you want to build. For my little mod player project, it’s been working quite well. I’ll definitely keep an open mind about other frameworks in the future, or as usual, I might just roll my own! 😅

    • @ok-alarm
      @ok-alarm 21 день назад

      @@MrJakob yep! I'm learning Tauri through your vids, and I'm also curious on your approach building using dioxus, looking forward on that!

  • @pri_yan_shu_raj
    @pri_yan_shu_raj 21 день назад

    Please make a project using gpui.

    • @MrJakob
      @MrJakob 21 день назад

      Hey there! I habe put it on my long list of possible video ideas/projects for the future. It will therefore definitely not be forgotten. Maybe there will be some little project in the future, which could make use of it.

    • @pri_yan_shu_raj
      @pri_yan_shu_raj 21 день назад

      @@MrJakob I tried my best to build file browser using gpui but got even more confused about context then tried reading zeds source code. Couldn't figure out the proper way of implementing things because there are more than one. Then I switched to iced. I have only built small games for school projects so don't have much programming experience. Waiting for the video I hope I will get it. Thank you.

  • @Sillyvan
    @Sillyvan Месяц назад

    Using rust to build a player just for it to have the slowest possible UI (react) :P But cool project

    • @MrJakob
      @MrJakob Месяц назад

      I have to admit that there are more efficient ways to create a UI than using web technologies, particularly when considering rendering speed and overall efficiency. However, Tauri offers a straightforward approach to building cross-platform UI applications with a webview and a performant backend, all with minimal effort. This technique is employed by many popular applications today, such as Spotify, Slack, Discord, VS Code and Figma. I believe the player is in good company with these well-known apps. The two main reasons I chose Tauri for this project are: first, I wanted to experiment with Tauri again on a "real" project, and second, I want to create this player for my own use. The faster I can build it, the sooner I can enjoy it! Now worries I understood the sarcasm in your comment, just wanted to clarify things for other readers/viewers.

    • @Sillyvan
      @Sillyvan Месяц назад

      ​@@MrJakob Thats a huge response for trying to make fun of react. Im totally fine with web views and i love tauri. Im just a small hater of react nowdays (after 6 years of working with it) i just think signals are the future (solidjs, svelte 5 etc). And maybe for a simple music player you dont even need an entire runtime framework. Something like astro that ships with 0 js by itself and you just add some own js for it to work. At the end of the day its a cool project regardless not trying to make fun of anything here

    • @MrJakob
      @MrJakob Месяц назад

      @Sillyvan I completely agree with you! In fact, it’s even worse because I scaffolded this project using Next.js instead of plain React. 😂 I opted for what I thought would be the quickest way to get things up and running, and Next.js comes with Tailwind and TypeScript already configured. If I had chosen vanilla JavaScript, which would have been more than sufficient for our simple player UI, it might have taken longer. I just wanted to clarify my reasoning, as I’m essentially on the same page as you. Any frontend framework feels like overkill for this straightforward UI I’m trying to build. That said, I’m not even sure it will make a real-world difference in the end, at least from the user's perspective! 😆

    • @trejohnson7677
      @trejohnson7677 Месяц назад

      lol just use rxjs in react n00b. or roll-own-proxy solution. boom, solved re renders. there’s even legendapp/state. if ur react code is slow, i dont see how ur solid junk would be any better. frankly invoking the notion of speed for a ui with 3 fucking buttons is insane.

  • @workflowinmind
    @workflowinmind Месяц назад

    Cool one once again! Are you recording all from the macbook (I mean the sound)? It's really good if so

    • @MrJakob
      @MrJakob Месяц назад

      Thanks for your interest! For my various videos, I use different cameras. Currently, I'm using a Logitech StreamCam, and I'm really happy with it. For audio, I've been using a Rode lavalier mic since I started recording RUclips videos. Recently, I upgraded to a newer version of the mic, and I'm excited about the improved quality!

  • @nicoangelo7802
    @nicoangelo7802 Месяц назад

    I greatly appreciate your videos. Especially how you investigate and solve problems as you go without cutting through it.

    • @MrJakob
      @MrJakob Месяц назад

      Thank you! I aim to take this journey from start to finish alongside all of you. I only make cuts when the material isn't relevant to the project or would otherwise be uninteresting.

  • @ok-alarm
    @ok-alarm Месяц назад

    nice, I need this right now.. thank you so much

    • @MrJakob
      @MrJakob Месяц назад

      All in good time! 😉 I'm excited to continue developing this project, and I promise we'll make great progress. You can always check the current state of development in the linked GitHub repository. Additionally, I finished the second video on this project over the weekend, and it will be live next Friday, as usual!

    • @ok-alarm
      @ok-alarm Месяц назад

      @@MrJakob that's great man!

    • @ok-alarm
      @ok-alarm Месяц назад

      @MrJakob can you also do a dioxus video?

    • @MrJakob
      @MrJakob Месяц назад

      @@ok-alarm I've added it to my list for future projects! If I come across a project idea that requires a framework like that, I can definitely see myself making a video about it. However, I don't anticipate that happening in the near future. Thank you for the suggestion-I'll be sure to keep it in mind!

  • @MaxJM711
    @MaxJM711 Месяц назад

    This really couldn't have come at a better time for me, I'm beginning to make a risk management app with Tauri, so this will definitely help me understand frontend-backend communication much better haha

    • @MrJakob
      @MrJakob Месяц назад

      Perfect Timing I’d say. I guess we can learn together how to do this the right way then 👍

  • @luigidabro
    @luigidabro Месяц назад

    Looks truly amazing! Really well done!

    • @MrJakob
      @MrJakob Месяц назад

      Thank you!

  • @MaxJM711
    @MaxJM711 Месяц назад

    Congrats Jakob! Can't wait to see your reach another milestone, love your channel!

    • @MrJakob
      @MrJakob Месяц назад

      Thank you all of you are a great community!

  • @ricardokullock2535
    @ricardokullock2535 Месяц назад

    27:00 totaly get it 😂. When they want something, you're not gonna get anything done!

    • @MrJakob
      @MrJakob Месяц назад

      Yes they are the boss. Don’t let anybody tell you otherwise 😂

  • @rocketsketch
    @rocketsketch Месяц назад

    Thank You. Many more subs to come..

  • @novano1d
    @novano1d Месяц назад

    very nice animation and congrats! I've been toying with rust a bit myself.

    • @MrJakob
      @MrJakob Месяц назад

      Thank you! I highly recommend giving Rust a try. Although I'm quite fluent in several programming languages and primarily use different ones for my work, I find Rust to have a unique appeal that I truly enjoy.

  • @HaroldHersey
    @HaroldHersey Месяц назад

    You do important work. Installing now

  • @xsamuelx3603
    @xsamuelx3603 Месяц назад

    :D

  • @xsamuelx3603
    @xsamuelx3603 Месяц назад

    :)

  • @jacekkurlit8403
    @jacekkurlit8403 Месяц назад

    Wow this is nice thank you!

    • @MrJakob
      @MrJakob Месяц назад

      Thanks. Simple particle engines are often easy to create and and have great effect :). And of course fireworks are always cool.

  • @adamdemeter6963
    @adamdemeter6963 Месяц назад

    This firework deserves a sub!

    • @MrJakob
      @MrJakob Месяц назад

      on to the next 1000, starting with you :)

  • @WajuAbolarin
    @WajuAbolarin Месяц назад

    Congratulations!

    • @MrJakob
      @MrJakob Месяц назад

      Thank you. I am really happy, to see how many people out there enjoy a relaxed coding session or two :)

  • @Ozy_Viking
    @Ozy_Viking Месяц назад

    Amazing

    • @MrJakob
      @MrJakob Месяц назад

      Thank you I am immensely happy with how this turned out. I even liked the „bug“ with the exploding effects from the bottom of the screen, I had during the coding of this. It looked kind of nice. Maybe I will integrate a simple pixel particle system like this into the engine itself. Who knows. There is so much todo and so little time 😅.

  • @trejohnson7677
    @trejohnson7677 Месяц назад

    evil genius type shi

  • @weiSane
    @weiSane Месяц назад

    Omg this is exactly similar to a certain project I am working on currently and was still trying to figure out how to go about it .

    • @MrJakob
      @MrJakob Месяц назад

      Glad I could provide some inspiration :)

  • @anandmoon5701
    @anandmoon5701 Месяц назад

    I am big fan of your work

    • @MrJakob
      @MrJakob Месяц назад

      Thank you. I am thoroughly enjoying creating these videos and communicating with all of you immensely as well. :)

  • @rocketsketch
    @rocketsketch Месяц назад

    Thank You

    • @MrJakob
      @MrJakob Месяц назад

      You're more than welcome

  • @APK-jay
    @APK-jay Месяц назад

    I think some of this code would benefit from some `if let Some(v) = option` and `Option<T>::get_or_insert(&mut self, val: T)` usage, mostly for readability :) Awesome stuff as always!

    • @MrJakob
      @MrJakob Месяц назад

      You are right especially get_or_insert could help I guess 👍

    • @APK-jay
      @APK-jay Месяц назад

      Daw, thanks! Loving your channel so much, very impressed by the design work you do on the fly.

  • @APK-jay
    @APK-jay Месяц назад

    That newline could be move to the beginning of the line rendering loop to avoid complexity and branches EDIT: See my update below, I was wrong :D

    • @APK-jay
      @APK-jay Месяц назад

      Ah! Wait, I forgot that we're not filling the scroll back buffer, we're overwriting the current screen so that doesn't work (it would blow out the memory too, I'd been thinking about drawing a single screen rather than animations). Also the IF will be very cheap because it's almost always true, yay for branch prediction!

    • @MrJakob
      @MrJakob Месяц назад

      In the next video we eliminate the newlines all together 😁

    • @APK-jay
      @APK-jay Месяц назад

      @@MrJakob I never thought terminal emulators could do what you're getting yours to (Kitty started opening my mind but this video series is wild :D )

    • @MrJakob
      @MrJakob Месяц назад

      I'm honestly quite astonished myself! If I hadn't tried it, I would have never discovered this. What I find particularly interesting is that it performs so well, even with tmux running in the background for processing. It's a bit of silly fun experimenting with all of this, but it's bringing me so much joy!

  • @maxtrax3258
    @maxtrax3258 Месяц назад

    I like to see how you are hacking your way through 😂

    • @MrJakob
      @MrJakob Месяц назад

      Thanks it’s even more fun knowing, that others enjoy coming along for the journey.

  • @MuhammadRizki-zy2dk
    @MuhammadRizki-zy2dk Месяц назад

    Hallo sir, thanks for this video, it's very helpfull if you can make it as a playlist, so we can follow it step by step, thanks sir

    • @MrJakob
      @MrJakob Месяц назад

      Sure thing. I created a new playlist "Image Manipulation", where this videos as the corresponding one before it resides ruclips.net/p/PLy68GuC77sUT7xppVqjE4dh3IopqrIdmv. Furthermore I created one called "Terminal Magic" with of the recent terminal rendering shenanigans I am up to ruclips.net/p/PLy68GuC77sUSaRnCabFyJEKY82aAUicDC Hope that helps.

  • @YG-jn8st
    @YG-jn8st Месяц назад

    @0:26 Oh, yea! right in the corner.

    • @MrJakob
      @MrJakob Месяц назад

      Yeah I know, I kind of forgot, that I am not displayed full screen, but only in the lower right corner of the video recording 🤣

    • @YG-jn8st
      @YG-jn8st Месяц назад

      @@MrJakob lol. No, I meant the bouncing box hit the exact corner. Like the old days watching the DVD logo bounce around. 🙂

    • @MrJakob
      @MrJakob Месяц назад

      lol. You are absolutely right :). No I can’t unsee it ;). Maybe I should implement an old dvd logo bouncing around in the terminal, just for fun ;)

  • @ujjawalk6780
    @ujjawalk6780 Месяц назад

    What's the font ??

    • @MrJakob
      @MrJakob Месяц назад

      Fira Code

    • @27onionnebell40
      @27onionnebell40 Месяц назад

      @@MrJakob it looks more like Jetbrains Mono (?

    • @MrJakob
      @MrJakob Месяц назад

      I am terribly sorry. You are absolutely right. I am using Fira Code as a Nerd Font for the terminal and Jetbrains Mono in vs Code. Had to look it up myself just now. Good catch. 👍

    • @ujjawalk6780
      @ujjawalk6780 Месяц назад

      ​@@MrJakobAlso what's the theme😅

    • @MrJakob
      @MrJakob Месяц назад

      In vscode Gruvbox Material Dark and in the shell it is gruvbox_material_hard_dark :)

  • @MaxJM711
    @MaxJM711 Месяц назад

    First time seeing a video from you, really loved seeing your thought process while you were coding! I followed the tutorial along, and man, you made me remember why I loved Rust so much since the first time I saw it despite me still learning it haha, love the videos bro!

    • @MrJakob
      @MrJakob Месяц назад

      Thank you for your kind words. Much appreciated.

  • @hrafnkellbtw5602
    @hrafnkellbtw5602 Месяц назад

    what terminal do you use ? it is really pretty

    • @MrJakob
      @MrJakob Месяц назад

      My terminal emulator is alacritty with tmux as a multiplexer. You can get all my relevant configs from my dotfiles repository github.com/jakobwesthoff/dotfiles

  • @chomp1057
    @chomp1057 Месяц назад

    Awesome stuff!

  • @luigidabro
    @luigidabro Месяц назад

    Sorry to tell you, but the dot in english is like the comma in german. So your title would say your speed only improved by 10%

    • @MrJakob
      @MrJakob Месяц назад

      Thanks for the info. I fixed the title 😇

    • @legendboyAni
      @legendboyAni 10 дней назад

      Comma is the correct mathematicaly

  • @meyou118
    @meyou118 Месяц назад

    match statement?

    • @MrJakob
      @MrJakob Месяц назад

      Do you have more context? Where exactly do you think that could help?

    • @meyou118
      @meyou118 Месяц назад

      @@MrJakob around 51:55, instead of an if use a match statement?

    • @MrJakob
      @MrJakob Месяц назад

      Ahh I see what you are referring to. I am not sure that would have worked actually, as the matching conditions were kind of hard to fit into one branch, which was my goal here to not have multiple copies of the same code. I would need to think about that to check whether a match would really work here or not. Thanks for your suggestion. 👍