<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Lyle Olsen</title>
    <description>The latest articles on DEV Community by Lyle Olsen (@keskidev).</description>
    <link>https://dev.to/keskidev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F346089%2Ff8baef81-ff3b-4043-95ad-1550c7a5005b.jpeg</url>
      <title>DEV Community: Lyle Olsen</title>
      <link>https://dev.to/keskidev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/keskidev"/>
    <language>en</language>
    <item>
      <title>Machine Predictions and Lacrosse</title>
      <dc:creator>Lyle Olsen</dc:creator>
      <pubDate>Mon, 08 Mar 2021 18:11:42 +0000</pubDate>
      <link>https://dev.to/keskidev/machine-predictions-and-lacrosse-2eli</link>
      <guid>https://dev.to/keskidev/machine-predictions-and-lacrosse-2eli</guid>
      <description>&lt;p&gt;So it's been almost a year since I've even touched this lacrosse prediction program. I've done other projects that caught my attention and of course dealing with things of the pandemic didn't help either. But I'm back at it with this project for a little bit. So here's a refresher and small update.&lt;/p&gt;

&lt;p&gt;Last year I started working on a project to try and predict the winner of the NCAA division 1 mens lacrosse tournament. Then the pandemic happened and the lacrosse season was cancelled and I didn't really do anything with the project. &lt;/p&gt;

&lt;p&gt;Now, the lacrosse season has started again and I decided  to come back to this project and rework one of the aspects of it, the phase one of predicting game winners.&lt;/p&gt;

&lt;p&gt;Phase one of my project was to have the program look at each teams stats and decide a winner based on those. It was surprisingly accurate in the shortened season of 2020. I think it was around 60% correct, not too shabby. But this year I reworked the code a little bit. It's still based on the stats but I've changed the amount of points a team gets for having the better stat.&lt;/p&gt;

&lt;p&gt;The only reason behind the points for a certain stat is only what I think is important. I've been involved with lacrosse as a fan, player, and coach since 2004. It doesn't seem that long ago, but writing that number makes me realize how old I am. But I feel like I know what I'm talking about when it comes to lacrosse so I feel like the points I'm awarding are justified. Plus I still am tweaking them based on further thought.&lt;/p&gt;

&lt;p&gt;The first big 'test' for the program was this past weekend. There were a lot of games on Saturday and I felt like a good testing session. So Friday night I ran a program to update the needed stats for every team so it was up to date. Then I ran the prediction program and kept track of who was playing, who the program thought would win and I made a decision on who I thought would win.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5tJ7oFG3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m0jo0m878y8kdea45pes.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5tJ7oFG3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m0jo0m878y8kdea45pes.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After 29 games there are some interesting things I found.&lt;br&gt;
First off was how correct the program was. It was 54% correct on Saturday and a dismal 33% for the Sunday games. Just to compare I was picked right 64% on Saturday and was 100% on Sunday. Over the 2 days there were 14 games where I picked a different team than the program did. My question now is why did I choose different. Why would I not choose the team with the better stats?&lt;/p&gt;

&lt;p&gt;I think part of the reason is that college lacrosse has a parity problem. In that except for a few exceptions, the classic teams such as Syracuse, Virginia, Johns Hopkins and Maryland more often then not win games. There are two examples I wanted to point out that illustrates the parity issue perfectly.&lt;/p&gt;

&lt;p&gt;It was a game from a couple weeks ago; Utah vs. Loyola. The program picked Utah to win based on the stats. Utah had been putting up some pretty good stats the couple of games before this one.The other game was from this past Saturday; Vermont vs. Syracuse. Utah is in it's third season in Division 1. Syracuse is a powerhouse in lacrosse.They have won the championship 15 times! Vermont and Loyola have also been in Division one for quite a while. I'm not sure how long but it's been a lot of years. Loyola has also won the championship once.&lt;/p&gt;

