View Source
The actual code behind this page. No minification. No transpilation. What you see is what runs.
|
| $pageTitle = "J's stuff — dispelled.ca"; |
| $currentPage = 'j'; |
| require_once __DIR__ . '/includes/config.php'; |
| require_once __DIR__ . '/includes/weather.php'; |
| $weather = getWeather(); |
| $SECTIONS = [ |
| 'Weather' => [ |
| ['Ardill Weather', 'https://www.wunderground.com/weather/ca/ardill/IARDIL4'], |
| ['Weather Network', 'http://www.theweathernetwork.com/weather/cask0214'], |
| ['SK Highway Hotline', 'https://hotline.gov.sk.ca/map'], |
| ['Weather Canada', 'https://weather.gc.ca/city/pages/sk-51_metric_e.html'], |
| ['Weather Underground', 'https://www.wunderground.com/weather/ca/mossbank/49.94,-105.96'], |
| ], |
| 'Coffee Time' => [ |
| ['Gab', 'https://gab.com/'], |
| ['Reddit', 'http://reddit.com/'], |
| ['Slashdot', 'http://slashdot.org/'], |
| ['Ars Technica', 'http://arstechnica.com/'], |
| ['Netgate Forums', 'https://forum.netgate.com/'], |
| ['The Linux Code', 'https://thelinuxcode.com/'], |
| ['Typing', 'https://www.typing.com/'], |
| ['Chess', 'https://www.chess.com/play/computer'], |
| ['Yousician', 'https://yousician.com/'], |
| ['Bible.com', 'https://www.bible.com/reading-plans'], |
| ['Norquay Covenant Church', 'https://www.facebook.com/norquaycovenantchurch/'], |
| ], |
| 'Other Media' => [ |
| ['Thinkspot', 'https://www.thinkspot.com/'], |
| ['The Beartaria Times', 'https://app.beartariatimes.com/'], |
| ['Rumble', 'https://rumble.com/'], |
| ['Bitchute', 'https://www.bitchute.com/'], |
| ['WND', 'https://www.wnd.com/'], |
| ['Infowars', 'https://infowars.com/'], |
| ], |
| 'Music' => [ |
| ['Ableton', 'https://ableton.com/'], |
| ['Ableton Forum', 'https://forum.ableton.com/'], |
| ['Ableton Manual', 'https://www.ableton.com/en/manual/live-concepts/'], |
| ['Focusrite', 'https://focusrite.com/'], |
| ['Roland Cloud', 'https://rolandcloud.com/'], |
| ['Addictive Drums', 'https://www.xlnaudio.com/products/addictive_drums_2'], |
| ['Songsterr', 'https://www.songsterr.com/'], |
| ["Scott's Bass Lessons",'https://scottsbasslessons.com/'], |
| ['Juststrings', 'http://www.juststrings.com/'], |
| ], |
| 'VST Effects' => [ |
| ['Positive Grid (Bias AMP/FX/Pedal)', 'https://www.positivegrid.com/'], |
| ['Valhalla DSP', 'https://valhalladsp.com/'], |
| ], |
| 'Sound Packs' => [ |
| ['Production Labs', 'https://www.production-labs.com/'], |
| ['Unison Audio', 'https://unison.audio/'], |
| ['Groove Monkee', 'https://groovemonkee.com/'], |
| ['Oddgrooves', 'https://oddgrooves.com/'], |
| ['ADSR Sounds', 'https://www.adsrsounds.com/'], |
| ], |
| 'VSTs' => [ |
| ['Ampeg SVT Suite', 'https://ampeg.com/svt-suite/'], |
| ['Arturia', 'https://www.arturia.com/support/downloads&manuals'], |
| ['GG Audio - Blue3', 'https://gg-audio.com/blue3.html'], |
| ['AAS - Lounge Lizard', 'https://www.applied-acoustics.com/lounge-lizard-ep-4/'], |
| ["Lost in 70's", 'https://lostin70s.com/'], |
| ['Klimper 2', 'https://www.klimper-plugin.com/products/klimper-2'], |
| ['Orb Producer Suite', 'https://www.orbplugins.com/orb-producer-suite/'], |
| ['Plugin Alliance', 'https://www.plugin-alliance.com/'], |
| ], |
| 'Programming' => [ |
| ['Learn X in Y Minutes', 'https://learnxinyminutes.com/'], |
| ['Think in Geek — Exploring Aarch64', 'https://thinkingeek.com/series/exploring-aarch64/'], |
| ['MarioKartWii ARM Aarch64 Assembly', 'https://mariokartwii.com/armv8/'], |
| ['Geeks for Geeks', 'https://www.geeksforgeeks.org/'], |
| ['ARM64 / AArch64 Assembly Guide', 'https://modexp.wordpress.com/2018/10/30/arm64-assembly/'], |
| ['TutorialsPoint C Tutorial', 'https://www.tutorialspoint.com/cprogramming/index.htm'], |
| ['GNU Bash Manual', 'https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html'], |
| ], |
| 'Rapidtables' => [ |
| ['ASCII / Hex / Bin / Dec Converter', 'https://www.rapidtables.com/convert/number/ascii-hex-bin-dec-converter.html'], |
| ['Decimal to Hex', 'https://rapidtables.com/convert/number/decimal-to-hex.html'], |
| ['Binary to Hex', 'https://rapidtables.com/convert/number/binary-to-hex.html'], |
| ['Decimal to Binary', 'https://rapidtables.com/convert/number/decimal-to-binary.html'], |
| ['Hex to Binary', 'https://rapidtables.com/convert/number/hex-to-binary.html'], |
| ['Hex to Decimal', 'https://rapidtables.com/convert/number/hex-to-decimal.html'], |
| ['Binary to Decimal', 'https://rapidtables.com/convert/number/binary-to-decimal.html'], |
| ['Binary to String', 'https://rapidtables.com/convert/number/binary-to-string.html'], |
| ['String to Binary', 'https://rapidtables.com/convert/number/string-to-binary.html'], |
| ], |
| 'Prepping' => [ |
| ['Preppers Reddit', 'https://reddit.com/r/preppers/'], |
| ['Ask a Prepper', 'https://askaprepper.com'], |
| ], |
| 'Web Tools' => [ |
| ['Proton', 'https://proton.me/'], |
| ['Shopify', 'https://shopify.com/'], |
| ['Namecheap', 'https://namecheap.com/'], |
| ['What is my IP', 'https://www.whatismyip.com'], |
| ['DNS Leak Test', 'https://www.dnsleaktest.com/'], |
| ['SSL Checker', 'https://decoder.link/sslchecker/'], |
| ['Mail Tester', 'https://www.mail-tester.com/'], |
| ['DKIM Validator', 'https://dkimvalidator.com/'], |
| ['Font Squirrel', 'https://www.fontsquirrel.com/tools/webfont-generator'], |
| ['Favicon.io', 'https://favicon.io/favicon-converter/'], |
| ['Pingdom', 'http://tools.pingdom.com/fpt/'], |
| ['OpenDNS', 'https://opendns.com/'], |
| ['Speedtest.net', 'https://speedtest.net/'], |
| ['W3C Markup Validator','https://validator.w3.org/'], |
| ], |
| 'Shopping' => [ |
| ['Amazon', 'https://amazon.ca'], |
| ['Temu', 'https://Temu.com'], |
| ['Digikey', 'https://Digikey.com'], |
| ['Costco', 'https://Costco.ca'], |
| ], |
| 'Skateboarding, Biking & Shades' => [ |
| ['Area 51 Skateshop', 'http://a51.ca'], |
| ['Primary Skateboards', 'https://primaryskateboards.ca/'], |
| ['The Bike Shop Calgary', 'https://www.thebikeshop.com/'], |
| ['Foster Grant', 'https://fostergrant.com/'], |
| ], |
| 'Buy and Sell' => [ |
| ['eBay', 'https://ebay.ca/'], |
| ['Kijiji Musical Instruments', 'https://www.kijiji.ca/b-musical-instrument/moose-jaw/c17l1700195'], |
| ['Used Regina Musical Instruments', 'http://www.usedregina.com/classifieds/musical-instruments'], |
| ['Sask. Kijiji Classic Cars — Ford', 'https://www.kijiji.ca/b-classic-cars/saskatchewan/ford/k0c122l9009'], |
| ], |
| '3D Printing' => [ |
| ['Thingiverse', 'https://thingiverse.com/'], |
| ['Thangs', 'https://thangs.com/?sort=likes&range=month'], |
| ['Cults 3D', 'https://cults3d.com/'], |
| ['Printables', 'https://www.printables.com/'], |
| ['My Mini Factory', 'https://www.myminifactory.com/search/?stw=1&sortBy=date&featured=1'], |
| ['Youmagine', 'https://www.youmagine.com/'], |
| ['Creality', 'https://www.creality.com/pages/download/'], |
| ['Cura by Ultimaker','https://ultimaker.com/software/ultimaker-cura/'], |
| ], |
| 'Hunting' => [ |
| ['Saskatchewan Hunting Guide 2024-25', 'https://pubsaskdev.blob.core.windows.net/pubsask-prod/140653/2024-25%252BHunters%252BGuide.pdf'], |
| ['Targets.ws', 'https://www.targets.ws/'], |
| ['Thompson Target', 'https://www.thompsontarget.com/hunting-shooting-targets/'], |
| ['Targets For Free', 'https://targets4free.com/'], |
| ], |
| 'Stocks' => [ |
| ['Superstonk Reddit', 'https://www.reddit.com/r/superstonk/'], |
| ['GameStop (MarketWatch)', 'https://www.marketwatch.com/investing/stock/gme'], |
| ['Vaalco (MarketWatch)', 'https://www.marketwatch.com/investing/stock/egy'], |
| ['MPXI (MarketWatch)', 'https://www.marketwatch.com/investing/stock/mpxi?countrycode=ca'], |
| ['BTZI (MarketWatch)', 'https://www.marketwatch.com/investing/stock/BTZI'], |
| ['Exro Technologies (MarketWatch)', 'https://www.marketwatch.com/investing/stock/exro'], |
| ], |
| 'Books & Audiobooks' => [ |
| ['Palliser Library', 'https://palliserlibrary.com/'], |
| ['Audible', 'http://www.audible.com/'], |
| ['LibriVox', 'https://librivox.org/search?primary_key=0&search_category=genre&search_page=1&search_form=get_results'], |
| ['Archive.org Audiobooks','https://archive.org/details/audio_bookspoetry'], |
| ], |
| 'Farming' => [ |
| ['My CNH Store', 'https://www.mycnhstore.com/us/en/default/'], |
| ['My John Deere', 'https://myjohndeere.deere.com/mjd/my/login'], |
| ['Bin Sense', 'https://my.intragrain.com/'], |
| ], |
| 'Fitness' => [ |
| ['IFit Dashboard', 'https://www.ifit.com/'], |
| ['Concept2 Rowing Logbook','https://log.concept2.com/log'], |
| ['Stronglifts 5x5', 'http://stronglifts.com/5x5/'], |
| ['Myfitnesspal', 'https://www.myfitnesspal.com/'], |
| ['T-Nation', 'https://www.t-nation.com/'], |
| ], |
| 'Games' => [ |
| ['Honkai Star Rail', 'https://hsr.hoyoverse.com/en-us/'], |
| ['HSR Reddit', 'https://www.reddit.com/r/HonkaiStarRail/'], |
| ['Genshin Impact', 'https://genshin.hoyoverse.com/en/'], |
| ['Genshin Reddit', 'https://www.reddit.com/r/Genshin_Impact/'], |
| ['HoyoLab', 'https://www.hoyolab.com/home'], |
| ], |
| ]; |
| require_once __DIR__ . '/includes/header.php'; |
| ?> |
| <h1 class="page-title">J’s stuff</h1> |
| <?php if ($weather): ?> |
| <?php |
| $days = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']; |
| ?> |
| <div class="weather-widget"> |
| <div class="weather-current"> |
| <div class="weather-icon"><?= $weather['icon'] ?></div> |
| <div class="weather-main"> |
| <div> |
| <span class="weather-temp"><?= $weather['temperature'] ?>°C</span> |
| <span class="weather-feels">feels like <?= $weather['feelsLike'] ?>°</span> |
| </div> |
| <div class="weather-condition"><?= htmlspecialchars($weather['condition']) ?></div> |
| <div class="weather-location"><?= htmlspecialchars($weather['location']) ?></div> |
| </div> |
| <div class="weather-stats"> |
| <div> |
| <div class="weather-stat-value"><?= $weather['humidity'] ?>%</div> |
| <div class="weather-stat-label">Humidity</div> |
| </div> |
| <div> |
| <div class="weather-stat-value"><?= $weather['windSpeed'] ?> km/h</div> |
| <div class="weather-stat-label"><?= htmlspecialchars($weather['windDirection']) ?></div> |
| </div> |
| </div> |
| </div> |
| <div class="forecast-strip"> |
| <?php foreach ($weather['forecast'] as $i => $day): |
| $dt = new DateTime($day['date']); |
| $label = $i === 0 ? 'Today' : $dt->format('D'); |
| $precip = $day['precipitationProbability']; |
| ?> |
| <div class="forecast-day"> |
| <span class="forecast-label"><?= $label ?></span> |
| <span class="forecast-icon"><?= $day['icon'] ?></span> |
| <span class="forecast-high"><?= $day['high'] ?>°</span> |
| <span class="forecast-low"><?= $day['low'] ?>°</span> |
| <?php if ($precip > 0): ?> |
| <span class="forecast-precip"><?= $precip ?>%</span> |
| <?php endif; ?> |
| </div> |
| <?php endforeach; ?> |
| </div> |
| </div> |
| <?php endif; ?> |
| <div class="j-sections-grid"> |
| <?php foreach ($SECTIONS as $category => $links): ?> |
| <section class="j-section"> |
| <h2><?= htmlspecialchars($category) ?></h2> |
| <ul> |
| <?php foreach ($links as [$label, $url]): ?> |
| <li><a href="<?= htmlspecialchars($url) ?>" target="_blank" rel="noreferrer"><?= htmlspecialchars($label) ?></a></li> |
| <?php endforeach ?> |
| </ul> |
| </section> |
| <?php endforeach ?> |
| </div> |
| <?php require_once __DIR__ . '/includes/footer.php'; ?> |
dispelled