41554 blogs · [ { "id": "01a087e1-d029-71f9-ab93-467f6a42a23f", "title": "Automated Cat Deterrent with Frigate, ESPHome, and Home Assistant", "url": "https://sjtrny.com/posts/2026-07-07-automated-cat-deterrent-with-frigate-esphome-and-home-assistant/", "published_at": "2026-07-07T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1e6033930", "title": "ESPHome HW211 Component", "url": "https://sjtrny.com/posts/2026-06-03-esphome-hw211-component/", "published_at": "2026-06-03T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1e6b1269f", "title": "Heat Pump Hot Water Wi-Fi Adapter", "url": "https://sjtrny.com/posts/2026-05-26-heat-pump-hot-water-wi-fi-adapter/", "published_at": "2026-05-26T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1e6b887d3", "title": "Cloud-Free PETKIT Feeder", "url": "https://sjtrny.com/posts/2026-05-24-cloud-free-petkit-feeder/", "published_at": "2026-05-24T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1e71aca89", "title": "Disk Shelf Fan Controller", "url": "https://sjtrny.com/posts/2026-05-24-disk-shelf-fan-controller/", "published_at": "2026-05-24T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1e7961fa9", "title": "Room Controllers", "url": "https://sjtrny.com/posts/2026-05-14-room-controllers/", "published_at": "2026-05-14T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1e8131b07", "title": "ESPHome Weekly Roundup: 4th May", "url": "https://sjtrny.com/posts/2026-05-04-esphome-weekly-roundup-4th-may/", "published_at": "2026-05-04T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1e8561695", "title": "SydPy: Taking Back the Streets", "url": "https://sjtrny.com/posts/2026-04-30-sydpy-taking-back-the-streets/", "published_at": "2026-04-30T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1e879ff52", "title": "Teaching at Scale - UNSW Seminar", "url": "https://sjtrny.com/posts/2026-04-29-teaching-at-scale-unsw-seminar/", "published_at": "2026-04-29T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1e8995275", "title": "ESPHome Weekly Roundup: 27th April", "url": "https://sjtrny.com/posts/2026-04-27-esphome-weekly-roundup-27th-april/", "published_at": "2026-04-27T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1e98e04e1", "title": "ESPHome Weekly Roundup: 18th April", "url": "https://sjtrny.com/posts/2026-04-18-esphome-weekly-roundup-18th-april/", "published_at": "2026-04-18T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1e993be73", "title": "Evening Lights with Ambient Lux", "url": "https://sjtrny.com/posts/2026-03-18-evening-lights-with-ambient-lux/", "published_at": "2026-03-18T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1ea0d3d24", "title": "Ecowitt Weather Station", "url": "https://sjtrny.com/posts/2026-03-03-ecowitt-weather-station/", "published_at": "2026-03-03T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1eaae3038", "title": "Rocket Lamp", "url": "https://sjtrny.com/posts/2026-02-15-rocket-lamp/", "published_at": "2026-02-15T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1eb0dbd71", "title": "Smart Soy Light", "url": "https://sjtrny.com/posts/2025-12-28-smart-soy-light/", "published_at": "2025-12-28T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1eb26ccb3", "title": "Single Image Blind Parameter Recovery", "url": "https://sjtrny.com/posts/2025-12-03-single-image-blind-parameter-recovery/", "published_at": "2025-12-03T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1eb30f304", "title": "ASCILITE Innovation Award and Allan Christie Innovation Award", "url": "https://sjtrny.com/posts/2025-12-02-ascilite-innovation-award-and-allan-christie-innovation-award/", "published_at": "2025-12-02T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1eb979ffb", "title": "Empowering women to code: Playful learning with Karel", "url": "https://sjtrny.com/posts/2025-12-01-empowering-women-to-code-playful-learning-with-karel/", "published_at": "2025-12-01T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1ebdd26c4", "title": "Taking Back the Streets: NaviLens and the Fight for Open Navigation", "url": "https://sjtrny.com/posts/2025-09-12-taking-back-the-streets-navilens-and-the-fight-for-open-navigation/", "published_at": "2025-09-12T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1ec935656", "title": "wyoming-whisper-intel", "url": "https://sjtrny.com/posts/2025-08-31-wyoming-whisper-intel/", "published_at": "2025-08-31T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1ed21bde4", "title": "Rathole Maintainer", "url": "https://sjtrny.com/posts/2025-06-18-rathole-maintainer/", "published_at": "2025-06-18T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1ed30c600", "title": "caddy-hostnames", "url": "https://sjtrny.com/posts/2025-04-18-caddy-hostnames/", "published_at": "2025-04-18T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1eda977d3", "title": "freelens", "url": "https://sjtrny.com/posts/2024-12-24-freelens/", "published_at": "2024-12-24T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1ee84a265", "title": "Enhancing Programming Ability with Playful Learning and Karel", "url": "https://sjtrny.com/posts/2024-11-22-enhancing-programming-ability-with-playful-learning-and-karel/", "published_at": "2024-11-22T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1ef373b23", "title": "Wayne Lonergan Award for Outstanding Leadership in Teaching", "url": "https://sjtrny.com/posts/2024-11-06-wayne-lonergan-award-for-outstanding-leadership-in-teaching/", "published_at": "2024-11-06T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f02adc8d", "title": "Update: Visualisations and Generalisations for Two Candles, One Cake", "url": "https://sjtrny.com/posts/2024-10-28-update-visualisations-and-generalisations-for-two-candles-one-cake/", "published_at": "2024-10-28T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f0ff00e3", "title": "Update: Too Many Guns", "url": "https://sjtrny.com/posts/2024-10-01-update-too-many-guns/", "published_at": "2024-10-01T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f1cea65a", "title": "Playful Extra-Curricular Learning In Programming Education", "url": "https://sjtrny.com/posts/2024-07-26-playful-extra-curricular-learning-in-programming-education/", "published_at": "2024-07-26T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f287d996", "title": "Playful Extra-Curricular Learning In Programming Education", "url": "https://sjtrny.com/posts/2024-05-14-playful-extra-curricular-learning-in-programming-education/", "published_at": "2024-05-14T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f2e33f5c", "title": "2023 Educational Innovation Award", "url": "https://sjtrny.com/posts/2023-11-03-2023-educational-innovation-award/", "published_at": "2023-11-03T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f379c44e", "title": "Assurance of Learning Through Testing", "url": "https://sjtrny.com/posts/2023-08-18-assurance-of-learning-through-testing/", "published_at": "2023-08-18T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f392af0d", "title": "Collaborative Programming in the Classroom: Approaches and Insights", "url": "https://sjtrny.com/posts/2023-08-18-collaborative-programming-in-the-classroom-approaches-and-insights/", "published_at": "2023-08-18T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f4076a27", "title": "Winner: Teaching and Learning Innovation Grant", "url": "https://sjtrny.com/posts/2023-08-07-winner-teaching-and-learning-innovation-grant/", "published_at": "2023-08-07T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f4a11c38", "title": "Engaging Students as Collaborative Partners: A Reflective Approach to Topic Selection", "url": "https://sjtrny.com/posts/2023-05-31-engaging-students-as-collaborative-partners-a-reflective-approach-to-topic-selection/", "published_at": "2023-05-31T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f5658a52", "title": "Academic of the Year - Beta Gamma Sigma Honour Society", "url": "https://sjtrny.com/posts/2023-05-04-academic-of-the-year-beta-gamma-sigma-honour-society/", "published_at": "2023-05-04T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f6365372", "title": "Working Together: The Benefits of Providing Choice in Topic Selection", "url": "https://sjtrny.com/posts/2023-03-31-working-together-the-benefits-of-providing-choice-in-topic-selection/", "published_at": "2023-03-31T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f6e30660", "title": "Promoted to Senior Lecturer", "url": "https://sjtrny.com/posts/2023-01-01-promoted-to-senior-lecturer/", "published_at": "2023-01-01T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f7cf2ca5", "title": "Toolbox & Innovator Award", "url": "https://sjtrny.com/posts/2022-11-17-toolbox-innovator-award/", "published_at": "2022-11-17T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f81533a9", "title": "Detecting and Reducing Academic Misconduct in Programming Assessments", "url": "https://sjtrny.com/posts/2022-09-28-detecting-and-reducing-academic-misconduct-in-programming-assessments/", "published_at": "2022-09-28T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f87ed1ec", "title": "Dynamic Pictures for Greater Information Engagement", "url": "https://sjtrny.com/posts/2022-09-28-dynamic-pictures-for-greater-information-engagement/", "published_at": "2022-09-28T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f89dc14e", "title": "QBUS5010: Intro to Dashboarding and Data Visualisation", "url": "https://sjtrny.com/posts/2022-08-01-qbus5010-intro-to-dashboarding-and-data-visualisation/", "published_at": "2022-08-01T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f8db3cd8", "title": "Frame Game Solver", "url": "https://sjtrny.com/posts/2022-07-21-frame-game-solver/", "published_at": "2022-07-21T00:00:00+00:00" }, { "id": "01a087e1-d02a-7102-a87b-8ed1f9b7e9ad", "title": "Two Candles, One Cake", "url": "https://sjtrny.com/posts/2022-07-16-two-candles-one-cake/", "published_at": "2022-07-16T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef1038c10", "title": "Dynamic Pictures to Support Learning in Business Analytics", "url": "https://sjtrny.com/posts/2022-06-27-dynamic-pictures-to-support-learning-in-business-analytics/", "published_at": "2022-06-27T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef16dc61e", "title": "Optimal Diagnosis Strategies: Lessons from Wordle", "url": "https://sjtrny.com/posts/2022-03-18-optimal-diagnosis-strategies-lessons-from-wordle/", "published_at": "2022-03-18T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef1ad4e37", "title": "Wordle Solver", "url": "https://sjtrny.com/posts/2022-01-23-wordle-solver/", "published_at": "2022-01-23T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef1b40bc0", "title": "At the Turn of the Tide – Teaching Python in Real-Time at Scale", "url": "https://sjtrny.com/posts/2021-11-17-at-the-turn-of-the-tide-teaching-python-in-real-time-at-scale/", "published_at": "2021-11-17T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef1c4ea15", "title": "LTR390 Support in ESPHome", "url": "https://sjtrny.com/posts/2021-10-20-ltr390-support-in-esphome/", "published_at": "2021-10-20T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef232f069", "title": "SCD4X Support in ESPHome", "url": "https://sjtrny.com/posts/2021-10-20-scd4x-support-in-esphome/", "published_at": "2021-10-20T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef296102d", "title": "Top teachers should have a 50 per cent pay rise, expert says", "url": "https://sjtrny.com/posts/2021-10-10-top-teachers-should-have-a-50-per-cent-pay-rise-expert-says/", "published_at": "2021-10-10T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef2bd1acc", "title": "Python + Ed: code for collaborative learning", "url": "https://sjtrny.com/posts/2021-09-16-python-ed-code-for-collaborative-learning/", "published_at": "2021-09-16T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef2fec114", "title": "At the Turn of the Tide – Teaching Python in Real-Time at Scale", "url": "https://sjtrny.com/posts/2021-09-10-at-the-turn-of-the-tide-teaching-python-in-real-time-at-scale/", "published_at": "2021-09-10T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef319c185", "title": "PMSA003I Support in ESPHome", "url": "https://sjtrny.com/posts/2021-08-18-pmsa003i-support-in-esphome/", "published_at": "2021-08-18T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef415a12b", "title": "Efficient Sparse Subspace Clustering by Nearest Neighbour Filtering", "url": "https://sjtrny.com/posts/2021-08-01-efficient-sparse-subspace-clustering-by-nearest-neighbour-filtering/", "published_at": "2021-08-01T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef48b29d1", "title": "SHT4X Support in ESPHome", "url": "https://sjtrny.com/posts/2021-05-19-sht4x-support-in-esphome/", "published_at": "2021-05-19T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef4df2484", "title": "Graduate Certificate in Educational Studies (Higher Education)", "url": "https://sjtrny.com/posts/2021-04-14-graduate-certificate-in-educational-studies-higher-education/", "published_at": "2021-04-14T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef4e10c82", "title": "Fellow of the HEA", "url": "https://sjtrny.com/posts/2021-03-10-fellow-of-the-hea/", "published_at": "2021-03-10T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef577ec0b", "title": "QBUS5011: Introduction to Programming", "url": "https://sjtrny.com/posts/2021-03-01-qbus5011-introduction-to-programming/", "published_at": "2021-03-01T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef6339568", "title": "Forecasting website", "url": "https://sjtrny.com/posts/2020-10-27-forecasting-website/", "published_at": "2020-10-27T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef6b098e4", "title": "binsmooth", "url": "https://sjtrny.com/posts/2020-07-13-binsmooth/", "published_at": "2020-07-13T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef6c74e21", "title": "Teacher Pay Comparison", "url": "https://sjtrny.com/posts/2020-06-16-teacher-pay-comparison/", "published_at": "2020-06-16T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef7ae8f4f", "title": "Robust Functional Manifold Clustering", "url": "https://sjtrny.com/posts/2020-04-02-robust-functional-manifold-clustering/", "published_at": "2020-04-02T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef7f2680f", "title": "Too Many Guns", "url": "https://sjtrny.com/posts/2019-10-03-too-many-guns/", "published_at": "2019-10-03T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef8dc7225", "title": "dash-multi", "url": "https://sjtrny.com/posts/2019-04-21-dash-multi/", "published_at": "2019-04-21T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef996a230", "title": "jitcache", "url": "https://sjtrny.com/posts/2019-02-07-jitcache/", "published_at": "2019-02-07T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264ef9e6ba1e", "title": "Selective Multi-Source Total Variation Image Restoration", "url": "https://sjtrny.com/posts/2015-11-23-selective-multi-source-total-variation-image-restoration/", "published_at": "2015-11-23T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264efa013f00", "title": "Low Rank Sequential Subspace Clustering", "url": "https://sjtrny.com/posts/2015-07-12-low-rank-sequential-subspace-clustering/", "published_at": "2015-07-12T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264efae01144", "title": "Affinity Pansharpening and Image Fusion", "url": "https://sjtrny.com/posts/2014-11-25-affinity-pansharpening-and-image-fusion/", "published_at": "2014-11-25T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264efc2f5f43", "title": "Image Matting for Sparse User Input by Iterative Refinement", "url": "https://sjtrny.com/posts/2013-11-26-image-matting-for-sparse-user-input-by-iterative-refinement/", "published_at": "2013-11-26T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264efcd8af80", "title": "Natural Image Matting with Total Variation Regularisation", "url": "https://sjtrny.com/posts/2012-12-03-natural-image-matting-with-total-variation-regularisation/", "published_at": "2012-12-03T00:00:00+00:00" }, { "id": "01a087e1-d02b-7245-a760-264efbc45333", "title": "Subspace Clustering for Sequential Data", "url": "https://sjtrny.com/posts/2014-subspace-clustering-for-sequential-data/", "published_at": null } ] posts Claim your blog
Back to sjtrny.com
Blog · corpus.blog/blogs/sjtrny.com/posts

sjtrny.com

sjtrny.com

2026

2025

2024

2023

2022

2021

2020

2019

2015

2014

2013

2012

Undated