# Blog — Page 4 — Liran Tal

AI security researcher, open-source maintainer, and author. Explore Liran Tal’s blog, research papers, developer tools, books, and conference talks.

Canonical: https://lirantal.com/blog/4

*   Sep 4, 2023 · 9 min read

    ## [Generating presentation titles using OpenAI background jobs with Node.js, Express and Trigger.dev](/blog/background-jobs-processing-with-node-js-express-trigger-dev)

    Do you ever struggle to come up with creative presentation titles? Let's build that while learning how to use Generative AI, Express and Trigger.dev with the OpenAI integration.

    *   [background jobs](/tag/background-jobs)
    *   [nodejs](/tag/nodejs)
    *   [trigger.dev](/tag/trigger-dev)

     [![](/_astro/photo-1531482615713-2afd69097998.BF5R02ay_16ffJw.jpg)](/blog/background-jobs-processing-with-node-js-express-trigger-dev)

*   Aug 17, 2023 · 9 min read

    ## [How to Process Scheduled Queue Jobs in Node.js with BullMQ and Redis on Heroku](/blog/how-to-process-scheduled-queue-jobs-in-nodejs-with-bullmq-and-redis-on-heroku)

    Process long-running tasks in Node.js with background jobs. Learn how to use BullMQ and Redis on Heroku to create a scalable and reliable background job processing system.

    *   [background jobs](/tag/background-jobs)
    *   [nodejs](/tag/nodejs)
    *   [bullmq](/tag/bullmq)
    *   [redis](/tag/redis)
    *   [heroku](/tag/heroku)

     [![](/_astro/photo-1638437447411-17a4005b2f56.DIbrsgQH_2maXVo.jpg)](/blog/how-to-process-scheduled-queue-jobs-in-nodejs-with-bullmq-and-redis-on-heroku)

*   Aug 7, 2023 · 7 min read

    ## [Configuration Decoded: Lesser-Known Tips for Working with env-schema in Node.js](/blog/configuration-decoded-lesser-known-tips-for-working-with-env-schema-in-nodejs)

    Level up your Node.js apps with env-schema! Manage configurations effortlessly and learn useful practices for building for configuration management.

    *   [env-schema](/tag/env-schema)
    *   [nodejs](/tag/nodejs)
    *   [configuration](/tag/configuration)
    *   [backend](/tag/backend)

     [![](/_astro/photo-1682268294570-616e9ca9791b.6dpdmytl_21IFzC.jpg)](/blog/configuration-decoded-lesser-known-tips-for-working-with-env-schema-in-nodejs)

*   Jul 17, 2023 · 11 min read

    ## [Introducing Changesets: Simplify Project Versioning with Semantic Releases](/blog/introducing-changesets-simplify-project-versioning-with-semantic-releases)

    A comprehensive guide to adopting Changesets for semantic versioning and publishing packages in monorepos and non-monorepo projects.

    *   [changesets](/tag/changesets)
    *   [semantic-release](/tag/semantic-release)
    *   [semantic](/tag/semantic)
    *   [versioning](/tag/versioning)
    *   [open source](/tag/open-source)

     [![](/_astro/photo-1457365022028-117031a47933.Bsvg_ZFm_Z1zi4eB.jpg)](/blog/introducing-changesets-simplify-project-versioning-with-semantic-releases)

*   Jul 8, 2023 · 6 min read

    ## [Deploying a Fastify & Vue 3 Static Site to Heroku](/blog/deploying-a-fastify-vue-3-static-site-to-heroku)

    How to deploy a Vue 3 static site to Heroku with a Fastify Node.js backend server to serve the static files.

    *   [fastify](/tag/fastify)
    *   [vue](/tag/vue)
    *   [heroku](/tag/heroku)
    *   [static site](/tag/static-site)
    *   [deploy](/tag/deploy)

     [![](/_astro/vue-3-fastify-deploy-to-heroku.Bc_iKkIl_1dTErm.png)](/blog/deploying-a-fastify-vue-3-static-site-to-heroku)

