wat the doodle!
wat the doodle!
  • Видео 29
  • Просмотров 18 494
Rust Distributed File System (RDFS) a Toy Implementation of The Google File System: Master Node
In today's session we continue looking at the Rust RDFS Project(Rust Distributed File System) which is a toy implementation of the "Google File System", previously we had implemented the worker node, and now we focus on the "Master Node".
While a lot of work has been done since the last session, I had to take a bit of a break. The master node is a little more complex and when it comes to designing systems, for me at least I tend to "build stuff in my head" before actually doing any implementation.
In this session we will take a tour of everything that has been implemented in the Master Node.
For reference the project can be found on GitHub (see below):
github.com/watthedoodle/rdfs
So grab a ...
Просмотров: 396

Видео

Rust Distributed File System (RDFS) a Toy Implementation of The Google File System: Worker Node
Просмотров 824Месяц назад
In this session, we continue on from last week. In this session we provide a project update on RDFS (Rust Distributed File System) what is a toy implementation of the "Google File System". A lot of work has been done since the last session, and we will go over all the things that have been implemented. The main focus is the "Worker Node" which is one of the polymorphic binaries mode. For refere...
Let's rewrite Google File System in Rust! Rust Distributed File System RDFS: Project setup
Просмотров 1,6 тыс.Месяц назад
In the previous session titled "How does a distributed file system like Google GFS work?" we explored at a very high level the architecture of the GFS system. As mentioned in that session in order to really understand how something works building one yourself can give you a lot of insight! As a consequence I've started a new project called "Rust Distributed File System" or RDFS as a play on wor...
How does a distributed file system like Google GFS work?
Просмотров 2742 месяца назад
I've been reading up distributed file systems more specifically "The Google File System" which is the original seminal paper written by Google, this then gave birth to other distributed file systems like "Hadoop Distributed File System" aka HDFS, as well as Amazon S3. While S3 is not an open standard, it's practically used by all the cloud vendors. Here is the link to the original Google paper:...
Successfully compiling krunVM an update!
Просмотров 1022 месяца назад
In the last session we looked at trying to compile krunVM, however this project has a dependency on "libkrun", which in turn depends on "libkrunfw" that is the Linux kernel compiled down into a dynamic library. While in the last session we did manage to compile the base dependency i.e "libkrunfw" we failed to compile libkrun. After some debugging we found the root issue, in this session we expa...
Want to convert a container into a MicroVM? We'll need to compile the Linux kernel first!
Просмотров 4682 месяца назад
I was looking at a project called "krunvm", which I think is super awesome, because it can take any container image (docker image) that is OCI compliant and then convert that into a "micoVM". The original project link is here: github.com/containers/krunvm However, building this project is somewhat involved as it depends on libkrun, and sadly that in turn is depend on libkrunfw. libkrunfw is ess...
AI code assistance is the new dumpster fire!
Просмотров 2642 месяца назад
There is a huge amount of hype around AI and especially around AI in terms of programming, with some even making very bold claims that AI will soon replace software engineers. I've seen AI in action and I'm not personally a fan of these tools, however I appreciate some developers do find them useful. Recently I needed to translate a chunk of code from Kotlin into Rust, and out of curiosity and ...
Reacting to "Best Programming for web development by Pieter Levels and Lex Fridman"
Просмотров 7273 месяца назад
In today's session I'm reacting to a clip from Lex Fridman's interview with Pieter Levels. Original Clip can be found here: ruclips.net/video/Y-tvQm9HW1M/видео.html In the full Lex Fridman's episode, he sat down with Pieter Levels, a renowned entrepreneur and developer, to delve into the world of programming languages. Their discussion offered a fascinating perspective on the evolution, trends,...
Review of "The anatomy of a 2AM mental breakdown"
Просмотров 323 месяца назад
In today's session we'll be reviewing the article called "The Anatomy of a 2AM mental breakdown" by Zarar see the original link here: zarar.dev/anatomy-of-a-mental-breakdown/ System failures in production is something that is unavoidable, we often call them "war stories" and us engineers often trade them with each other. There is however a silver lining, by listening to war stories they can som...
Stop Using CSV! Use DSV instead. Let's parse DSV in Rust!
Просмотров 793 месяца назад
I came across an very interesting article by Matt Hodges titled: "CSVs Are Kinda Bad. DSVs Are Kinda Good." Read the original here: matthodges.com/posts/2024-08-12-csv-bad-dsv-good/ And he makes a very well reasoned argument of the issues around CSVs. He's solution is to use ASCII control characters as he calls it "DSV". In this session we look at parsing/decoding DSV type data structure.
Let's create a simple State Machine in Rust!
Просмотров 8483 месяца назад
In today's session we take a look at "State Machines" aka Finite State Machines (FSM) and write a simple one in Rust A FSM is a computational model used to design systems that operate sequentially through a finite number of states. It’s like a simple machine with a limited set of possible settings. An FSM is a powerful tool for understanding and designing systems with predictable behaviours. It...
Review: Separating Programming Sheep from Non-Programming Goats
Просмотров 6913 месяца назад
Another blast from the past, this time from Jeff Atwood creator of "Stack Overflow". When this article burst on the scene back in 2006 it caused a massive uproar as it's very inflammatory title and the research paper that it referenced was later retracted in 2014. However there does seem to be some kernel of truth, and in this session we explore that a little further.
Reviewing a Classic from 2010 "Taco Bell Programming"
Просмотров 1523 месяца назад
Back in 2010 around the time when I was looking into Linux, one of the articles that had an impact on me was written by Ted Dziuba called "Taco Bell Programming". I wanted to re-read it again and to see how much still applies given all the rapid changes in the technology landscape in that period.
Modern Frontend Framework Development for Dinosaurs Revisited!
Просмотров 7094 месяца назад
Back in late 2017 an article appeared titled "Modern JavaScript Explained For Dinosaurs" by Peter Jang. It was of course very tongue in cheek and I enjoyed this article because it documented fairly well the evolution of where JavaScript or modern JavaScript frontend framework development had ended up. I wanted to revisit this article now in 2024 to see how it held up and what changes we have ha...
A Review of the Anti Rust article by a Rust Engineer
Просмотров 2,7 тыс.4 месяца назад
An article appeared recently online entitled: "I spent 18 months rebuilding my algorithmic trading platform in Rust. I'm filled with regret" By Austin Sparks. This article was picked up by ThePrimeagen, and he did a balanced review, I would highly recommend that you watch that if you haven't already. However since that article was published, there has been a lot more context available and in th...
A Response to You don't need a frontend framework
Просмотров 5 тыс.4 месяца назад
A Response to You don't need a frontend framework
Let's Create A Toy HTML Builder in Rust
Просмотров 1285 месяцев назад
Let's Create A Toy HTML Builder in Rust
Build a Todo Web App Using Deno, Hono, and vanilla JavaScript!
Просмотров 5835 месяцев назад
Build a Todo Web App Using Deno, Hono, and vanilla JavaScript!
Dynamic languages vs Statically Typed languages
Просмотров 725 месяцев назад
Dynamic languages vs Statically Typed languages
The Agile Methodology is Horse Manure!
Просмотров 7976 месяцев назад
The Agile Methodology is Horse Manure!
Procedural vs Declarative Programming styles
Просмотров 4256 месяцев назад
Procedural vs Declarative Programming styles
Hyperfetch Project (a neofetch clone in Rust) Update Number 1
Просмотров 1086 месяцев назад
Hyperfetch Project (a neofetch clone in Rust) Update Number 1
oh no, neofetch is dead!
Просмотров 886 месяцев назад
oh no, neofetch is dead!
How to install docker on Arch Linux like a Chad!
Просмотров 6626 месяцев назад
How to install docker on Arch Linux like a Chad!
Sorry Uncle Bob, You're just wrong!
Просмотров 1176 месяцев назад
Sorry Uncle Bob, You're just wrong!
Get Hired as a Junior Developer in 2024
Просмотров 1216 месяцев назад
Get Hired as a Junior Developer in 2024
Wat The Doodle Intro!
Просмотров 297 месяцев назад
Wat The Doodle Intro!
Vectorising My Doodles!
Просмотров 377 месяцев назад
Vectorising My Doodles!
Rust isn't a hangover cure?
Просмотров 727 месяцев назад
Rust isn't a hangover cure?