&lt;p&gt;Now for the program to Utah or Vermont doesn't seem strange just looking at the stats. But I think more so in lacrosse you have to look at the history of the teams to guess who might win. Vermont has historically been at the bottom to the low middle of the pack in Division 1. Loyola was in the middle of the pack until a few years ago. I feel they are firmly in the top of Division 1 now with Syracuse, among many others. So while according to the stats Utah and Vermont should have won, based on stats AND history I went with Syracuse and Loyola to win.&lt;/p&gt;

&lt;p&gt;With the current version of predicting there are a couple things I'm going to add and maybe change in the coming days and weeks. Working on phase 2 of the project where I'm going to go more of a machine learning path, I'm going to have to think of some way to add history of the teams into the model to hopefully make more accurate predictions.&lt;/p&gt;

&lt;p&gt;Working on this project has made me love lacrosse more and realize the huge mountain that needs to be climbed in this sort of AI application. But that doesn't make it any less fun figuring this stuff out.&lt;/p&gt;

&lt;p&gt;If you have any comments or suggestions I would love to hear them!&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>ai</category>
      <category>sports</category>
      <category>lacrosse</category>
    </item>
    <item>
      <title>Predicting lacrosse games update #2</title>
      <dc:creator>Lyle Olsen</dc:creator>
      <pubDate>Sun, 05 Apr 2020 03:29:15 +0000</pubDate>
      <link>https://dev.to/keskidev/predicting-lacrosse-games-update-2-2c0n</link>
      <guid>https://dev.to/keskidev/predicting-lacrosse-games-update-2-2c0n</guid>
      <description>&lt;p&gt;There isn’t much of an update to be honest, but I'll explain a little bit more later. Again the over arching theme this project has presented to myself is how rusty I am with python. But I finished the “simple” version of the program with somewhat surprising results, at least in my mind. I took the bracket for the 2019 lacrosse tournament, ran it through the program and it's accuracy was between 46-53% accurate. What this teaches me is that going straight off of which team has the best stats will only get you so far when trying to figure out who is going to win. &lt;/p&gt;

&lt;p&gt;So the question is what is the biggest factor in predicting the winning time? That's what I've been thinking about during the day on my vacation from my 9-5 and I'm sure it's what everyone thinks about that tackles this same problem. And I haven't made any head way I'm sorry to say.&lt;/p&gt;

&lt;p&gt;Regardless of my progress in solving the above question I’ve started the next phase of the project. I’ve decided on a way to simplify the data I’ve collected and then send it on to train the model. I don't know if it's exactly the right way but I'm still a newbie so I don't know any better and I'm gonna try it anyway. In the data I have 14 stats for each team and game, I decided to follow the example of Rodrigo Nader as he tried to predict World Cup winners. (the article is &lt;a href="https://towardsdatascience.com/using-machine-learning-to-simulate-world-cup-matches-959e24d0731"&gt;https://towardsdatascience.com/using-machine-learning-to-simulate-world-cup-matches-959e24d0731&lt;/a&gt; and it's really an interesting read). So anyway I'm subtracting the stats from each team, if the result is positive it means team 1 had the better stat, else team 2 had the better stat. Pretty much it sounds like this will be inline with how I'm doing the "simple" prediction but eventually will be more machine learning-ish.&lt;/p&gt;

&lt;p&gt;I’ve been frustrated with this project. I’ve been discouraged and wondered if I should even keep going on with it. In those times I simply take a break. That's the thing I've learned over the past couple months with these side projects, if my hearts not in it, take a step back, take a deep breath and put in on the back burner for a little bit. That's why there hasn't been a ton of progress with it. I hit a wall with python and trying to figure out other things with it has been making me pull out my hair. So I put the project off for a day or two and calm down a bit.&lt;/p&gt;

&lt;p&gt;So that's the progress this week on the project. If you want to see where I'm at you can check out the project on my GitHub. And if there's any thoughts, comments, or constructive criticism feel free to let me know!&lt;/p&gt;