*   Jun 30, 2023 · 6 min read

    ## [Avoid Fastify's reply.raw and reply.hijack Despite Being A Powerful HTTP Streams Tool](/blog/avoid-fastify-reply-raw-and-reply-hijack-despite-being-a-powerful-http-streams-tool)

    How to harness the power of streams in Fastify web applications without resorting to raw HTTP replies via reply.raw and reply.hijack().

    *   [fastify](/tag/fastify)
    *   [streams](/tag/streams)
    *   [nodejs](/tag/nodejs)
    *   [javascript](/tag/javascript)

     [![](/_astro/fastify-avoid-reply-hijack-blog-post-cover.CU0nCCO0_25hLjd.png)](/blog/avoid-fastify-reply-raw-and-reply-hijack-despite-being-a-powerful-http-streams-tool)

*   Apr 27, 2023 · 2 min read

    ## [Disclosing a local file inclusion vulnerability in xmlhttprequest library](/blog/local-file-inclusion-in-xmlhttprequest-library)

    I found a Local File Inclusion (LFI) security vulnerability in xmlhttprequest library but it's still unfixed.

    *   [security](/tag/security)
    *   [vulnerability](/tag/vulnerability)
    *   [advisory](/tag/advisory)
    *   [cve](/tag/cve)
    *   [xmlhttprequest](/tag/xmlhttprequest)
    *   [local-file-inclusion](/tag/local-file-inclusion)
    *   [lfi](/tag/lfi)

     [![](/_astro/photo-1516849677043-ef67c9557e16.fC1eXFFa_3H0Yw.jpg)](/blog/local-file-inclusion-in-xmlhttprequest-library)

*   Apr 16, 2023 · 3 min read

    ## [Disclosing uncontrolled resource consumption in xmlhttprequest library](/blog/disclosing-uncontrolled-resource-consumption-in-xmlhttprequest-library)

    proof-of-concept showing a denial of service vulnerability in a Node.js web server if it uses the xmlhttprequest library to make outgoing HTTP requests

    *   [security](/tag/security)
    *   [vulnerability](/tag/vulnerability)
    *   [advisory](/tag/advisory)
    *   [cve](/tag/cve)
    *   [xmlhttprequest](/tag/xmlhttprequest)
    *   [denial of service](/tag/denial-of-service)
    *   [dos](/tag/dos)
    *   [uncontrolled resource consumption](/tag/uncontrolled-resource-consumption)

     [![](/_astro/photo-1553987084-4c3aebbc686e.DpeFAG9W_Z1fvFtg.jpg)](/blog/disclosing-uncontrolled-resource-consumption-in-xmlhttprequest-library)

*   Apr 10, 2023 · 3 min read

    ## [How to apply custom admonition styles to AsciiDoc](/blog/how-to-apply-custom-admonition-styles-to-asciidoc)

    Customizing AsciiDoc can be challenging at times, especially when it comes to admonitions. In this article, I'll show you how to apply custom admonition styles to your AsciiDoc book.

    *   [writing](/tag/writing)
    *   [content](/tag/content)
    *   [book](/tag/book)
    *   [author](/tag/author)
    *   [asciidoc](/tag/asciidoc)
    *   [selfpublishing](/tag/selfpublishing)
    *   [asciidoctor](/tag/asciidoctor)

     [![](/_astro/photo-1611716524065-622312678d68.kclTEmNr_QabKo.jpg)](/blog/how-to-apply-custom-admonition-styles-to-asciidoc)

*   Apr 5, 2023 · 5 min read

    ## [How to write your book with AsciiDoc](/blog/how-to-write-your-book-with-asciidoc)

    If you are looking for a way to write your book in a format that is easy to read and write, and that can be easily converted to other formats such as PDF, ePUB and HTML, then AsciiDoc is a great choice. Let me show you how to get started with AsciiDoc Book Starter GitHub repository and an automated setup.

    *   [writing](/tag/writing)
    *   [content](/tag/content)
    *   [book](/tag/book)
    *   [author](/tag/author)
    *   [asciidoc](/tag/asciidoc)
    *   [selfpublishing](/tag/selfpublishing)
    *   [asciidoctor](/tag/asciidoctor)

     [![](/_astro/photo-1436891620584-47fd0e565afb.CTSZVjNe_D1qIO.jpg)](/blog/how-to-write-your-book-with-asciidoc)

