Skip to main content
tdro

Another wandering soul whispering into the void. If you are looking for my blog you are in the wrong place. The profile and header pictures are brought to you by cdd20.

tdro micro.thedroneely.com view
  • Markdown Plaintext Embed Permalink
  • 68/50 words 23s read

    It’s kinda neat how CSS animation rules are sort of simple in their construction. , rules could be made even simpler if the animation-delay property also allowed delays between iterations/intervals instead of at the start only. Interval delays could allow for writing drastically less key frame rules.

    css
    text-animation[hang] {
      animation: tilt-rightward 1.3s infinite, tilt-leftward 1.8s infinite;
    }
    Combining two key frame animations to create a hanging effect.
    #gists #webdev
    tdro

    Another wandering soul whispering into the void. If you are looking for my blog you are in the wrong place. The profile and header pictures are brought to you by cdd20.

    tdro micro.thedroneely.com view
  • Markdown Plaintext Embed Permalink
  • 48/50 words 16s read
    tdro

    Another wandering soul whispering into the void. If you are looking for my blog you are in the wrong place. The profile and header pictures are brought to you by cdd20.

    tdro micro.thedroneely.com (edited) view
  • Markdown Plaintext Embed Permalink
  • 143/50 words 48s read
    My puppeteer scripts now use deno.

    No more need for npm in my personal stack! The native browser’s path comes from which.

    javascript
    import puppeteer from "https://deno.land/x/puppeteer@16.2.0/mod.ts";
    
    const chrome = "chromium";  // Browser Chrome: "firefox" | "chromium" | "google-chrome" | ...
    const product = "chrome";   // Product Base:   "firefox" | "chrome"
    
    const command = new Deno.Command("which", { args: [chrome] });
    const { status, stdout, stderr } = command.outputSync();
    const executablePath = new TextDecoder().decode(stdout).trim();
    
    const browser = await puppeteer.launch({
      headless: false,
      executablePath: executablePath,
      product: product,
    });
    
    const site = "example.com";
    const page = await browser.newPage();
    
    await page.setViewport({ width: 1024, height: 768 });
    await page.goto("https://" + site);
    await page.screenshot({ path: site + ".png" });
    
    await page.waitForSelector('a');
    
    const url = await page.evaluate(() => {
      return document.querySelector('a').href;
    });
    
    console.log(url);
    
    await browser.close();
    Basic Boilerplate: Captures a picture of example.com (main.ts)
    shell
    deno run --allow-all main.ts
    Deno Version: 1.45.5
    #gists #webdev
    tdro

    Another wandering soul whispering into the void. If you are looking for my blog you are in the wrong place. The profile and header pictures are brought to you by cdd20.

    tdro micro.thedroneely.com view
  • Markdown Plaintext Embed Permalink
  • 80/50 words 27s read
    Web servers can be spun up quickly on the command line but with gotchas.

    Take the innocent web server .

    shell
    php -S 127.0.0.1:8080

    Best not to use PHP’s web server cli (even for PHP) because routes with a dot (.) are assumed to be static files. Use a real web server or superior cli web servers with minor gotchas.

    shell
    python -m http.server --bind 127.0.0.1 8080
    busybox httpd -f -p 127.0.0.1:8080
    ruby -run -e httpd . -p 8080
    #gists #webdev

    Authors

    Gallery

    Web Feeds (6)

    Web Links