</description>
      <category>python</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Lacrosse prediction update #1</title>
      <dc:creator>Lyle Olsen</dc:creator>
      <pubDate>Sun, 29 Mar 2020 19:29:55 +0000</pubDate>
      <link>https://dev.to/keskidev/lacrosse-prediction-update-1-4fi1</link>
      <guid>https://dev.to/keskidev/lacrosse-prediction-update-1-4fi1</guid>
      <description>&lt;p&gt;It is apparent to me that I am very rusty with python. Yes I had a class in college for it and I’ve done a couple of small projects with it but I’ve really hit some things with this project that I’ve never done before. &lt;/p&gt;

&lt;p&gt;Starting this project I’m going super simple just to get something out there and to do it before I get too bored with the it. I’m just comparing to stats for teams and whoever has the better stat gets the point. No machine learning with it just yet. &lt;/p&gt;

&lt;p&gt;For each game I’m using 12 stats for each team. I then send each team stat over to a method and compare them. For most of the stats I just see which one is greater and then award the winning team the point. Whichever team has the most points and is predicted to win. If that teams win the same amount of categories then I do the high technical method of randomly picking a winner. But in my testing I haven’t needed this option. &lt;/p&gt;

&lt;p&gt;I know it’s not a perfect method but it’s fine for me know. I’ve tested it on four games thus far and it’s 50% accurate. 🤷‍♂️&lt;br&gt;
So there’s that. &lt;/p&gt;

&lt;p&gt;For this part of the project I still have a couple things to do before moving on. I need to fix the csv reader so I can put all the game in at a time and list out the winners. Once I get that I’m going to run the 5 years it data I have. That way when I get the learning model figured out I can compare and see which one was more accurate.&lt;/p&gt;

&lt;p&gt;This is one of those projects that really has no purpose other than for learning and as a way to bring two of my passions together. &lt;/p&gt;

</description>
      <category>showdev</category>
      <category>python</category>
    </item>
    <item>
      <title>Predicting the field</title>
      <dc:creator>Lyle Olsen</dc:creator>
      <pubDate>Thu, 19 Mar 2020 22:26:31 +0000</pubDate>
      <link>https://dev.to/keskidev/predicting-the-field-en5</link>
      <guid>https://dev.to/keskidev/predicting-the-field-en5</guid>
      <description>&lt;p&gt;So first off, since about 9th grade, way back in 2004, I discovered lacrosse. And from 2004 to about 2011 it was just about the biggest, most important thing in my life. 2011 was when I really buckled down with school and when I met my now wife. So while it isn't the most important thing anymore, I still really like it.&lt;/p&gt;

&lt;p&gt;Before COVID-19 cancelled everything including the 2020 NCAA Division 1 Lacrosse season I had the idea to create a program that would help me with my bracket come May, when the National Championships are and Lacrosse's version of March Madness. I found all the data I could for the lacrosse tournament going back to 2014 and now I think I have all the data. But for a while I didn't think I would do it. I have to brush up on machine learning concepts and figure out how to do all the modelling and setting up the data sets. I hesitated on starting this project because I felt overwhelmed, and the impostor syndrome started creeping in even on a personal project.&lt;/p&gt;

&lt;p&gt;But I'm finally starting. On the bright side, if this takes a while I have until May 2021 to really get it working for the next tournament. I'm actually going to start off fairly simple and not use machine learning at first, just making an algorithm to compare the stats that stats that I have and then later on bring in proper machine learning and comparing the results. &lt;/p&gt;

