Author: admin

  • A place I’ve never been to. A place I’ll never go.

    “Market Village” at 4390 Steeles Ave. East.
    It’s a mall just North of Toronto.

    I’ve always wanted to visit Market Village, but I never will.

    And neither will you.

    I mean, don’t get me wrong. If you go online the mall looks quite lively. Google Maps shows it where it’s always been. There on the right, next to “Pacific Mall”. You can even see the internal layout if you look closely.

    Elsewhere, map markers show you the stores in the mall. With reviews and pictures and everything:

    But if you and I get in the car and drive there – no, don’t put your feet there. I borrowed the car from my Mother and I don’t wanna mess it up! Listen, if you and I get in the car then this is what we’ll see when we get there:

    (more…)
  • Microsoft ICE (Image Composite Editor)

    Microsoft ICE (Image Composite Editor)

    Microsoft Research created a tool called ICE for automatically stitching together many pictures into a panorama / composite. It is no longer available from Microsoft, but here are backed up copies for download:

    (And here is a link for the 64 bit download on CNET)

    (more…)
  • 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…)
  • Microsoft Systems Journal

    Microsoft Systems Journal (MSJ) was the first programming publication from Microsoft. Predating the Windows operating system, MSJ covered MS-DOS internals beginning in 1986. It later became MSDN.

    I heard about MSJ on the PCJS.org blog, which has posts like “Corporations Are Crappy Archivists” that resonate with me.

    MSJ is another one of those programmer-centric publications that was allowed to disappear from the Web. The content is only available through snapshots on the Wayback Machine and some older content is on the MSDN Library CD from 1996 (tip: use the customer key 337-7364994 during installation on your virtual machine).

    All the content I could get is below for your browsing. Click here to view photos of the covers on many of these MSJ issuess.

    (more…)
  • Digital Archival – link dump

    Why even archive?

    Because Corporations are Crappy Archivists and there are A Million Ways to Die on the Web (by ArchiveTeam). ArchiveTeam lists examples of different reasons major websites disappear from the Web.

    A guide on how to preserve your local music scene with Internet Archive

    Summary of the 4 main points of Archive and Survive, or How To Make Your New Minimal Post-Hardcore Inspired Hyperpop Adjacent Chicago Juke Meets Early Gabber Project Last For A Thousand Years (In Four Easy Steps!):

    • Save everything (don’t trust a mega-corp to save it for you)
    • Reperform
    • Collaborate with other forms (using a piece within a new medium makes it more resilient)
    • Make your rich friends buy original instruments
      “We only have the Stradivari and Guarneri string instruments still around played today because of fuccboi nobles who bought violins they weren’t very good at playing”

    Link rot scale – Pew Research says 38% of webpages that existed in 2013 are no longer accessible a decade later

    Notable big sites that disappeared before our eyes: MySpace, Geocities, MTV News and their archive, Comedy Central site.

    Do you have to download all the things?
    No.
    Anna’s Archive: How to become a pirate archivist taught me that there is value in downloading metadata. It is better to know that Thing X existed at time Y than to have zero information. Some information is better than the “big perfect archiving project that you never undertook.”

    Archiving Proxies

    WARC proxies – https://github.com/internetarchive/warcprox (note: won’t work on Windows because it relies on fcntl module) and ArchiveBox Proxy for archiving full pages while you scrape data. Telerik Fiddler might be another workable option for saving session traffic.

    What I ended up using for a project on Windows was mitmproxy with the mitmdump command line executable that comes with it. You can use the --set hardump="./myfile.har" argument to save your captured session as a standard HAR file. Here’s an example script that tracks anything you send through localhost:8080 except requests to a few ad-server domains:

    mitmdump --set hardump="./myhardump.txt" !~a !~d "doubleclick|forter|google|clarity|bing|criteo|tiktok|facebook|quantummetric|stickyadstv|agkn.com|taboola|bluekai|adsrvr|casalemedia|adnxs|pubmatic|outbrain"

    And here is a reference to mitmdump command-line options.
    By default, mitmproxy validates inbound headers. Sometimes, a violation of HTTP/2 headers can crash your session – you can disable this validation with the --set validate_inbound_headers=false command line parameter

    You can also script mitmproxy and mitmdump to have them behave as mock-servers, and to match-and-replace content on the fly. I’m especially grateful for KevCui’s mitmproxy scripts because I only know enough Python to go hissss I’ma snaek!!

    Downloading webpages

    https://en.wikipedia.org/wiki/Help:Using_the_Wayback_Machine – several URL parameter settings in Wayback Machine. You can just set the year to get the closest match, rather than an exact date. You can use “if_” to get minimal iframing w/ URL rewrite, or “id_” to get the literal HTML that the Wayback machine got originally – without any added code/rewrites.
    Ex:

    https://web.archive.org/web/2011if_/http://msdn.microsoft.com/en-us/magazine/bb985653.aspx

    You can also access Wayback Machine data using their CDX API:

    If you are running into files being blocked because of CORS (in Chrome, “ERR_BLOCKED_BY_ORB”). Run Chrome like this:

    https://web.archive.org/cdx/search/cdx?url=*.co.yu&collapse=urlkey&filter=mimetype:text/html&limit=1000

    Here is a sample project writeup, and here is the official CDX API documentation.

    (more…)
  • Dr. Dobbs – Web Articles from 2008

    As the Dr. Dobb’s website continues its decline, I’ve gathered a full set of it’s online articles for the year 2008 (these are different from the print journal articles from the same year in the set from 1988-2009).

    You can search through them:

    Or browse them here:

    (more…)
  • Every year, I buy a new car.

    Every year, I buy a new car.

    (Originally posted on LinkedIn on Jan 30, 2024)

    Every year, I buy a new car.

    It started in 2010 when I moved out on my own: a black Dodge Caliber. Second hand.

    This year’s purchase was a new 2023 Kia Forte that I picked up from a dealer in St. Catharines.

    And so on, every year in between, I’ve spent my after-tax money to purchase a car.

    You must be thinking “where does he store these cars?” or maybe “why would anyone do this?”

    Well, you see… I don’t buy these cars for myself.

    I buy them for Susan, my landlord’s niece. For Rajiv, another landlord’s cousin. In 2016, I bought a real treat – a new 2016 Toyota Prius C – for Carrie. She was my landlord’s second wife.

    As a renter I have to hand over a car’s-worth of cash every year. For the privilege of living indoors.

    I know, I know. “Nothing in life is free”. We all have to pay.

    But it’s a whopper, isn’t it? When you really think about the sums involved…
    And it’s a doozy when you picture the alternative to having a roof over your head (I ❤️ love you Mom, but me and the fam aren’t moving back into the spare bedroom )

    My landlords have changed over the years: I started with Briarlane, a large holding company here in Toronto.

    Then my landlord was Akelius – a Swedish real estate firm who’s main trick is to perform unnecessary “improvements” to jack up your rent.

    In 2016 my landlord was CAP REIT – a REIT is a special scam that charges real-estate businesses way less tax than other businesses. Because… they’re a sort of elaborate hobby rather than a for-profit entity!?

    One day you – yes you – will have a chance to lighten the burden for renters like me.

    Your chance will look like voting for politicians who support denser housing, more multi-storey, more “container” or “prefab” housing.

    Your chance might be filling a city-run survey where you say you’re ok with more schools in your neighbourhood & more 3-bedroom units in new buildings.

    Your chance might look like expressing support for an ombudsman who’s investigating corruption in the construction industry, and corruption in your Province’s housing ministry (this is how you know I’m from Ontario 😆 ).

    Come join me in pushing for housing options that make sense for renters.

    And maybe – one day – I’ll be able to give you a lift in a real car!

  • 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...
  • Search Dr. Dobbs Journal Articles

    Use this basic in-depth search to get a max of 20 documents that have your term:

    Or press CTRL + F in your browser to search for specific keywords. Click on the links to read articles. These are Dr. Dobbs article headings from 1988 to 2009 (from oldest to newest).

    If you want to hook me up with a real search engine, you’re welcome to it 😅

    (more…)
  • Jacob Eats: Cream Collon

    We all know how eating works:

    The food goes in your mouth hole. It slides down the neck tube. Gets pummelled by the stomach muscles. Then it galumphs down the small intestine, spelunks through your large intestine, and PAPOW! that brown, gooey goodness – yes ladies and gentlemen – today I am munching on that Cream Collon.

    This Cream Collon snack starts out promising.

    (more…)