*   Mar 16, 2023 · 6 min read

    ## [Celebrating Community: My Journey to Receiving the GitHub Stars 2023 Award](/blog/celebrating-community-my-journey-to-receiving-the-github-stars-2023-award)

    Reflecting on the spirit of the GitHub Stars award and capturing the essence of the journey towards the recognition and open source community engagement.

    *   [github](/tag/github)
    *   [star](/tag/star)
    *   [GitHub Star](/tag/github-star)
    *   [community](/tag/community)

     [![](/_astro/lirantal-github-star-2021.B9Oxz4gI_ZjPWmt.jpg)](/blog/celebrating-community-my-journey-to-receiving-the-github-stars-2023-award)

*   Feb 25, 2023 · 5 min read

    ## [Open Source activism with ReadyCodePush](/blog/open-source-activism-readycodepush)

    Reflecting on ReadyCodePush, the first open source activism program I ran in 2022 and how it welcomed underrepresented groups and students into open source software.

    *   [community](/tag/community)
    *   [volunteer](/tag/volunteer)
    *   [open-source](/tag/open-source)
    *   [github](/tag/github)

     [![](/_astro/photo-1490984792589-bc12fe270585.DKAiKf-7_ZW3Jn2.jpg)](/blog/open-source-activism-readycodepush)

*   Jan 24, 2023 · 5 min read

    ## [How to add client-side search with PageFind to your Astro blog static website](/blog/2023-01-01_-how_to_add_client-side_search_to_your_astro_blog_static_website)

    PageFind client-side search for Astro is simple but if you want to add search capabilities to a personal blog then you might think of Algolia first. However, let me show you how an easy PageFind integration would be more suitable for a static-site generation type of blog tech.

    *   [astro](/tag/astro)
    *   [search](/tag/search)
    *   [static website](/tag/static-website)
    *   [pagefind](/tag/pagefind)
    *   [blog](/tag/blog)

     [![](/_astro/photo-1589002615196-a7dc3df5bed3.Cs2NIyEl_Z8EIXw.jpg)](/blog/2023-01-01_-how_to_add_client-side_search_to_your_astro_blog_static_website)

*   Jan 15, 2023 · 6 min read

    ## [Advanced usage patterns for taking page element screenshots with Playwright](/blog/advanced-usage-patterns-for-taking-page-element-screenshots-with-playwright)

    In this post, I will show you some advanced usage patterns for working with Playwright in order to take a screenshot of a specific element and modify the contents of the image, either before taking the screenshot or after, using image preprocessing tools.

    *   [playwright](/tag/playwright)
    *   [testing](/tag/testing)
    *   [screenshots](/tag/screenshots)
    *   [crawling](/tag/crawling)

     [![](/_astro/2022-12-29-01-10-57.CsLxZTLU_Z1fQ0TD.png)](/blog/advanced-usage-patterns-for-taking-page-element-screenshots-with-playwright)

*   Nov 22, 2022 · 2 min read

    ## [Enhance your command line with Warp](/blog/2022-11-22_enhance-your-command-line-with-warp)

    How can we harness AI and crowd-sourced workflows into our day to day interactions with the command-line?

     [![](/_astro/photo-1566438480834.Bjr9xtqf_Z1bKs4b.jpg)](/blog/2022-11-22_enhance-your-command-line-with-warp)

*   Nov 22, 2022 · 1 min read

    ## [Content creators web resources](/blog/2022-12-03_content_creators_web_resources)

    Being an active content creator, whether this is writing, video, or any other form of content requires a good deal of time and effort. Here are some tools that can help you be more productive.

     [![](/_astro/photo-1566438480834.Bjr9xtqf_Z1bKs4b.jpg)](/blog/2022-12-03_content_creators_web_resources)

*   Oct 28, 2022 · 4 min read

    ## [Are you also validating a JavaScript URL using RegEx?](/blog/2022-10-28_are_you_validating_javascript_url_safely)

    What do you think of the following JavaScript URL validation function code? Are you accidentally adding security issues while doing so?

     [![](/_astro/photo-1564507110792-4ffa98ae18d1.DGXCuzKx_2jLmpN.jpg)](/blog/2022-10-28_are_you_validating_javascript_url_safely)