&lt;p&gt;I'll make some periodic updates and maybe try live streaming once it gets a little more interesting. Who knows.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>python</category>
      <category>sports</category>
    </item>
    <item>
      <title>What to work on next?</title>
      <dc:creator>Lyle Olsen</dc:creator>
      <pubDate>Sun, 15 Mar 2020 19:14:09 +0000</pubDate>
      <link>https://dev.to/keskidev/what-to-work-on-next-394a</link>
      <guid>https://dev.to/keskidev/what-to-work-on-next-394a</guid>
      <description>&lt;p&gt;I just finished my latest project and  thinking about what to tackle next. I was just wondering what you do in between projects and/or how you decide what to work on next when it comes to personal projects?&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Showing Intruders with Python</title>
      <dc:creator>Lyle Olsen</dc:creator>
      <pubDate>Fri, 13 Mar 2020 03:45:04 +0000</pubDate>
      <link>https://dev.to/keskidev/showing-intruders-with-python-114</link>
      <guid>https://dev.to/keskidev/showing-intruders-with-python-114</guid>
      <description>&lt;p&gt;Well that took longer than expected. &lt;br&gt;
Remember his to do things in python wasn’t to bad, not was scanning the network for unknown MAC addresses. The hardest part for me was sending the message to my discord server. &lt;/p&gt;

&lt;p&gt;To get the MAC address I had to run the script as root. But that way the web-hooks wouldn’t work. So if I just ran the script in normal python mode the web-hooks would work but the MAC address would come through. It was all very frustrating. &lt;/p&gt;

&lt;p&gt;But I finally figured it out. Instead of getting the MAC addresses through nmap, it had to grab all the IP addresses nmap saw and then use arp call on the IP to get the MAC. It's not exactly how I want it to work, it's slower than just using nmap to get them, but hey this is the only way I could get both parts working consistently.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_SXQ7FBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/at2q65nmhrewyvdwggp6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_SXQ7FBa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/at2q65nmhrewyvdwggp6.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Is this a perfect solution? Far from it. I'm sure there's better ways to do this but for my purposes, learning and not having a ton of time, it works for me.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TU1oGjtj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/lrwzl2u6kaopp1pbxl3d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TU1oGjtj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/lrwzl2u6kaopp1pbxl3d.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're interested here's the link to the repo. I'm open to suggestions if you have any ideas to make it better!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gitlab.com/keskidev/tabatha"&gt;https://gitlab.com/keskidev/tabatha&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>showdev</category>
      <category>learning</category>
    </item>
    <item>
      <title>I’m an average developer and I’m ok with that</title>
      <dc:creator>Lyle Olsen</dc:creator>
      <pubDate>Sat, 07 Mar 2020 02:49:38 +0000</pubDate>
      <link>https://dev.to/keskidev/i-m-an-average-developer-and-i-m-ok-with-that-o4</link>
      <guid>https://dev.to/keskidev/i-m-an-average-developer-and-i-m-ok-with-that-o4</guid>
      <description>&lt;p&gt;I started programming at an age that some people would call “late”. I was 23, not happy with my college major and was looking for something else to do. My wife pointed out that I spent so much time looking at technology websites and thought I should try that, so I did. I switched from exercise science to computer science pretty much the day after talking with my wife. &lt;/p&gt;

&lt;p&gt;I struggled through the program. Up till that point the most programming I had done was super simple webpages with just html and css. I felt so far behind the other students. But at the same time I liked solving the problems and seeing my programs come to life. &lt;/p&gt;

&lt;p&gt;I got B’s and C’s in my classes. I didn’t get an internship until the summer, one semester before I graduated. And I even failed a class the semester before I was suppose to graduate. I was stressed and I worried that I shouldn’t be a programmer. My last semester I worked hard, struggled but I did graduate. I sent out tons of applications, interviewed a few times and pretty much failed all my coding interviews. I’m pretty sure my current employer was desperate and maybe I convinced them enough to take a chance on me. But yes my imposter syndrome was really bad through this whole time. &lt;/p&gt;

&lt;p&gt;Since graduating I’ve struggled with imposter syndrome constantly but I’m working on it. I’ve been making little silly/stupid projects that sound fun to me, I’ve published a few games on itch.io and I’m just constantly reading and learning. Cause really that’s what we developers are. Professional lifelong learners and professional google users.&lt;/p&gt;

&lt;p&gt;I don’t plan on making the next Instagram or what not but I do plan on continuing to make things that I find interesting. Because I belief average developers making amazing things to. &lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
