Category: Tools

  • Border-Image Tool

    This tool makes it simple to create borders like the ones in Approach B and Approach C of this dual-motif border tutorial.

    Where to slice the border image:
    How to handle border-image-repeat:
    SOURCE IMAGE SAMPLE. Upload your own image using the form.

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nisl felis, luctus in purus nec, imperdiet imperdiet dui. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce vitae turpis volutpat, iaculis ligula venenatis, sodales tortor. Aenean interdum consectetur finibus. Nullam quis urna non eros aliquam molestie at a quam. In quis risus sit amet nulla ornare mattis non sodales nisi. Nulla accumsan, ligula non dignissim ultricies, lectus nisi consequat elit, et congue sem nisi vel magna. Duis tincidunt scelerisque urna in pellentesque. Donec nec metus nibh. Nullam commodo, enim sed scelerisque euismod, mi quam venenatis justo, sed ornare enim nisl eu risus. Vestibulum luctus mollis quam sed faucibus. Integer mattis venenatis augue. Mauris quis ante quis ipsum ultrices dictum in ac enim. Donec dapibus ultrices molestie. Nunc elit lectus, tempor et facilisis eget, imperdiet id enim.

    Fusce dignissim vitae velit sed sagittis. Aliquam erat volutpat. Curabitur ut consequat eros. Donec sodales a nisi sed porta. Interdum et malesuada fames ac ante ipsum primis in faucibus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Vestibulum et risus at tellus dictum facilisis id non leo. Proin hendrerit orci nec laoreet rhoncus. Suspendisse ac enim sit amet lorem pretium pharetra. Fusce et fringilla leo. Aenean vestibulum libero in nunc posuere venenatis sed volutpat sem. Maecenas blandit eleifend augue id porttitor. Sed egestas nec nulla lacinia fermentum.

    	
  • A Minimal-Surveillance Way to Embed Youtube Videos

    Julien Voisin posted this snippet for embedding Youtube videos on a page in a way that reduces Youtube’s invasive tracking:

    <iframe
        credentialless
        allowfullscreen
        referrerpolicy="strict-origin-when-cross-origin"
        sandbox="allow-scripts allow-same-origin"
        allow="accelerometer 'none'; ambient-light-sensor 'none'; autoplay 'none'; battery 'none'; bluetooth 'none'; browsing-topics 'none'; camera 'none'; ch-ua 'none'; display-capture 'none'; domain-agent 'none'; document-domain 'none'; encrypted-media 'none'; execution-while-not-rendered 'none'; execution-while-out-of-viewport 'none'; gamepad 'none'; geolocation 'none'; gyroscope 'none'; hid 'none'; identity-credentials-get 'none'; idle-detection 'none'; keyboard-map 'none'; local-fonts 'none'; magnetometer 'none'; microphone 'none'; midi 'none'; navigation-override 'none'; otp-credentials 'none'; payment 'none'; picture-in-picture 'none'; publickey-credentials-create 'none'; publickey-credentials-get 'none'; screen-wake-lock 'none'; serial 'none'; speaker-selection 'none'; sync-xhr 'none'; usb 'none'; web-share 'none'; window-management 'none'; xr-spatial-tracking 'none'"
        csp="sandbox allow-scripts allow-same-origin;"
        width="560"
        height="315"
        src="https://www.youtube-nocookie.com/embed/jfKfPfyJRdk"
        title="lofi hip hop radio 📚 - beats to relax/study to"
        frameborder="0"
        loading="lazy"
    ></iframe>

    Just change the video URL + video Title that are bolded.

  • Download Pictures, Photospheres and Streetview Panoramas from Google Maps

    Note: as of May 2025 the code in this post does not work.
    What works for photospheres is turning a photosphere viewing URL like
    :

    https://www.google.com/maps/place/Borot+Lots+Campground/@30.5021229,34.6319275,3a,75y,315.58h,91.88t/data=!3m8!1e1!3m6!1sCIHM0ogKEICAgIDqy52-jAE!2e10!3e11!6shttps:%2F%2Flh3.googleusercontent.com%2Fgpms-cs-s%2FAB8u6HZTukqE-3smpL_xzpTY2oWZNf7zn4T9jQhVDBJ_TG-ZQWFgjvuo2jVKWya-CX4xEf7-6igY7SqslnHdxUxDlTxP7xlJRUKlDPxEtrJW5buM4pmHoaS-Uu3d-SemgpSD6Onfr3icog%3Dw900-h600-k-no-pi-1.8781544128473797-ya207.57962850748117-ro0-fo100!7i12800!8i3890!4m7!3m6!1s0x1501e72618987fe3:0x3f575221900fd9c6!8m2!3d30.5135718!4d34.6086344!10e5!16s%2Fg%2F11cnd55nkj?entry=ttu&g_ep=EgoyMDI1MDUwNi4wIKXMDSoASAFQAw%3D%3D

    into this URL:

    https://lh3.googleusercontent.com/gps-cs-s/AB8u6HZTukqE-3smpL_xzpTY2oWZNf7zn4T9jQhVDBJ_TG-ZQWFgjvuo2jVKWya-CX4xEf7-6igY7SqslnHdxUxDlTxP7xlJRUKlDPxEtrJW5buM4pmHoaS-Uu3d-SemgpSD6Onfr3icog=s8000-k-no

    Here is how you can download imagery from Google Maps onto your own computer.

    This method involves bookmarklets – special bookmarks that run custom javascript code on the page you are visiting. Steps:

    1. Choose the relevant bookmarklet from the 3 on this page
    2. Drag the (Button) next of the bookmarklet into the “Bookmarks” bar in your browser
    3. Visit the Google Streetview page with the image you want to download
    4. Press on the bookmarklet link you just added to your bookmarks
    5. The image/panorama will open in a new tab. Right-click on it and pick “Save Image As…”

    Repeat steps 3 through 5 for as many images/photospheres/streetviews as you wish!

    (more…)
  • Find and Replace Text with Multiple Rules (CSV upload)

    This tool performs multiple find-and-replace operations at once on a piece of text that you supply. Create a CSV file with the strings you want to replace in the first column, and the substitution text in the second column:




    Notes:

    • Case-sensitive matching. So any rules matching "apple" will not apply to the string "Apple".
    • This tool only works on exact search and replace values. Regex not supported. You can "view source" and adapt the code to your needs. I think you'll need to change the line
      targettext = targettext.replaceAll(data[currentrule][0], data[currentrule][1]);
      to something like
      var regEx = new RegExp(data[currentrule][0]);
      targettext = targettext.replaceAll(regEx, data[currentrule][1]);
      but it won't do "Capturing Groups" logic.
    • Think about how your search-and-replace rules will interact with each other. Rule #5 will not be operating on your original text - it will operate on the result of replacement rules #1, #2, #3 and #4...
    • Successfully tested on a 1.5mb text file, with a set of 15,235 replacement rules. I built this tool because this other tool from JoydeepDeb could not handle an operation this size.
    • This code runs in your browser - the text you enter and the .csv file never leave your computer. I do not have access to them.
    • Big "thank you" to Vanessa Fotso who's code & tutorial for handling CSV files in JavaScript I used for this project.
    • Also thank you to PictureElement on StackOverflow, who's answer about updating the DOM inside JavaScript loops was very helpful. That progress bar took longer than the substitution code...
  • Tool – convert HTML dropdown options list to Plaintext

    This tool will convert a list of HTML elements like a dropdown list of <option> elements, or <li> and <ol>, into plaintext. One item per line. This helps when you’re quickly copying a list of dropdown items (using Developer Tools) into Excel.

    Limitation: the current versiont works when each element is on its own line. This isn’t necessarily always going to be the case with valid HTML, though.

  • Search keywords n-gram analysis tool

    This is an n-gram analysis tool for search keywords from Google Webmaster Console. Simply copy the query and frequency (of clicks, or impressions) into the “Input field”. You don’t need to enter the header row. This tools relies that the pasted data will separate the phrase from the # of clicks with a tab character. What makes this tool unique is that it takes into account the weighed frequencies of a term’s appearance in your list.

    For example, if you are calculating an n-gram of 2, and your query click counts are:

    • plumbers in Toronto (22 clicks)
    • plumbers in New York (11 clicks)

    Then “plumbers in” will have a total weight of 33 clicks.







    Your feedback is important to me - leave a comment if you run into a bug / have a killer feature request. For bugs, tell me what you did, how the tool responded, and what your ideal expected response was.