*   Oct 21, 2022 · 3 min read

    ## [Resources for Public Speaking and Conference CFP application](/blog/2022-10-21_resources_for_public_speaking_and_conference_cfp_application)

    How do you find events to attend or speak at? I often get asked that and in this article I'll share the resources I use for CFP application and public speaking at conferences.

     [![](/_astro/photo-1526666923127-b2970f64b422.B1KqtrbQ_1e6q61.jpg)](/blog/2022-10-21_resources_for_public_speaking_and_conference_cfp_application)

*   Jan 26, 2019 · 6 min read

    ## [Open Source From Heaven, Modules From Hell](/blog/2019-01-26)

    How do you find events to attend or speak at? I often get asked that and in this article I'll share the resources I use for CFP application and public speaking at conferences.

    *   [nodejs](/tag/nodejs)
    *   [javascript](/tag/javascript)

     [![](/_astro/photo-1551600854-b0d4f3f09bc6.BScNXmhf_Z2nDag2.jpg)](/blog/2019-01-26)

*   Jul 15, 2016 · 1 min read

    ## [Worst ping time delays around the world?](/blog/worst-ping-time-delays-around-the-world-d02cde8004a8)

    Have you ever wondered what is the worst time delay ping from 2 cities around the world?

     [![](/_astro/de679a71a55e4ad3a87a067153cafce1.BBFsy2Dj_Z2tvzLt.jpg)](/blog/worst-ping-time-delays-around-the-world-d02cde8004a8)

*   Jun 6, 2016 · 2 min read

    ## [InfoSec — I can easily guess your Node.js server! Want to bet?](/blog/infosec-i-can-easily-guess-your-node-js-server-want-to-bet-a7d004cfa81f)

    With the hope of raising awareness on information security topics, and the openness of the web I would like to take one step further to…

     [![](/_astro/fd5de900677f061ad9a7f3e5d5924058.BTbmvWEM_Z2uQbAe.jpg)](/blog/infosec-i-can-easily-guess-your-node-js-server-want-to-bet-a7d004cfa81f)

*   May 7, 2016 · 2 min read

    ## [Andrew Milner Shaped My Childhood](/blog/andrew-milner-shaped-my-childhood-47065fdfd8ad)

    Andrew Milner shaped my childhood. Google that name, I bet you a beer you’ve no idea who this guy is, and apparently Google isn’t helpful…

     [![](/_astro/c2bc9f0da0d9c33b4f870d2e10d92603.BaPt7nR5_Z2dW2QG.jpg)](/blog/andrew-milner-shaped-my-childhood-47065fdfd8ad)

*   Apr 11, 2016 · 2 min read

    ## [Most decisions in life are reversible](/blog/most-decisions-in-life-are-reversible-4437386e5d1d)

    You might be the conservative character, the shy person, or possibly the one taking less risks when it comes to making decisions all…

     [![](/_astro/1b5aa38357c3ee83e245d53fa8fafec3.BCWKTMCY_Uaken.jpg)](/blog/most-decisions-in-life-are-reversible-4437386e5d1d)

*   Apr 4, 2016 · 4 min read

    ## [My manager’s probably best team building concept is Diversity](/blog/my-manager-s-probably-best-team-building-concept-is-diversity-e0e8b44a8e8c)

    My manager’s probably best team building concept is Diversity. Why? read on and get some insight on building your next team to accomplish…

     [![](/_astro/ec7c263f309e2b028e8f29eb7adc8da8.CO-9qoJQ_Z2mNSN1.jpg)](/blog/my-manager-s-probably-best-team-building-concept-is-diversity-e0e8b44a8e8c)

*   Nov 16, 2015 · 1 min read

    ## [VeriGreen – lightweight, server side solution for verification of git commits](/blog/2015-11-16)

    Meet VeriGreen, an open source project to help you with merge commits

    *   [verigreen](/tag/verigreen)
    *   [opensource](/tag/opensource)
    *   [git](/tag/git)

     [![](/_astro/photo-1468956398224-6d6f66e22c35.BePqp3CW_Zj88Tk.jpg)](/blog/2015-11-16)


[

Newer posts

](/blog/3)[

Older posts

](/blog/5)
