Fine, I'll tell you how feature flags work (but I'll brag about my Rust blog engine while doing it)

Поделиться
HTML-код
  • Опубликовано: 7 сен 2024

Комментарии • 66

  • @njdarda
    @njdarda Год назад +50

    Testing new features on German people will surely become the industry standard.

    • @fasterthanlime
      @fasterthanlime  Год назад +16

      To be fair, their issue reports are exemplary.

    • @flippert0
      @flippert0 7 месяцев назад

      Laughed out louder than I should (being German myself)

  • @fasterthanlime
    @fasterthanlime  Год назад +45

    I can't believe I got paid to brag about my website. They also sponsored a video about Rust+WASM? Bingpot.

  • @cheaterman49
    @cheaterman49 Год назад +46

    Whoa, your deploy system is really cool! I hope you explain it to us one day :-)

    • @fasterthanlime
      @fasterthanlime  Год назад +7

      It's very similar to what I do in Silly Fast Fresh Deploys with Rust: ruclips.net/p/PLxV2db94vuXkvZuZrx-iBvrO13dtIQ91k

    • @cheaterman49
      @cheaterman49 Год назад +5

      @@fasterthanlime I watched this (and loved it) but feel like the magical "look mom no CI" (or rather "look mom in-app CD") bit is really worth talking about :-D

  • @annwan9557
    @annwan9557 Год назад +57

    Watching Amos being payed to geek on cool stuff is so good

    • @fasterthanlime
      @fasterthanlime  Год назад +23

      Not gonna lie, I had to turn a couple sponsors down, but then the right ones showed up 😎

  • @uwumarie
    @uwumarie Год назад +6

    really nice video. the fast deploy button is really cool

    • @fasterthanlime
      @fasterthanlime  Год назад +1

      It's a really nice experience. A long while ago I did deploys from the CLI, then I graduated to a separate admin page, then I just slapped that button + floating logs on every page when I started tackling like 60 issue reports on various pages at once.

  • @skaunov_code
    @skaunov_code Год назад +1

    I really thought that video will be about Cargo feature flags. Was wondering what is there that interesting that they deserved a separate video here. (-:

  • @ENBYSS
    @ENBYSS Год назад +2

    Not going to lie, seeing the way your blog is managed makes me retrospect about my site/setup and how much less professional it feels by comparison 😭 - getting there though!

  • @NateLevin
    @NateLevin Год назад +5

    5:55 I would instead use Array.from(document.querySelectorAll(...)).map() because its more readable (IMO)

  • @bobby9568
    @bobby9568 Год назад

    Subscribed because this person actually codes instead of talks 😂

  • @mzg147
    @mzg147 Год назад +9

    Thank you, really nice video, but it could have a little Rust! :D Take care and be well :3

  • @robinmoussu
    @robinmoussu Год назад

    I love the 35k sub celebration!

  • @XtremeGamesW2013
    @XtremeGamesW2013 Год назад +1

    You should hire someone to wear one of those cheesy mascot costumes and play Cool Bear in these videos

    • @fasterthanlime
      @fasterthanlime  Год назад +3

      That's certainly a stretch goal idea for my GitHub Sponsors 🐻‍❄️

  • @cad97
    @cad97 Год назад +5

    I know just enough CSS that I wonder if you could've gotten the 3rd h2 with `.page-section.main-content h2:nth-of-type(3)` or if pseudoclasses don't work in queryElement. Also would be an interesting question to ask whether this or just array indexing is "faster" and why.

    • @fasterthanlime
      @fasterthanlime  Год назад +3

      My bet is that performance is largely the same! Except maybe for very large documents, were building the NodeList would be expensive? I have a feeling benchmarking this would yield different results over time, as browser updates come in.

    • @jamesnvc000
      @jamesnvc000 Год назад

      It does indeed work with querySelector; I was wondering the same thing & gave it a try.

  • @xetera
    @xetera Год назад

    Quick tip, DOMContentLoaded fires after all images and other things you'd consider optional loads. `defer` might be a better option for injection scripts like this

    • @fasterthanlime
      @fasterthanlime  Год назад +1

      I don't think defer works for inline scripts, otherwise it'd be a neat option.
      edit: Oh also, in production, images have `loading="lazy"` set so I _think_ I'm in the clear here.

  • @Dygear
    @Dygear Год назад +3

    Speaking of DOM crimes. runs only ever so slightly before DOMConetentLoaded and you don't need an extra level of indent to use a listener. Is that a good idea ... Probably not, but if it was would it be a DOM crime?

    • @fasterthanlime
      @fasterthanlime  Год назад +3

      MDN says: Warning: This attribute (defer) must not be used if the src attribute is absent (i.e. for inline scripts), in this case it would have no effect.
      So I'm afraid it's a no-go here.

  • @coderedart
    @coderedart Год назад

    I thought this video was going to be about rust/cargo's features. [cfg(feature = "confused")]

  • @bene7042
    @bene7042 Год назад +1

    I've been only using liquid for injecting globals into html but it seems really powerful. Do you have the source for your blog public by any chance? I would love to learn from it

    • @fasterthanlime
      @fasterthanlime  Год назад +2

      Unfortunately no, I don't want to maintain it "for everyone", my full-time activity is content creation, not maintaining these projects. There's a lot of shortcuts that work for me, but wouldn't for others. I have sent tarballs to people by e-mail on request though.

  • @PrashantBhushanSingh
    @PrashantBhushanSingh Год назад

    Hey great video, but your javascript liquid file can use `const` instead of `let`.

  • @JustAnotherLight
    @JustAnotherLight Год назад

    i love your blog

  • @kahnzo
    @kahnzo Год назад

    I hope you're doing well.

  • @victorfds
    @victorfds Год назад

    Great video.

  • @bene7042
    @bene7042 Год назад

    What a facy Blog engine! How do Blog engines even the auto-refresh when a file is locally changed in Rust?

    • @fasterthanlime
      @fasterthanlime  Год назад +1

      There's a server-sent events (SSE) connection established, and a message is sent when it switches to a new deploy, which is handled in JavaScript and calls window.reload - it's relatively straightforward! Some frameworks do something fancier called Hot Module Reload (HMR) which only reload the parts that changed, but it's often brittle.

  • @ISKLEMMI
    @ISKLEMMI Год назад +2

    Man, I had no idea you had a RUclips channel! (I lied)

    • @fasterthanlime
      @fasterthanlime  Год назад +1

      It was right under your nose this whole time!

  • @hseinb
    @hseinb Год назад

    Is the deploy buttob connected to a bash script? If not would you please explain what it triggers locally?

  • @fahmitaib
    @fahmitaib Год назад +1

    Hey there, I'm interested in starting and growing a patreon like you have. May I know how you promoted yourself & started off?

    • @fasterthanlime
      @fasterthanlime  Год назад +1

      There's a huge luck component involved: right niche, right time. And of course tons of work. But there's no recipe for success here and anyone who tells you otherwise is a liar.

    • @fahmitaib
      @fahmitaib Год назад

      @@fasterthanlime for sure, I understand the effort and luck it requires. But I'm curious about whether you used other platforms to promote your patreon, like Reddit, or maybe a blog? I hope I'm not bugging you too much with my questions 🙏

    • @fasterthanlime
      @fasterthanlime  Год назад +1

      I did start out with a blog, and I did start a subreddit, which has almost 2K members now (www.reddit.com/r/fasterthanlime/). I think Twitter, HackerNews, and Reddit (but other, bigger subreddits, like /r/rust, /r/programming, etc.) helped me the most. But it'd be hard to replicate on today's Twitter, for example. Or today's Mastodon. In the same way that you can no longer just make a RUclips channel with Minecraft gameplay videos and get millions of subscribers. You have to find your own thing!

  • @narigoncs
    @narigoncs Год назад +3

    You can also do [...document.querySelectorAll(".page-section.main-content h2")].map(...) 👀

    • @fasterthanlime
      @fasterthanlime  Год назад +1

      Oh of course, but we need the parent for insertBefore later!

    • @narigoncs
      @narigoncs Год назад

      @@fasterthanlime Ah that makes sense!

  • @stdmpa
    @stdmpa Год назад +1

    I was actually wondering where did mac come in?

    • @fasterthanlime
      @fasterthanlime  Год назад +3

      Just before cheese

    • @stdmpa
      @stdmpa Год назад +1

      @@fasterthanlime damn, then mac was always around, just waiting for the right comment…

  • @cmoihub
    @cmoihub Год назад

    How did you update the sub count on my computer?

  • @TotalImmort7l
    @TotalImmort7l 6 месяцев назад

    How many gallons of oestrogen are you on?

  • @ac130kz
    @ac130kz Год назад

    I've been enjoying some Javascript myself lately even with the spaghetti nonsense, but the lack of typing makes me puke, while on the Typescript side of things, it is a mess to setup

    • @fasterthanlime
      @fasterthanlime  Год назад +1

      JSDoc is sort of a happy middle. Also TypeScript isn't quite as annoying to set up as it once was - I'm not sure what you ran into specifically?

    • @ac130kz
      @ac130kz Год назад

      @@fasterthanlime I want to write only Typescript in a way that is still compatible with the default tsc stack (slow), so there's always a fallback option, when I want to add an incompatible library or something. Ts-node is also kinda really slow. I've found swc-node, which is able to transform Typescript on the fly and do it fast as I want, aaaand it's buggy. Then there's this ESM vs CJS flamewar, where the first one is better, yet it's also slower.

  • @KooShnoo
    @KooShnoo Год назад

    13:25 brb im firing up my anti-blur program to steal all your tokens >:) i will juice them like i juice the oranges i use to make orange juice.

    • @fasterthanlime
      @fasterthanlime  Год назад +1

      Haha I had the exact same thought when seeing this - that would be good feedback for DevCycle, as it's how it looks on their site. I'm not sure the server-side tokens give you any more access than the client ones though? Definitely worth exploring

    • @KooShnoo
      @KooShnoo Год назад

      @@fasterthanlime i think the bblur looks nice, maybe they could have dummy keys that they blur, so it looks like they blurred the keys but really they're not there at all. or maybe that's what they allready do, i dont know bc i havent' checked !

    • @fasterthanlime
      @fasterthanlime  Год назад

      Ooh that'd be really smart.

  • @kekitech
    @kekitech Год назад +1

    Deploying to german people is kinda smart because we will just blame our isp, but you wont get feedback because of it ^_^

  • @raphaelkrupinski7572
    @raphaelkrupinski7572 Год назад

    Seriously, CEEQL? 😿

  • @tomashubelbauer
    @tomashubelbauer Год назад

    These days I have a habit of setting my scripts that are expected to be touching the DOM to type="module" which ensures the DOM is ready once they are loaded because ESM modules are automatically deferred. Then with TLA (top level await) there is no need for the top-level DOMContentLoaded handler or the async function within it. I think this should work for your youtube-promo.js.liquid file. WDYT?

    • @fasterthanlime
      @fasterthanlime  Год назад

      Possibly, if type="module" works with inline scripts? (ie. no src attribute)
      I guess I really do have old habits haha.

    • @tomashubelbauer
      @tomashubelbauer Год назад +1

      @@fasterthanlime It does, for personal projects (vanilla HTML/JS) I use ESM exclusively for a few years now and it works really nicely. In professional capacity, there is still a lot of pain when it comes it interfacing with the NPM ecosystem but it is slowly getting better as well.

    • @fasterthanlime
      @fasterthanlime  Год назад +1

      Nice! I know there's been some controversy around ESM modules, but I'm personally excited about it.