Download links to (some) old Hubstaff versions still online

I need to put Hubstaff on an older Windows PC and I’m looking for a respecively older release thinking it’d consume less resources. The official Hubstaff website links to 1.6.11, which is the newest now in January 2023. The direct download link format is https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/${version}/Hubstaff-${version}.${extension}, where ${version} is 1.6.11-35d12459. And because the build code/hash is… Continue reading Download links to (some) old Hubstaff versions still online

Where to put an event listener in a plugin?

You’re creating an event listener that inserts a database record every time the matching event fires. And you need the listener to be in a plugin. Which folder do you put it in? Here it says: A good place for this might be Plugin/src/Controller/Event And @admad on CakeSF Slack says it can also be Plugin/src/Event/.… Continue reading Where to put an event listener in a plugin?

Switching Hotmail.com/Outlook.com to the lightweight version

Below is the answer to this question from 2020. To force Hotmail.com/Outlook.com load the lightweight web versions, open your mail via one of these links: https://mail.live.com/?layout=light https://outlook.live.com/owa/?layout=light Both are working as of now (January 2023) Sadly, it doesn’t work for all accounts. I have two @msn.coms, and for one of them it throws Something went… Continue reading Switching Hotmail.com/Outlook.com to the lightweight version

Undefined index: verifyTokenSource, samesite

Undefined index: verifyTokenSource Undefined index: samesite I started getting this error in src/Http/Middleware/CsrfProtectionMiddleware.php after running composer update. To fix, run bin/cake cache clear_all

Using certbot with cloud DNS for DNS-01 challenge

Google Cloud You can copy-paste the below cli commands into the Google Cloud Shell, or do each step manually if you prefer so. # Define the project ID export PROJECT_ID=$(gcloud config get-value project) # Create a role for certbot with minimum required permissions gcloud iam roles create DNS01CERTBOT –project=$PROJECT_ID –title=”Certbot DNS-01 Validator” –description=”https://github.com/certbot/certbot/blob/a807240db7b8ca60bc1bd637a66282b3ca449417/certbot-dns-google/certbot_dns_google/__init__.py” –permissions=”dns.changes.create,dns.changes.get,dns.changes.list,dns.managedZones.get,dns.managedZones.list,dns.resourceRecordSets.create,dns.resourceRecordSets.delete,dns.resourceRecordSets.list,dns.resourceRecordSets.update” –stage=GA… Continue reading Using certbot with cloud DNS for DNS-01 challenge

Google Webmaster / Search Console “Couldn’t fetch” Sitemap?

I have a sitemap generated by a built-in Opencart extension. I submitted it to Google, but it fails to read it, saying: Couldn’t fetch Sitemap could not be read Needless to say, the URL is public and works just fine. The common advice is to try again and/or wait: Pending is the real status! Waiting… Continue reading Google Webmaster / Search Console “Couldn’t fetch” Sitemap?

Certbot standalone not able to bind to IPv4 and fails authorization procedure?

One way to run certbot would be standalone on a custom port, having Nginx receive the ACME verification on port 80 (standard and can not be changed) and proxy_pass it to that custom port. If you try that and get the following error, heads up: it may be misleading. Successfully bound to :8080 using IPv6… Continue reading Certbot standalone not able to bind to IPv4 and fails authorization procedure?

Expired SSL certificates on older iOS devices

Many websites these days use the free SSL certificates from LetsEncrypt. These are fully automated, (again) free and very convenient. On the downside, if something gets changed on their end, it may affect a lot of users. One of such changes happened with their ROOT certificate back in September 2021: DST Root CA X3 Expiration.… Continue reading Expired SSL certificates on older iOS devices

Non-destructive duplicate removal from a MySQL table

Create a new table CREATE TABLE records_new LIKE records; Add composite UNIQUE constraint preventing duplicates in the future ALTER TABLE records_new ADD UNIQUE idx_composite_UNIQUE (site_id ASC, session_id ASC, query ASC, remote_addr ASC); Copy records over. INSERT INTO records_new SELECT * FROM records ORDER BY id ON DUPLICATE KEY UPDATE records_new.created=NOW(); The above updates created to… Continue reading Non-destructive duplicate removal from a MySQL table