Комментарии

  • @raughboy188
    @raughboy188 12 дней назад

    I wanne make microvms for pi hole, adguard and pretty much anything so i can run them on top of vps and in my case it will be xcp ng.

    • @watthedoodle
      @watthedoodle 12 дней назад

      in theory yes that should be possible as krunvm is supposed to be able to take any valid complaint OCI image and convert that into a MicroVM, which you can then run using KVM. I cannot remember if XCP NG hypervisor is able to run these MicroVMs as MicroVMs are not the same as your classical VMs (they're seriously stripped down in terms of virtual hardware, down to only having a "single" button IIRC) usually they require dedicated VMM (Virtual Machine Monitor). For example you might want to look at Amazon Firecracker project that is able to run MicroVMs using KVM).

  • @j.r.r.tolkien8724
    @j.r.r.tolkien8724 22 дня назад

    Yeah. You have to be incredibly stupid to argue against the existence of front-end frameworks. You'd have to believe companies just decided to create them and use them for no good reason. It's fun I guess.

  • @joaopedroortunes686
    @joaopedroortunes686 29 дней назад

    nice video! What is this terminal theme ?

    • @watthedoodle
      @watthedoodle 28 дней назад

      thanks buddy! My terminal is alacritty (Rust no surprise there) lol and catppuccin theme

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

    I'm quite new to rust, but wouldn't it be possible to use features to conditionally build/install the binary? So one can have a a slim worker/master/client etc. ?

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

      ps: Subscribed! :)

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

      Yes it's 100% possible to do conditional compilation, however for our purposes that would go against what we're trying to do, and we would end up compiling 3 different binaries (where as we wish to have one single polymorphic binary). At the moment everything compiles down to around 8mb which is damn awesome for what it is doing! (now it could probably be shrunk even smaller), but it's really optimising for the wrong things. Doing conditional compilation is more useful for library authors that want their library consumers to be able to enable/disable features that they need/want without having to compile everything!

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

    This is cool! keep up the great work!

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

      thanks buddy! appreciate it :) new update video will be coming soon this week 👍

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

    great, keep going!

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

      thanks buddy for the kind words! yes I'll try my best :)

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

    Great video dude Have you thought about whether this could work without a master server?

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

      Thanks buddy! that's an interesting question, I haven't thought about a master less distributed system! I guess one could make it such that each worker node could act as a master and then use things like the RAFT or Paxos consensus algorithm to elect a different leader, so in essence making any worker node be able to take on master node role. But I think that would make the design a lot more complex! but still an interesting idea!

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

      @@watthedoodle I'm wondering whether a system similar to Distributed Hash Tables(without the hashing) could be implemented, where there is no master whatsoever

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

      @@TavishMcEwen maybe, but this metastore is highly dynamic as nodes will get re-balanced so using a DHT would not be the appropriate. The metastore itself however could be made to have "high availability" by being clustered itself. An distributed object file system is dynamic on top of the worker nodes being dynamic as well, meaning we have to also contend with not only nodes joining and dying, but also files mutating as well. All this to me indicates having a centralised metastore is vastly more efficient and simpler.

  • @脑袋槑囿
    @脑袋槑囿 Месяц назад

    Started! Hopefully it will continue to be updated!

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

      thanks buddy your positive feedback gives me motivation! I'm excited about this project and will try my best!

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

    This is right up my alley

  • @Omar-Mc-YT
    @Omar-Mc-YT Месяц назад

    laravel <3

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

    Keep rust out of everything i use please.

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

      Over time that's going to be exceptionally harder and harder. Cloudflare handles 10% of the world's internet traffic, Amazon Cloud (AWS) services and infrastructure that runs most of the web itself runs atop of a lot of Rust. Google's Android stack contains some Rust as well as many other products/service. Microsoft Windows latest kernel is slowly moving to Rust. Linux is experimenting with Rust (the ONLY language that Linus has allowed other than C, even C++ never achieved this). Then there is Dropbox, Discord, Facebook (Meta) and the list keeps going on and on. In literally every domain, from embedded, to server to Web Rust is making in roads. So you can keep hating on Rust, you're welcomed to, but the reality is, not only are you probably already using Rust without even knowing it, but as time marches on more and more things will be powered by Rust. In the words of Thanos it's "Inevitable"

  • @MuhammadAl-Sharif
    @MuhammadAl-Sharif 2 месяца назад

    Thanks from Egypt ♥ Please do one for qeme.

    • @watthedoodle
      @watthedoodle 2 месяца назад

      Thank you, you're welcome! I have added it to my list of content so keep an eye out!

  • @vir2plus
    @vir2plus 2 месяца назад

    Gemini is the worst. Open AI Codex (github copilot) is not bad. Cody / Claude 3 almost never works. Codeium is a scam.

  • @k225
    @k225 2 месяца назад

    SQLite in WAL mode provides threadsafe read/write concurrency, commits tens of thousands of write transactions per second to SSD, and scales horizontally. The average web app doesn't need vertical write concurrency of running Oracle on a mainframe.

  • @adirnoyman2231
    @adirnoyman2231 2 месяца назад

    Why you are taking this guy (Pieter) seriously??? I saw the interview and he said a lot of nonsense. Obviously is not a professional programmer.

    • @watthedoodle
      @watthedoodle 2 месяца назад

      I'm not taking him seriously, however a lot of tech personalities (e.g ThePrimeagen, Theo etc) have been heaping praise for him, and a lot of "bright eyed" juniors look up to those personalities. Hence the reason for the review, to provide a much needed balanced response rather than the overly positive praise. Now that is not to diminish Pieter's business success, and there are nuggets of truth in what he says for example the KISS engineering principle. This is why I have mentioned before that Pieter is a successful business guy, but he's not a "great" developer and I believe he himself acknowledges this. But these nuisances get lost in the wind and some folks take his (Pieter's) tech opinion as a key guarantor of success.

    • @Nabuuug
      @Nabuuug 2 месяца назад

      lol depends right @adirnoyman2231, Pieter makes $200k every month out of websites he coded himself over the last 10 years, he has a massive amount of users using his code every day. Saying this is not "professional" is pretty delusional. Of course he was never employed by any company, never worked with a team of devs, never had a manager, never had to manage a junior, etc... so less "professional" in the traditional sense. He's just a very successfull hardcore solo coder entrepreneur.

    • @watthedoodle
      @watthedoodle 2 месяца назад

      @@Nabuuug from my understanding he has basically built a thin wrapper around existing APIs, specifically AI APIs. Right now there is a "gold rush" for said "AI wrappers", however it something that will be short lived, because as the AI bubble bursts all the secondary "cotton industry" around them will also go south with it. But that is precisely what I have already said, he's a "talented business" guy, but not a talented developer (something he himself openly admits). So in terms of business acumen, he is "on the ball" and has found a gap and he is leveraging that, however the "push back" is from people *thinking* that being business smart somehow correlates to him being a smart developer. These are separate things and that is what is being critiqued here.

    • @Nabuuug
      @Nabuuug 2 месяца назад

      @@watthedoodle oh yeah for sure he himself overemphasizes how bad his code and practices can be sometimes (such as: fixing straight to prod as he says on the podcast). But it depends what you mean by "smart developer". He built ~70 public projects in the last 10 years, mostly not AI related (his oldest most successfull website, nomadlist, is not AI at all), he made a lot of money out of this, he definitely has a lot of web dev experience, he's not just a one-trick guy. I think he's a particularly interesting character because he makes every entitled software engineer with a big ego look themselves in the mirror and ask: why is this bad PHP developer earning $200k per month and you don't?

    • @watthedoodle
      @watthedoodle 2 месяца назад

      @@Nabuuug For sure, he's doing something right in terms building things that makes money, however building lots of things doesn't automatically equate to building them well. I do understand where he is coming from, I'm self taught as well as having an academic background, and one of the issues and the main criticism I have is that many naive and young developers taking what he says as some kind of Gospel truth, and that's pretty dangerous (example fixing straight in production) but the bigger question is *why* does he have so many bugs in the first place? I'm not against the guy, I'm just trying to say, we need better education and better role models when it comes to engineering. If he was handing out just business views that is one thing and I think people really should listen to his business thoughts, but his "engineering" side is just bad (in some cases) and it's right to call that out not because of programmer "ego" but because it's technically wrong that is all. And I do agree there are is a lot of tech ego, I agree 100% with you there!

  • @icaruswings138
    @icaruswings138 2 месяца назад

    Software engineers will not be replaced by AI anytime soon, but software engineers that can't use AI to "augment" their skills will be replaced by developers that can. I've been using Supermaven in my VS code for months and find it to be a massive productivity gain. You still need to know how to write code to be able to prompt the LLM properly and to make use of / fix the responses but it's enough to stop me getting blocked on a problem and keep me in a flow state for way longer than without. It's like having a really good pair programer. Your initial prompt could have been easily improved to get a much better response from the LLM. you could have told it what the starting language was, and given it some context on what you'd like to see in the output. The way you've prompted it, It's not your tech lead and the response can't be judged as such, it's a very junior developer with access to tonnes and tonnes of documentation, no idea what to search for and a propensity to mis-interpret it anyway. I haven't tested this but what if your prompt was: ------- Act as a senior software engineer with 5+ years of writing production rust and kotlin applications. I need your help translating an existing kotlin program into a working rust program. Here's the existing kotlin code: ``` YOUR KOTLIN CODE ``` -------

    • @watthedoodle
      @watthedoodle 2 месяца назад

      sure absolutely it *can* help sometimes, but ultimately one need to understand and be a competent dev in the first instance. My fear is for those that don't have core competency and are just using AI as the crutch to "prompt" their way through as well as CEO's who now believe they can just get any Tom, Dick and Harry to replace their team.

  • @chopsueey
    @chopsueey 2 месяца назад

    my experience so far: simple tasks: productivity gain complicated tasks: productivity drain

    • @watthedoodle
      @watthedoodle 2 месяца назад

      100% agree! it can be helpful in small doses

  • @MilosVuksanovic-sj8kj
    @MilosVuksanovic-sj8kj 2 месяца назад

    i am not sure that frameworks are better/faster then vanila js/web components. and lot of react js devs simpliy don't know vanila js

    • @watthedoodle
      @watthedoodle 2 месяца назад

      So it depends, if you're comparing to React I think you're right, that "library" has become so incredibly complex and is one of the reasons behind the so called "JavaScript fatigue". However having said that, I've written both in vanilla JavaScript as well as used most of the frameworks (I tried both Angular and React and didn't like either of them), but I settled with VueJS. I do believe based on doing both vanilla and VueJS I would never pick vanilla, simply because as you build up your web application in vanilla JavaScript, you will be doing a lot of DRY and refactoring your code to be clean and modular (a natural tendency in order to control the complexity as your codebase gets bigger and bigger) and *ironically* you will end up creating your own custom "framework" written in vanilla JavaScript, however it will be a "poor man's framework" because its one that would have been created organically as opposed to one specifically designed upfront to be one. Of course all that takes time and effort, and then it has to be maintained as well. By using a framework (good one not any old one) saves you this time and effort as well as being specifically designed from the very start. Ultimately you also have to include familiarity as well, so of course there is some initial one time "tax" you have to pay to use frameworks (as in you have to take time out to actually learn it first), however after using everything under the sun, I would argue at least based on my experiences on numerous real world commercial projects doing it vanilla is a huge time sink and extra effort that doesn't scale and isn't robust and will have questionable safety.

    • @andreilucasgoncalves1416
      @andreilucasgoncalves1416 2 месяца назад

      In my experience, vanilla apps tend to be faster than those built with frameworks. However, they often become difficult to maintain, especially if your app isn't an MPA that clears memory with every navigation

  • @init_bobjames
    @init_bobjames 2 месяца назад

    its the sqlite for me too, i used sqlite for the first time for android

    • @watthedoodle
      @watthedoodle 2 месяца назад

      you have to be a bit careful with sqlite, as long as you use it inside of the given uses cases it absolutely fine. I get triggered when developers try and pass it off for all use cases when clearly that is just bad advice!

    • @init_bobjames
      @init_bobjames 2 месяца назад

      agree, i like options in open source where you can use lite, mysql or postgres for heavy use 🙏

    • @MilosVuksanovic-sj8kj
      @MilosVuksanovic-sj8kj 2 месяца назад

      sqlite on user machine is ok, or even overkill but as author say it is just not good on server backend

    • @init_bobjames
      @init_bobjames 2 месяца назад

      @@MilosVuksanovic-sj8kj yes i think you are right. in what situation would you use lite when you have a whole server?

  • @init_bobjames
    @init_bobjames 2 месяца назад

    dont know if i told you this before but i might be skipping js full stack altogether, where did javascript for the backend originate from?

    • @watthedoodle
      @watthedoodle 2 месяца назад

      so with the wild success of NodeJS, developers just realised that they could use "one language" to handle both front and back and thus avoid "context switching". That's approximately how it started.

    • @init_bobjames
      @init_bobjames 2 месяца назад

      node, i suspect as much, thank you Doodle 🙏

  • @mykelfashonhous1037
    @mykelfashonhous1037 3 месяца назад

    Hello Dear I hope this message finds you well. I'm Emon, a professional digital marketer with a focus on RUclips video SEO and Google Ads. Are you struggling with subscriber and video views for monetization? I wanted to reach out and share how my expertise can help enhance your RUclips channel's visibility and drive more engagement. I was analysing your RUclips channel

  • @rhondajohnson494
    @rhondajohnson494 3 месяца назад

    I can't speak for companies that are strictly software creation as a product brining it to market. But an organization that has I.T. as basically support, PURE AGILE WILL NEVER WORK!!!! And this is true for pubicaly traded companies that has to report out and document via AUDITS. Budget have to be approved (Meaning a Blank Check to get it done will NOT be given), so there will need to be an initial estimate, and the appliable documentation MUST be adhered to Audit standards for pubicaly traded companies (Charter, Requirements, Tech Spec, Test Cases, Implementation Plan, etc). I've seen an Agilish approach. Development can break up the work into whatever streams they see fit, work on them as they see fit, but documentation STiLL MUST be FOLLOWED!!!! This is a struggle for development Teams that want to follow the manifesto to the letter. There is a reason for having BA's, & PM's on projects. In Pubicaly traded companies I can tell you with CERTAINTITY it is to follow the audit protocols. And YES companies get audited, internally and exteranlly (by the government externally) and NO Leader wants to open themselves up to a failed audit.

  • @CatsAndCode
    @CatsAndCode 3 месяца назад

    Its so easy to trash another language when all you essentially looking for is doing the same thing only faster. Thats not the case with Rust. Rust is not about making your life easier. Its about performance, productivity, security. And yes, it takes time to learn it.

  • @McZsh
    @McZsh 3 месяца назад

    React and Vue are built to have the application live in the browser, completely without a server, if need be. The same goes for Blazor. Those apps will store data on the client and push to the server when available. It adds lots of logic on the client side and basically doubles every domain logic. Htmx requires the server being always on. Which is okay for most 99% of apps. Htmx features should be Html standard.

  • @TheMatthodges
    @TheMatthodges 3 месяца назад

    👋 Author of the original post here! Glad you liked it! And I'm really glad you took the point to heart: that this is an exploration of an alternative idea and not production-ready Python package. I really enjoyed your video. I won't link it here in my comment so as to not catch spam, but would you mind linking to the original article in your video description? Cheers!

    • @watthedoodle
      @watthedoodle 3 месяца назад

      Hi Matt! thank you, it's an honour to have you here! I'm happy that you enjoyed the video 👍 Regarding the link, I've just updated the description with a link to your original article.

    • @TheMatthodges
      @TheMatthodges 3 месяца назад

      @@watthedoodle Thank you kindly! 🙂

  • @somebody_on_the_internetz
    @somebody_on_the_internetz 3 месяца назад

    Is there already a DSV crate?

    • @watthedoodle
      @watthedoodle 3 месяца назад

      I doubt it, as it's just an idea/Proof of Concept by Matt, maybe I should create one 😏

  • @init_bobjames
    @init_bobjames 3 месяца назад

    let bob = bob, thank you, my next post 👀 thank you for putting the answer in the description! ASCII control characters as he calls it "DSV"

    • @watthedoodle
      @watthedoodle 3 месяца назад

      Hi Bob, thank you! I like your new avatar!

    • @init_bobjames
      @init_bobjames 3 месяца назад

      @@watthedoodle thank you lets meow 🙌

  • @sarbnagra3935
    @sarbnagra3935 3 месяца назад

    I dont know rust but will try to implement it in cpp

    • @watthedoodle
      @watthedoodle 3 месяца назад

      yes please do! if you have a RUclips channel please reference this video if you do!

  • @copalo343
    @copalo343 3 месяца назад

    Great video, love it

  • @anandkapdi4822
    @anandkapdi4822 3 месяца назад

    HTMX

  • @MichaelZijlstra
    @MichaelZijlstra 3 месяца назад

    I teach computer science (at a university) -- I started in 2010 and read this article in 2012. What the article discusses is very much true (regardless of what I, or others do we don't seem to be able to teach about half of the students that want to start CS). But the problem is not with assignment (the test that they propose). This is a hurdle I can always make everyone pass. The real issue is that the failing students cannot 'problem solve'. What that means is they cannot take a problem statement (in English) and turn it into a series of loops and if statements. They seem to fail at going back and forth between different levels of abstraction (English description and code implementation). I can always teach everyone if statements and loops on their own / not in a bigger context. Initially I very much focused on adding more time (an additional intro to CS course), and ensuring that students have a proper mental model of what the computer actually does. This helped about 10% of students, moving the success rate upwards... but no where near the amount I was hoping for.

    • @watthedoodle
      @watthedoodle 3 месяца назад

      Hi Michael, thank you for your first direct hand experience in this and it is invaluable! it's interesting that you describe the issue around problem solving and that does tie in with what I mentioned that "everyone can learn maths, but not everyone can be a mathematician". I think that's the real challenge, because it's about using the tools at hand in order to express a solution to the problem. I don't know if this is something that can be fully solved, but even small improvements could equate to a lot more students getting past that barrier?

    • @MichaelZijlstra
      @MichaelZijlstra 3 месяца назад

      @@watthedoodle very true, a 10% increase is already significant (something I had after I put a lot of time and effort into teaching methodologies and additional time for the students). Nevertheless, still having about 40% that couldn't wrap their head around it was very disheartening. Even worse was having a friend teach 12-13 year olds at a local middle school, who was using almost the same tools as I was, who had none of the problems I faced. My hypothesis is that the way we teach high school seems to actively destroy student's innate ability to experiment by making them terrified of failure and generally telling them that there is only one solution (which is always something they're asking for so that they can then memorize it -- again not problem solve. I included a lot of materials in my courses about there always being many ways to solve a problem, but it didn't seem to help). I realized that in order to reach the remaining students I would have to focus more on counseling and re-education than Computer Science.

  • @terrencemoore8739
    @terrencemoore8739 3 месяца назад

    Server side rendering does not require full page reloads. Partials are virtually equivalent to components, the only difference is where the content rendering takes place. Scalability argument doesn't matter for 80% of developers and this applies more if you want a full SPA experience, you can use a hybrid approach where pages are pages and reactive content is reactive content. I think there's space for more than one style of frontend development, plus, why are all the frontend frameworks adopting SSR if it's not the solution?

  • @julkiewitz
    @julkiewitz 3 месяца назад

    If server-side is so great then how come apps are routinely rewritten to use a frontend framework but I've literally never heard of any effort inside any company to rewrite an existing frontend framework based app to be server-side only.

  • @julkiewitz
    @julkiewitz 3 месяца назад

    Soon someone will post a video to argue that <?php echo $user; ?> is a great idea and we should all be just using that. Give me a break, where do those people come from?

  • @julkiewitz
    @julkiewitz 3 месяца назад

    Fundamentally, the server does not know anything about the state of the UI. It cannot know it. Sometimes, that's okay, because you just send the initial state of the UI and don't care about what happens next. But the moment you try doing something more complicated you will need it and a server-side render architecture is just not right for that. If you chose it, you'll be stuck with that forever, and you'll end up making more and more workarounds to somehow make it work. Wanna have a form on a page and also a paginated list? Well, crap you're out of luck, you now have to do partial page renders and manually patch up the client side. It can be done, but it'll be a mess. And the next programmer will have no clue what is going on. While such things just come out of the box with React etc.

  • @DávidHorváth-q6y
    @DávidHorváth-q6y 3 месяца назад

    "between 30% and 60% of every university computer science department's intake fail the first programming course" it's almost as if people are not instantly good at a thing they are doing for the first time

    • @watthedoodle
      @watthedoodle 3 месяца назад

      yes 100% everyone once didn't understand something at some point in time. Comprehension takes time, and while some may have some comprehension (of topic X) at any given moment it also means that same person doesn't have comprehension of something else (topic Y). Our approach to teaching I believe does not changing and one that is more dynamic in its approach rather than the very rigid structure we have today!

    • @julkiewitz
      @julkiewitz 3 месяца назад

      That's not an accurate representation. In my uni CS has a 1st year class called "introduction to programming". It's what you would expect - teaches the basics of programming using a simple imperative language. In my day they used Pascal, idk if that's still the case. There are plenty of other courses on maths, etc. Yet this course is informally known among those who teach as "the big filter". There are many people who despite their best effort and a lot of work are unable to pass this subject. They try multiple times, and still fail. I don't think it's disproportionately hard, it's just not based around knowledge, but around developing the skill. It's all of course anecdotal, and I cannot speak to whether or not this is confirmed by up to date research. But that's the claim in the article, i.e. there is a population that despite the best effort is unable to acquire the skill.

    • @DávidHorváth-q6y
      @DávidHorváth-q6y 3 месяца назад

      @@julkiewitz I am not doubting the fact that there is a subset of the general population that is not suited to learning programming, however, the figure used to back up the hypothesis of the article is not very informative in the context of the argument it tries to make.

  • @KanjiCoder_RTFM
    @KanjiCoder_RTFM 3 месяца назад

    Not everyone can learn to code because not everyone is logical . As Joshca Bach says , "The difference between a nerd and a normal person is that a nerd thinks the purpose of communication is to submit their ideas to peer review while a normal person knows the purpose of communication is to signal alignment." Or in other words , normal people virtue signal . Nerds side with the facts and then get into serious trouble when the person who is factually correct is a bad person .

  • @KanjiCoder_RTFM
    @KanjiCoder_RTFM 3 месяца назад

    The whole "Learn To Code" thing reeked of "Class Warefare" .

    • @watthedoodle
      @watthedoodle 3 месяца назад

      I believe that the "Learn to Code" movement was partially based on corporate sponsorship in order to increase the total number of software engineers such that they could alter the "supply / demand" of the industry in favour of more supply so that wages could be crushed down.

    • @KanjiCoder_RTFM
      @KanjiCoder_RTFM 3 месяца назад

      @@watthedoodle You are probably correct . It is a sad reality that pay is based on supply/demand and not how difficult it is .

    • @Anhar001
      @Anhar001 3 месяца назад

      ​@@KanjiCoder_RTFM it's an entire topic unto itself, something I may explore in another session 😅

  • @Doggo-404
    @Doggo-404 3 месяца назад

    I'm not sure this is relevant, but I think it provides some of my learned insights into stalled or failed learning, beyond the ability to just grasp it at the offset. There are other blockers that can get in the way of understanding, those click moments as you put it. I've been trying to learn to code off and on for years. I've worked in IT for most of my adult life, lastly as an Oracle DBA before leaving the industry 12 years ago. Now, I'm back to learning to code again, this time focusing on C++. However, I've had to understand what fundamental hurdles are preventing my own personal progress. For context: I was diagnosed with ASD in 2019 at the ripe old age of 46, which has been a godsend in helping me understand these hurdles. I think I can break it down into five parts: 1. Purpose for Learning. Not everyone is learning to code because they want a job in programming. This certainly needs to be understood by those who teach and for those who learn for that matter. It impacts the teacher/student relationship. It's a bad start if this understanding is missed. 2. Abstraction is a true Learning and understanding Killer. For me, I need to understand what is happening under the hood. In the absence of 2 + 2 = 4, my head BSODs. This is why I've chosen C++, which I know still has a certain level of abstraction. The BSOD aspect occurs in all aspects of my life, hence my favourite saying, "There's nothing the other side of the equals sign." 3. Project-Based Learning. Learning to do another To-Do list for the eleventymillionth time sucks and completely kills the learning spirit. I plateau in the pain of learning something I don't care about and end up dropping out. You just can't concentrate on something you're not interested in. 4. Return to Learning. I can't tell you the number of times I've relearned variables, data types, loops, etc., after returning to learning again. I still haven't come up with the best way to restart yet. I've started looking at Obsidian as a possible way to document my learning. 5. Life's responsibilities. Yeah, this is a real show stopper that just can't be avoided. Very closely related to point 4 I'm hoping that I will develop a winning formula to get productive.

  • @SaHaRaSquad
    @SaHaRaSquad 3 месяца назад

    I find that example question interesting. Answers like a = 30, b = 0 imho are not just incorrect in the context of assignments but could also indicate a fundamental misunderstanding of how digital data and computers work. This kind of misunderstanding reminds me a lot of people that I regularly help with computers. They're smart and they understand my explanations, but they lack the intuition to a point where my help doesn't ever stick in the long term. And it feels like I'm the same with maths. I can learn those abstract concepts - kinda - but it feels like I have to mentally translate things through multiple layers in order to get it, it never feels natural or like a native language.

    • @watthedoodle
      @watthedoodle 3 месяца назад

      agreed! that's a very interesting observation and perhaps having a better working mental model of computers could potentially help in understating assignments (in assembly it would be something like mov r1, 100). Of course it all depends and I've also found some individuals who don't have *any* understanding of CPUs etc and still understood the assignment mental model without it. So I guess it depends on each person, but knowing what happens under the hood I suspect probably does help alot!

  • @bopon4090
    @bopon4090 3 месяца назад

    Nothing can match the component ecosystem of js framework. That thing alone is enough to not wanting to switch to server side rendering.

  • @scarlatum
    @scarlatum 3 месяца назад

    To be honest, whenever I see all of that recommendations to use HTMX, they always demonstrated it through "A Simple Table Application", or sort of a 90's static developer blogs. And this is a main point of usage of it and I not gonna discourage that, but as a say, if you need to do some more complex UI behavior like seamless transitions between html templates, animations, or just simple UI changes that not account server state - HTMX can't handle that as simple as it does those "complex and gross" web frameworks... For me, HTMX niche always in that place, where Alpine.js and Petite-Vue exist right now, but it never gonna be alternative for something more heavy and complex. To summarize it, I just want to say, that all of that "Fanclub of a new shiny thing" guys, they see HTMX as a hammer for anything right now no matter what...

    • @Akronymus_
      @Akronymus_ 3 месяца назад

      With HTMX, you can relatively easily embed a SPA for a single sub-route. (In my case, elmish). It's actually quite nice for a hybrid website.

  • @chopsueey
    @chopsueey 4 месяца назад

    I really like your educational vids, breaking down theories into core ideas and principles and what they mean, and explaining their pros and cons depending on from which perspective you look at them, ty

    • @watthedoodle
      @watthedoodle 4 месяца назад

      thank you for the kind and positive words, I really appreciate it!

  • @WoogleMovie
    @WoogleMovie 4 месяца назад

    Using HTMX and some template engine can fix a lot of backend issues including spaghetti code. Then there is rendring part of the code and core api part that feches data. Also if the request header request Json then the api can return Json instead of Html. That way it works like rest service for mobile etc. Only reason where in client heavy application like games etc. This approach does not work well. But many applications are CRUD applications that can benefit from simplicity of operations. Specially when it come to user permission and roles implementation which backend is more close to in an application.

  • @AlexGarcia-ir7fl
    @AlexGarcia-ir7fl 4 месяца назад

    Spaghetti code?😂 Have you ever used a full stack framework template engine like Jinja2. Every component can now be it’s own html that can extend, include or append to a base base html template (with iterations and conditionals). Spaghetti code is any front end framework boilerplate.

    • @watthedoodle
      @watthedoodle 4 месяца назад

      Yes I have used Jinja2 as well as many other template engines, front end frameworks also use templates in the form of composable render functions. So with respect your premise here simply doesn't hold.

  • @chopsueey
    @chopsueey 4 месяца назад

    I think the whole discussion comes from the feeling that webdevelopment moves really fast and that there is always new stuff out there being worked on. Andrews view sounds a bit nostalgic, like: "back in the days, just HTML, CSS and JS ... don't need all this fancy new stuff, just plain and simple...". I suppose many people vibe with that, but that's not the whole picture. Sure, for a simple static site, just go with that, but if you want something bigger, you will need a more sophisticated approach, which may be more complicated (which is only natural), but less complicated compared to a big project that doesn't have a system and an idea behind it, so: big project (with a framework) vs. big project (without a framework) I mean a framework is basically the result of optimizing your project for something bigger, that's why they exist.

  • @Valiant600
    @Valiant600 4 месяца назад

    I need a FE framework that brings food to the table!!!

  • @adrianspikes6454
    @adrianspikes6454 4 месяца назад

    That is the old way of doing it but he is also not relying on anyone else...npm, etc and not many can deal with that BS! Never had an application that wasn't complex so i prefer frameworks like angular or blazor.

  • @michaelbrauner
    @michaelbrauner 4 месяца назад

    Interesting take! Keeping server and client responsibilities separate has its advantages, but frameworks like Hotwire can simplify development and speed up the initial launch, tackling common issues like authentication and security. Often, it's unclear if extreme scaling will even be necessary in the early stages. I've seen a company struggle with Vue for months before switching to Hotwire, which led to a successful and much quicker implementation. I have been working with this solution for over a year and I have to say that everything is very clear and extensible. Even with thousands of users per day, there are still absolutely no scaling issues. It really depends on the project's specific needs and resources. And I think for most apps it's worth starting with Hotwire or something similar.

  • @TimothyWhiteheadzm
    @TimothyWhiteheadzm 4 месяца назад

    Advanced Rust is hard, especially if you are not trying to learn the advanced parts of the language but instead trying to make use of libraries or frameworks that do use the more advanced features. That said, if you took the same attitude with C++ you would probably end up with some very very bad code, but with Rust, if it compiles it usually works and most classes of bugs are simply caught by the compiler. Certainly, Rust was one of the harder languages I have tried (used for about three years, but still cant say I have 'learnt' it). The biggest problem we experienced though was that it is a constantly changing language and that combined with the frameworks we were using being in active development meant that we spent over 50% of our development effort just updating to newer versions of dependencies.