Does anyone else sing the chorus to "Cherish" by Kool & The Gang to themselves whenever they play or watch streams of Balatro? Or is that just me?
#Region "Structs" Private Structure DayWeatherData Public dtDate As Date Public strLowTempF As String Public strHighTempF As String Public strLowTempC As String Public strHighTempC As String Public strCloudIconURL As String End Structure Private Structure WeatherTable Public nodTimeLayout As XmlNode Public nodData As XmlNode End Structure #End Region #Region "NWS XML Reader http://www.nws.noaa.gov/forecasts/xml" 'Converted to VB.Net by Ronald M. Clifford 'Original C#.Net by Mikhail Arkhipov Private Function FindLayoutTable(ByVal xmlDoc As XmlDocument, ByVal nodData As XmlNode) Dim nlTimeLayouts As XmlNodeList = xmlDoc.SelectNodes("/dwml/data/time-layout") Dim strTimeLayout As String = nodData.Attributes("time-layout").Value Dim node As XmlNode For Each node In nlTimeLayouts If strTimeLayout = node.SelectSingleNode("layout-key").InnerText Then Return node End If Next Return Nothing End Function Private Sub FillLowTemperatures(ByVal nodXML As XmlNode, ByRef dwdData() As DayWeatherData) Dim nlNodes As XmlNodeList = nodXML.SelectNodes("value") Dim intCount As Integer For intCount = 0 To UBound(dwdData) - 1 dwdData(intCount).strLowTempF = nlNodes(intCount).InnerText dwdData(intCount).strLowTempC = Math.Round(5 * (Double.Parse(dwdData(intCount).strLowTempF) - 32) / 9).ToString Next End Sub Private Sub FillHighTemperatures(ByVal nodXML As XmlNode, ByRef dwdData() As DayWeatherData) Dim nlNodes As XmlNodeList = nodXML.SelectNodes("value") Dim intCount As Integer For intCount = 0 To UBound(dwdData) - 1 dwdData(intCount).strHighTempF = nlNodes(intCount).InnerText dwdData(intCount).strHighTempC = Math.Round(5 * (Double.Parse(dwdData(intCount).strHighTempF) - 32) / 9).ToString Next End Sub Private Function ParseDateTime(ByVal str As String) As Date Return Date.Parse(str.Replace("T", " ").Substring(0, str.LastIndexOf("-"))) End Function Private Sub FillDayNameAndTime(ByVal nodLows As XmlNodeList, ByVal nodHighs As XmlNodeList, ByRef dwdData() As DayWeatherData) ' Choose first elemnt from low or high list depending on what is close to the current time. ' Typically weather report is about 'today' or 'tonight' on the current day or about ' day temperatures for the coming days. Therefoce remaining elements always come from ' the high temperatures list. Dim dtFirstLow As Date = ParseDateTime(nodLows(0).InnerText) Dim dtFirstHigh As Date = ParseDateTime(nodHighs(0).InnerText) Dim dtNow As Date = Now Dim nlNodes As XmlNodeList If dtFirstLow.Day = dtNow.Day And dtFirstHigh.Day = dtNow.Day Then ' choose nearest Dim intDiffFromLow = Math.Abs(dtFirstLow.Hour - dtNow.Hour) Dim intDiffFromHigh = Math.Abs(dtFirstHigh.Hour - dtNow.Hour) If intDiffFromHigh < intDiffFromLow Then nlNodes = nodHighs Else nlNodes = nodLows End If ElseIf dtFirstHigh.Day = dtNow.Day Then ' choose highs nlNodes = nodHighs Else ' choose lows nlNodes = nodLows End If Dim intCount As Integer For intCount = 0 To UBound(dwdData) - 1 Dim dt As Date = ParseDateTime(nlNodes(intCount).InnerText) If intCount = 0 Then dwdData(intCount).dtDate = dt Else dwdData(intCount).dtDate = New Date(dt.Year, dt.Month, dt.Day, 12, 0, 0) End If Next End Sub Private Sub FillCloudData(ByVal wt As WeatherTable, ByRef dwdData() As DayWeatherData) ' Cloud data is typically much longer than day high/low data ' We need to find times that match ones in high and low temp tables. Dim nlTimes As XmlNodeList = wt.nodTimeLayout.SelectNodes("start-valid-time") Dim nlIcons As XmlNodeList = wt.nodData.SelectNodes("icon-link") Dim intWeatherData As Integer = 0 Dim intNodes As Integer = 0 Dim intHourDiff As Integer = Integer.MaxValue Dim nodXML As XmlNode For Each nodXML In nlTimes Dim dt As Date = ParseDateTime(nodXML.InnerText) If dt.Date > dwdData(intWeatherData).dtDate.Date Then intWeatherData += 1 If intWeatherData > UBound(dwdData) Then Exit For intHourDiff = Integer.MaxValue End If If dt.Date = dwdData(intWeatherData).dtDate.Date Then Dim intDiff As Integer = Math.Abs(dt.Hour - dwdData(intWeatherData).dtDate.Hour) If intDiff < intHourDiff Then intHourDiff = intDiff dwdData(intWeatherData).strCloudIconURL = nlIcons(intNodes).InnerText End If End If intNodes += 1 Next End Sub Private Function ParseWeatherXML(ByVal strXMLWeather) As DayWeatherData() Try Dim dwd() As DayWeatherData Dim xmlDoc As New XmlDocument() ' load XML data into a tree xmlDoc.LoadXml(strXMLWeather) ' locate dwml/data/time-layout nodes. There should be three of them: ' - next week nighttime temperatures (lows) ' - next week daytime temperatures (highs) ' - next week cloud data ' Find roots nodes for temperature and cloud data Dim wtLowTemp As New WeatherTable() Dim wtHighTemp As New WeatherTable() Dim wtClouds As New WeatherTable() wtLowTemp.nodData = xmlDoc.SelectSingleNode("/dwml/data/parameters/temperature[@type='minimum']") wtHighTemp.nodData = xmlDoc.SelectSingleNode("/dwml/data/parameters/temperature[@type='maximum']") wtClouds.nodData = xmlDoc.SelectSingleNode("/dwml/data/parameters/conditions-icon") ' Find out corresponding time layout table for each top data node wtLowTemp.nodTimeLayout = FindLayoutTable(xmlDoc, wtLowTemp.nodData) wtHighTemp.nodTimeLayout = FindLayoutTable(xmlDoc, wtHighTemp.nodData) wtClouds.nodTimeLayout = FindLayoutTable(xmlDoc, wtClouds.nodData) ' Number of day data is min of low and high temperatures Dim nlLowTimes As XmlNodeList = wtLowTemp.nodTimeLayout.SelectNodes("start-valid-time") Dim nlHighTimes As XmlNodeList = wtHighTemp.nodTimeLayout.SelectNodes("start-valid-time") Dim intTimes As Integer = Math.Min(nlLowTimes.Count, nlHighTimes.Count) Dim dwdData(intTimes) As DayWeatherData Dim intCount As Integer For intCount = 0 To intTimes - 1 dwdData(intCount) = New DayWeatherData() Next ' Fill highs and lows FillLowTemperatures(wtLowTemp.nodData, dwdData) FillHighTemperatures(wtHighTemp.nodData, dwdData) FillDayNameAndTime(nlLowTimes, nlHighTimes, dwdData) FillCloudData(wtClouds, dwdData) Return dwdData Catch ex As Exception Return Nothing End Try End Function #End Region
Dim weather As New gov.weather.ndfdXML() Dim params As New gov.weather.weatherParametersType() params.maxt = True params.mint = True params.icons = True Dim strWeatherXML As String = weather.NDFDgen(39, -77, "time-series", Now, Now.AddDays(5), params) weather = Nothing params = Nothing Dim dwdWeather() As DayWeatherData = ParseWeatherXML(strWeatherXML)
Does anyone else sing the chorus to "Cherish" by Kool & The Gang to themselves whenever they play or watch streams of Balatro? Or is that just me?
I'm fact that's what Lingo needs: a "phone" block. The clue is an incorrect autocorrected form of the answer. ๐
It's like my phone knows I've been playing Lingo. I typed in "exited" and my phone was all:
โฌ๏ธ EXCITED ------
โช๏ธ
โช๏ธ
A comparison of the classic Tetris and Descent communities. Not a post I write lightly, either.
https://roncli.com/blogger/3703157809000934742/a-tale-of-two-communities
Aptiz played #Pentis again. In the beginning you can see roncli asking in the chat for the right version. About an hour later, he broke the #PentisRankings record with 60K ! Congratulations roncli ๐ ๐
https://www.twitch.tv/videos/2052528360?sr=a&t=11267s
Yeah, it's season 11. But the OTL Season 6 highlight reel is up, this time Fireball has taken the reins! Check out this video jam packed full of kills, deaths, silliness, and Sirius puns. https://www.youtube.com/watch?v=SXstLVjnaGo
Over on #thatbirdhellsite, someone retweeted sympathy for the people being laid off today...
...and then said that Amazon Games was hiring. You know, the one that just had layoffs in NOVEMBER.
Honestly? Tech sucks right now.
Seriously. Why is it called Sagittarius, A Star? Clearly, it's Sagittarius, A Black Hole. Silly astronomers.
This eslint/stylistic breakup is going to give me a headache. Don't developers have something better to do than give other developers busywork?
Bing is so bad. https://otl.gg is being blocked in their search results, and Bing webmaster tools are absolutely useless, not telling me why it's being blocked.
Does anyone know of some way to get a human to look at this and see what's wrong with it? #bing #microsoft
it's not actually common for real hackers to use two keyboards at once; that's just a stereo type.
Me and my wife, despite buying a house of nice size, always seem to get in each other's way, be it in the kitchen, on the stairs, it doesn't matter. She's all up in my two square feet.
I often joke that all I want for Christmas is my two square feet.
Update 2: The record that beat Blue Scuti stood for one day. Blue Scuti got it back.
I got the honor and privilege of calling the NES Tetris NTSC world record today while running Classic Tetris Wars on my Twitch channel for the very first time. It was thrilling. Congratulations to Blue Scuti for his 6,609,220 level 153 performance. https://clips.twitch.tv/DiligentDeadGoldfishDoritosChip-cx_vDMWAjKaZUK6N
like, you used to use a phone line to access the internet
now the internet is accessible on your phone
nothing has changed actually
Six Degrees of Sunday returns Sunday, January 7th, at https://twitch.tv/roncli. Cya there!
Are you ready to get Six'd Off?
Six Degrees of Sunday, my 6DoF long play Twitch series, is getting revived for 2024. Plus, I will be producing Six'd Off, a companion YouTube series showcasing each game.
Check out the announcement for the game list and more! https://www.youtube.com/watch?v=yeRbjjpQVZY
So I started a fresh YouTube channel some time ago, and yesterday I released the first real video to it.
Check out highlights from Argus Industrial Moons' run to the OTL Season 10 Best of the Rest title! https://www.youtube.com/watch?v=Z2x-GGW9FYI
People at work are calling Kubernetes K8, and I hate it. It's not "Kubernete"!
Want a preview of what CTWC will be like next weekend from a gameplay perspective? CTL Season 22 finals starting now.
No airport hell this morning, but you know that lady that talks about security at literally every airport? I just realized, she sounds old AF.
If this security line posted signs "5 minutes from this point", "10 minutes...", etc., They'd have to post them every foot. #airporthell
Did I miss Elon making another purchase? https://twitter.com/unity/status/1701650081403842851
That's a lovely free bundle of books for people interested in getting into games programming: https://www.fanatical.com/en/bundle/international-day-of-the-programmer-2023-free-giveaway
@shanselman Speaking of Overload, here's something you may be interested in... recently, some community members released "Overload First Strike", a single player Overload campaign that is a complete remake of the original Descent First Strike campaign.
https://overloadmaps.com/overload-first-strike
It can work with just the original game, but it works best with "olmod" as it takes advantage of some of the features it provides: https://olmod.overloadmaps.com
@PossiblyMax @deepthaw ya and there are new remakes of Descent like Overload that are enhanced and thereโs even hardware that Vic Putz made to make the Space Orb look like a controller with NO drivers. Works on all operating systems https://www.hanselman.com/blog/bringing-the-spaceorb-game-controller-forward-with-an-arduino-bridge-via-the-orbotron-9001
I don't know who wrote this, but MORE PATCH NOTES LIKE THIS PLEASE. ๐คฃ
First OTL flag capture in 7 seasons, and it was a game winner. https://clips.twitch.tv/PeppyFitOrangeDoggo-KcAMpnSlyb0Kts6y
I am so so there. I have dwdweather in hand. I am new to VB so I have no idea how to reach each item within.
I've tried a . but it tells me it is a system.array
Lost here. Help please?
dwdWeather(0)
Or use a For Each loop in order to access each of the items in order.
For Each dwd As DayWeatherData in dwdWeather
' Do something with the dwd object here.
Next