<li><h3><ahref="/projects/2019/07/13/Lookback-GMAD.html" class="link"title="2019-07-13 10:43:00 -0400">Taking a look back at GMAD</a></h3></li>
<li><h3><ahref="/blog/2019/07/13/lookback-gmad" class="link"title="2019-07-13 10:43:00 -0400">Taking a look back at GMAD</a></h3></li>
<!-- </header> -->
<!-- <header class="major"> -->
<li><h3><ahref="/frc/2019/07/06/ScrapingFRCGithub.html" class="link"title="2019-07-06 11:08:00 -0400">Scraping FRC team's GitHub accounts to gather large amounts of data</a></h3></li>
<li><h3><ahref="/blog/2019/07/06/scrapingfrcgithub" class="link"title="2019-07-06 11:08:00 -0400">Scraping FRC team's GitHub accounts to gather large amounts of data</a></h3></li>
<li><h3><ahref="/frc/2019/06/24/LanguageHunt2.html" class="link"title="2019-06-24 17:36:00 -0400">The language hunt: Part 2</a></h3></li>
<li><h3><ahref="/blog/2019/06/24/languagehunt2" class="link"title="2019-06-24 17:36:00 -0400">The language hunt: Part 2</a></h3></li>
<!-- </header> -->
<!-- <header class="major"> -->
<li><h3><ahref="/ctf/2019/06/23/googlectf.html" class="link"title="2019-06-23 18:04:00 -0400">I gave Google's CTF a short try and learned a thing or two</a></h3></li>
<li><h3><ahref="/blog/2019/06/23/googlectf" class="link"title="2019-06-23 18:04:00 -0400">I gave Google's CTF a short try and learned a thing or two</a></h3></li>
<!-- </header> -->
<!-- <header class="major"> -->
<li><h3><ahref="/frc/2019/06/21/Robot-Experiences.html" class="link"title="2019-06-21 11:14:00 -0400">What I have learned from 2 years of FRC programming</a></h3></li>
<li><h3><ahref="/blog/2019/06/21/robot-experiences" class="link"title="2019-06-21 11:14:00 -0400">What I have learned from 2 years of FRC programming</a></h3></li>
<!-- </header> -->
<!-- <header class="major"> -->
<li><h3><ahref="/music/2019/06/17/AMM2M1-release.html" class="link"title="2019-06-17 06:20:00 -0400">I made a new song!</a></h3></li>
<li><h3><ahref="/blog/2019/06/17/amm2m1-release" class="link"title="2019-06-17 06:20:00 -0400">I made a new song!</a></h3></li>
<!-- </header> -->
<!-- <header class="major"> -->
<li><h3><ahref="/frc/2019/06/16/Graphing-w2a.html" class="link"title="2019-06-16 11:51:00 -0400">Graphing the relation between wheels and awards for FRC</a></h3></li>
<li><h3><ahref="/blog/2019/06/16/graphing-w2a" class="link"title="2019-06-16 11:51:00 -0400">Graphing the relation between wheels and awards for FRC</a></h3></li>
<!-- </header> -->
<!-- <header class="major"> -->
<li><h3><ahref="/projects/2019/06/12/Styiling-GitHub.html" class="link"title="2019-06-12 09:09:00 -0400">GitHub's CSS is boring. So I refreshed the design</a></h3></li>
<li><h3><ahref="/blog/2019/06/12/styiling-github" class="link"title="2019-06-12 09:09:00 -0400">GitHub's CSS is boring. So I refreshed the design</a></h3></li>
<!-- </header> -->
<!-- <header class="major"> -->
<li><h3><ahref="/frc/2019/05/27/Building-Safe-Vision-Comms.html" class="link"title="2019-05-27 05:22:00 -0400">Building a safe and easy system for sending computer vision data from a raspberry pi to a roborio</a></h3></li>
<li><h3><ahref="/blog/2019/05/27/building-safe-vision-comms" class="link"title="2019-05-27 05:22:00 -0400">Building a safe and easy system for sending computer vision data from a raspberry pi to a roborio</a></h3></li>
<!-- </header> -->
<!-- <header class="major"> -->
<li><h3><ahref="/frc/2019/04/30/FRC-Languages.html" class="link"title="2019-04-30 14:32:00 -0400">The language hunt</a></h3></li>
<li><h3><ahref="/blog/2019/04/30/frc-languages" class="link"title="2019-04-30 14:32:00 -0400">The language hunt</a></h3></li>
<!-- </header> -->
<!-- <header class="major"> -->
<li><h3><ahref="/projects/2018/06/27/BecomeRanter.html" class="link"title="2018-06-27 14:32:00 -0400">Using a python script to create devRant posts based on the style and content of another user</a></h3></li>
<li><h3><ahref="/blog/2018/06/27/becomeranter" class="link"title="2018-06-27 14:32:00 -0400">Using a python script to create devRant posts based on the style and content of another user</a></h3></li>
<?xml version="1.0" encoding="utf-8"?><feedxmlns="http://www.w3.org/2005/Atom"><generatoruri="https://jekyllrb.com/"version="3.8.5">Jekyll</generator><linkhref="http://0.0.0.0:4000/feed.xml"rel="self"type="application/atom+xml"/><linkhref="http://0.0.0.0:4000/"rel="alternate"type="text/html"/><updated>2019-07-13T14:57:51-04:00</updated><id>http://0.0.0.0:4000/feed.xml</id><titletype="html">Evan Pratten</title><subtitle>Computer wizard, student, <a href="https://github.com/frc5024">@frc5024</a> programming team lead, and radio enthusiast.</subtitle><entry><titletype="html">Taking a look back at GMAD</title><linkhref="http://0.0.0.0:4000/projects/2019/07/13/Lookback-GMAD.html" rel="alternate"type="text/html"title="Taking a look back at GMAD"/><published>2019-07-13T10:43:00-04:00</published><updated>2019-07-13T10:43:00-04:00</updated><id>http://0.0.0.0:4000/projects/2019/07/13/Lookback-GMAD</id><contenttype="html"xml:base="http://0.0.0.0:4000/projects/2019/07/13/Lookback-GMAD.html"><p>One day, back in June of 2018, I was both looking for a new project to work on, and trying to decide which Linux distro to install on one of my computers. From this, a little project was born. <a href="/gmad">Give Me a Distro</a> (or, GMAD, as I like to call it) is a little website that chooses a random distribution of Linux and shows a description of what you are about to get yourself into, and a download link for the latest ISO.</p>
<?xml version="1.0" encoding="utf-8"?><feedxmlns="http://www.w3.org/2005/Atom"><generatoruri="https://jekyllrb.com/"version="3.8.5">Jekyll</generator><linkhref="http://0.0.0.0:4000/feed.xml"rel="self"type="application/atom+xml"/><linkhref="http://0.0.0.0:4000/"rel="alternate"type="text/html"/><updated>2019-07-15T11:11:19-04:00</updated><id>http://0.0.0.0:4000/feed.xml</id><titletype="html">Evan Pratten</title><subtitle>Computer wizard, student, <a href="https://github.com/frc5024">@frc5024</a> programming team lead, and radio enthusiast.</subtitle><entry><titletype="html">Taking a look back at GMAD</title><linkhref="http://0.0.0.0:4000/blog/2019/07/13/lookback-gmad" rel="alternate"type="text/html"title="Taking a look back at GMAD"/><published>2019-07-13T10:43:00-04:00</published><updated>2019-07-13T10:43:00-04:00</updated><id>http://0.0.0.0:4000/blog/2019/07/13/Lookback-GMAD</id><contenttype="html"xml:base="http://0.0.0.0:4000/blog/2019/07/13/lookback-gmad"><p>One day, back in June of 2018, I was both looking for a new project to work on, and trying to decide which Linux distro to install on one of my computers. From this, a little project was born. <a href="/gmad">Give Me a Distro</a> (or, GMAD, as I like to call it) is a little website that chooses a random distribution of Linux and shows a description of what you are about to get yourself into, and a download link for the latest ISO.</p>
<p>This is one of the simplest projects I have ever made. All the backend does is:</p>
@ -20,7 +20,7 @@
<p>If you would like to add a distro or three to the website, feel free to make a pull request over on <a href="https://github.com/Ewpratten/GiveMeADistro">GitHub</a>.</p>
<h2 id="why-make-a-post-about-it-a-year-later">Why make a post about it a year later?</h2>
<p>I just really enjoyed working with the project and sharing it with friends, so I figured I should mention it here too. Maybe it will inspire someone to make something cool!</p></content><author><name></name></author><summarytype="html">One day, back in June of 2018, I was both looking for a new project to work on, and trying to decide which Linux distro to install on one of my computers. From this, a little project was born. Give Me a Distro (or, GMAD, as I like to call it) is a little website that chooses a random distribution of Linux and shows a description of what you are about to get yourself into, and a download link for the latest ISO.</summary></entry><entry><titletype="html">Scraping FRC team’s GitHub accounts to gather large amounts of data</title><linkhref="http://0.0.0.0:4000/frc/2019/07/06/ScrapingFRCGithub.html" rel="alternate"type="text/html"title="Scraping FRC team's GitHub accounts to gather large amounts of data"/><published>2019-07-06T11:08:00-04:00</published><updated>2019-07-06T11:08:00-04:00</updated><id>http://0.0.0.0:4000/frc/2019/07/06/ScrapingFRCGithub</id><contenttype="html"xml:base="http://0.0.0.0:4000/frc/2019/07/06/ScrapingFRCGithub.html"><p>I was curious about the most used languages for FRC, so I build a Python script to find out what they where.</p>
<p>I just really enjoyed working with the project and sharing it with friends, so I figured I should mention it here too. Maybe it will inspire someone to make something cool!</p></content><author><name></name></author><summarytype="html">One day, back in June of 2018, I was both looking for a new project to work on, and trying to decide which Linux distro to install on one of my computers. From this, a little project was born. Give Me a Distro (or, GMAD, as I like to call it) is a little website that chooses a random distribution of Linux and shows a description of what you are about to get yourself into, and a download link for the latest ISO.</summary></entry><entry><titletype="html">Scraping FRC team’s GitHub accounts to gather large amounts of data</title><linkhref="http://0.0.0.0:4000/blog/2019/07/06/scrapingfrcgithub" rel="alternate"type="text/html"title="Scraping FRC team's GitHub accounts to gather large amounts of data"/><published>2019-07-06T11:08:00-04:00</published><updated>2019-07-06T11:08:00-04:00</updated><id>http://0.0.0.0:4000/blog/2019/07/06/ScrapingFRCGithub</id><contenttype="html"xml:base="http://0.0.0.0:4000/blog/2019/07/06/scrapingfrcgithub"><p>I was curious about the most used languages for FRC, so I build a Python script to find out what they where.</p>
<p>Before we get to the heavy work done by my script, let’s start with some general data.</p>
@ -121,7 +121,7 @@
<h2 id="using-the-script">Using the script</h2>
<p>This script is not on PYPI this time. You can obtain a copy from my GitHub repo: <a href="https://github.com/Ewpratten/frc-code-stats">https://github.com/Ewpratten/frc-code-stats</a></p>
<p>First, make sure both <code class="highlighter-rouge">python3.7</code> and <code class="highlighter-rouge">python3-pip</code> are installed on your computer. Next, delete the <code class="highlighter-rouge">data.json</code> file. Then, install the requirements with <code class="highlighter-rouge">pip3 install -r requirements.txt</code>. Finally, run with <code class="highlighter-rouge">python3 main.py</code> to start the script. Now, go outside and enjoy nature for about an hour, and your data should be loaded!.</p></content><author><name></name></author><summarytype="html">I was curious about the most used languages for FRC, so I build a Python script to find out what they where.</summary></entry><entry><titletype="html">devDNS</title><linkhref="http://0.0.0.0:4000/projects/2019/07/01/devDNS.html" rel="alternate"type="text/html"title="devDNS"/><published>2019-07-01T18:13:00-04:00</published><updated>2019-07-01T18:13:00-04:00</updated><id>http://0.0.0.0:4000/projects/2019/07/01/devDNS</id><contenttype="html"xml:base="http://0.0.0.0:4000/projects/2019/07/01/devDNS.html"><p>Over the past year and a half, I have been hacking my way around the undocumented <a href="https://devrant.com">devRant</a> auth/write API. At the request of devRant’s creators, this API must not be documented due to the way logins work on the platform. That is besides the point. I have been working on a little project called <a href="https://devrant.com/collabs/2163502">devDNS</a> over the past few days that uses this undocumented API. Why must I be so bad at writing intros?</p>
<p>First, make sure both <code class="highlighter-rouge">python3.7</code> and <code class="highlighter-rouge">python3-pip</code> are installed on your computer. Next, delete the <code class="highlighter-rouge">data.json</code> file. Then, install the requirements with <code class="highlighter-rouge">pip3 install -r requirements.txt</code>. Finally, run with <code class="highlighter-rouge">python3 main.py</code> to start the script. Now, go outside and enjoy nature for about an hour, and your data should be loaded!.</p></content><author><name></name></author><summarytype="html">I was curious about the most used languages for FRC, so I build a Python script to find out what they where.</summary></entry><entry><titletype="html">devDNS</title><linkhref="http://0.0.0.0:4000/blog/2019/07/01/devdns" rel="alternate"type="text/html"title="devDNS"/><published>2019-07-01T18:13:00-04:00</published><updated>2019-07-01T18:13:00-04:00</updated><id>http://0.0.0.0:4000/blog/2019/07/01/devDNS</id><contenttype="html"xml:base="http://0.0.0.0:4000/blog/2019/07/01/devdns"><p>Over the past year and a half, I have been hacking my way around the undocumented <a href="https://devrant.com">devRant</a> auth/write API. At the request of devRant’s creators, this API must not be documented due to the way logins work on the platform. That is besides the point. I have been working on a little project called <a href="https://devrant.com/collabs/2163502">devDNS</a> over the past few days that uses this undocumented API. Why must I be so bad at writing intros?</p>
<h2 id="what-is-devdns">What is devDNS</h2>
<p>devDNS is a devRant bot written in python. It will serve any valid DNS query from any user on the platform. A query is just a comment in one of the following forms:</p>
@ -150,7 +150,7 @@
<p>Thats it! Super simple, and only two days from concept to reality.</p>
<h2 id="where-is-this-hosted">Where is this hosted?</h2>
<p>This program is hosted on a raspberry pi laying in my room running docker. I also have <a href="https://www.portainer.io/">Portainer</a> set up so I can easily monitor the bot from my phone over my VPN.</p></content><author><name></name></author><summarytype="html">Over the past year and a half, I have been hacking my way around the undocumented devRant auth/write API. At the request of devRant’s creators, this API must not be documented due to the way logins work on the platform. That is besides the point. I have been working on a little project called devDNS over the past few days that uses this undocumented API. Why must I be so bad at writing intros?</summary></entry><entry><titletype="html">I had some fun with a router</title><linkhref="http://0.0.0.0:4000/projects/2019/06/27/PWNlink.html" rel="alternate"type="text/html"title="I had some fun with a router"/><published>2019-06-27T13:16:00-04:00</published><updated>2019-06-27T13:16:00-04:00</updated><id>http://0.0.0.0:4000/projects/2019/06/27/PWNlink</id><contenttype="html"xml:base="http://0.0.0.0:4000/projects/2019/06/27/PWNlink.html"><p>I was playing around with some D-link routers today and remembered an <a href="https://www.exploit-db.com/exploits/33520">ExploitDB Entry</a> I read a while ago. Many D-link routers have a great feature that allows remote management and configuration queries. Interestingly, this cannot be disabled, and one of the pages contains a cleartext version of the admin password (yay!).</p>
<p>This program is hosted on a raspberry pi laying in my room running docker. I also have <a href="https://www.portainer.io/">Portainer</a> set up so I can easily monitor the bot from my phone over my VPN.</p></content><author><name></name></author><summarytype="html">Over the past year and a half, I have been hacking my way around the undocumented devRant auth/write API. At the request of devRant’s creators, this API must not be documented due to the way logins work on the platform. That is besides the point. I have been working on a little project called devDNS over the past few days that uses this undocumented API. Why must I be so bad at writing intros?</summary></entry><entry><titletype="html">I had some fun with a router</title><linkhref="http://0.0.0.0:4000/blog/2019/06/27/pwnlink" rel="alternate"type="text/html"title="I had some fun with a router"/><published>2019-06-27T13:16:00-04:00</published><updated>2019-06-27T13:16:00-04:00</updated><id>http://0.0.0.0:4000/blog/2019/06/27/PWNlink</id><contenttype="html"xml:base="http://0.0.0.0:4000/blog/2019/06/27/pwnlink"><p>I was playing around with some D-link routers today and remembered an <a href="https://www.exploit-db.com/exploits/33520">ExploitDB Entry</a> I read a while ago. Many D-link routers have a great feature that allows remote management and configuration queries. Interestingly, this cannot be disabled, and one of the pages contains a cleartext version of the admin password (yay!).</p>
<h2 id="how-to-get-yourself-an-admin-password">How to get yourself an admin password</h2>
<p>On any supported router, make an HTTP request to <code class="highlighter-rouge">http://your.router.ip.addr/tools_admin.asp/</code>. This will return a pretty large XML file containing information about your router’s hardware and configuration.</p>
@ -189,7 +189,7 @@
<p><strong>Don’t be dumb with this script.</strong></p>
<p>I have only used it on my own (or 5024’s) routers, and did not create PWNlink with any malicious intent.</p></content><author><name></name></author><categoryterm="projects"/><summarytype="html">I was playing around with some D-link routers today and remembered an ExploitDB Entry I read a while ago. Many D-link routers have a great feature that allows remote management and configuration queries. Interestingly, this cannot be disabled, and one of the pages contains a cleartext version of the admin password (yay!).</summary></entry><entry><titletype="html">Hunting snakes with a shotgun</title><linkhref="http://0.0.0.0:4000/random/2019/06/27/Python.html" rel="alternate"type="text/html"title="Hunting snakes with a shotgun"/><published>2019-06-27T03:00:00-04:00</published><updated>2019-06-27T03:00:00-04:00</updated><id>http://0.0.0.0:4000/random/2019/06/27/Python</id><contenttype="html"xml:base="http://0.0.0.0:4000/random/2019/06/27/Python.html"><p>A rather large number of people know me as “the guy who does weird things with python”. I would object to this title, but it is quite accurate. So, here are some of the things I like playing with in python. None of these are actually breaking the language, just little known facts and syntax. At some point I will share about actually breaking the language. For now, enjoy the weird things I have found over the past 6 years.</p>
<p>I have only used it on my own (or 5024’s) routers, and did not create PWNlink with any malicious intent.</p></content><author><name></name></author><categoryterm="projects"/><summarytype="html">I was playing around with some D-link routers today and remembered an ExploitDB Entry I read a while ago. Many D-link routers have a great feature that allows remote management and configuration queries. Interestingly, this cannot be disabled, and one of the pages contains a cleartext version of the admin password (yay!).</summary></entry><entry><titletype="html">Hunting snakes with a shotgun</title><linkhref="http://0.0.0.0:4000/blog/2019/06/27/python" rel="alternate"type="text/html"title="Hunting snakes with a shotgun"/><published>2019-06-27T03:00:00-04:00</published><updated>2019-06-27T03:00:00-04:00</updated><id>http://0.0.0.0:4000/blog/2019/06/27/Python</id><contenttype="html"xml:base="http://0.0.0.0:4000/blog/2019/06/27/python"><p>A rather large number of people know me as “the guy who does weird things with python”. I would object to this title, but it is quite accurate. So, here are some of the things I like playing with in python. None of these are actually breaking the language, just little known facts and syntax. At some point I will share about actually breaking the language. For now, enjoy the weird things I have found over the past 6 years.</p>
<p>A little known feature of python is called “type hinting” (PEP 484). This is actually quite common to see in standard libraries, and has it’s own special syntax:</p>
@ -293,7 +293,7 @@
<p>This one is interesting. Python, like Java, is compiled into bytecode. So yes, it technically is a compiled language. To see said bytecode, take a look at any <code class="highlighter-rouge">.pyc</code> file sitting in your <code class="highlighter-rouge">__pycache__</code></p>
<p>I am still playing with post formats, and various types of content. This is more random than I usually prefer. Let me know your thoughts on the social media platform of your choosing.</p></content><author><name></name></author><summarytype="html">A rather large number of people know me as “the guy who does weird things with python”. I would object to this title, but it is quite accurate. So, here are some of the things I like playing with in python. None of these are actually breaking the language, just little known facts and syntax. At some point I will share about actually breaking the language. For now, enjoy the weird things I have found over the past 6 years.</summary></entry><entry><titletype="html">BashSmash</title><linkhref="http://0.0.0.0:4000/projects/2019/06/26/BashSmash.html" rel="alternate"type="text/html"title="BashSmash"/><published>2019-06-26T11:48:00-04:00</published><updated>2019-06-26T11:48:00-04:00</updated><id>http://0.0.0.0:4000/projects/2019/06/26/BashSmash</id><contenttype="html"xml:base="http://0.0.0.0:4000/projects/2019/06/26/BashSmash.html"><p>I was watching this great <a href="https://www.google.com/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;uact=8&amp;ved=2ahUKEwiOhNze_4fjAhUiB50JHR12D8AQwqsBMAB6BAgJEAQ&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D6D1LnMj0Yt0&amp;usg=AOvVaw2nOgft0SoPZujc9js9Vxhx">Liveoverflow video</a> yesterday, and really liked the idea of building escape sequences with strings. So, I built a new tool, <a href="https://pypi.org/project/bashsmash/">BashSmash</a>.</p>
<p>I am still playing with post formats, and various types of content. This is more random than I usually prefer. Let me know your thoughts on the social media platform of your choosing.</p></content><author><name></name></author><summarytype="html">A rather large number of people know me as “the guy who does weird things with python”. I would object to this title, but it is quite accurate. So, here are some of the things I like playing with in python. None of these are actually breaking the language, just little known facts and syntax. At some point I will share about actually breaking the language. For now, enjoy the weird things I have found over the past 6 years.</summary></entry><entry><titletype="html">BashSmash</title><linkhref="http://0.0.0.0:4000/blog/2019/06/26/bashsmash" rel="alternate"type="text/html"title="BashSmash"/><published>2019-06-26T11:48:00-04:00</published><updated>2019-06-26T11:48:00-04:00</updated><id>http://0.0.0.0:4000/blog/2019/06/26/BashSmash</id><contenttype="html"xml:base="http://0.0.0.0:4000/blog/2019/06/26/bashsmash"><p>I was watching this great <a href="https://www.google.com/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;uact=8&amp;ved=2ahUKEwiOhNze_4fjAhUiB50JHR12D8AQwqsBMAB6BAgJEAQ&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D6D1LnMj0Yt0&amp;usg=AOvVaw2nOgft0SoPZujc9js9Vxhx">Liveoverflow video</a> yesterday, and really liked the idea of building escape sequences with strings. So, I built a new tool, <a href="https://pypi.org/project/bashsmash/">BashSmash</a>.</p>
<p>The goal of BashSmash is very similar to that described in Liveoverflow’s video. Do anything in bash without using any letters or numbers except <code class="highlighter-rouge">n</code> and <code class="highlighter-rouge">f</code> (he used <code class="highlighter-rouge">i</code> instead of <code class="highlighter-rouge">f</code>). This can both bypass shell injection filters, and generally mess with people.</p>
<h2 id="why-do-you-have-a-desire-to-break-things-with-python">Why do you have a desire to break things with python</h2>
<p>Because it is fun. Give it a try!</p>
<p>I will have a post here at some point about the weird things I do in my python code and why I do them.</p></content><author><name></name></author><categoryterm="projects"/><summarytype="html">I was watching this great Liveoverflow video yesterday, and really liked the idea of building escape sequences with strings. So, I built a new tool, BashSmash.</summary></entry><entry><titletype="html">The language hunt: Part 2</title><linkhref="http://0.0.0.0:4000/frc/2019/06/24/LanguageHunt2.html" rel="alternate"type="text/html"title="The language hunt: Part 2"/><published>2019-06-24T17:36:00-04:00</published><updated>2019-06-24T17:36:00-04:00</updated><id>http://0.0.0.0:4000/frc/2019/06/24/LanguageHunt2</id><contenttype="html"xml:base="http://0.0.0.0:4000/frc/2019/06/24/LanguageHunt2.html"><p>This is a very short post, just to explain the result of <a href="/frc/2019/04/30/FRC-Languages.html">The language Hunt</a>.</p>
<p>I will have a post here at some point about the weird things I do in my python code and why I do them.</p></content><author><name></name></author><categoryterm="projects"/><summarytype="html">I was watching this great Liveoverflow video yesterday, and really liked the idea of building escape sequences with strings. So, I built a new tool, BashSmash.</summary></entry><entry><titletype="html">The language hunt: Part 2</title><linkhref="http://0.0.0.0:4000/blog/2019/06/24/languagehunt2" rel="alternate"type="text/html"title="The language hunt: Part 2"/><published>2019-06-24T17:36:00-04:00</published><updated>2019-06-24T17:36:00-04:00</updated><id>http://0.0.0.0:4000/blog/2019/06/24/LanguageHunt2</id><contenttype="html"xml:base="http://0.0.0.0:4000/blog/2019/06/24/languagehunt2"><p>This is a very short post, just to explain the result of <a href="/frc/2019/04/30/FRC-Languages.html">The language Hunt</a>.</p>
<p>For our upcoming 2020 season and for the forseeable future, we have chosen Java as our programming language for direct hardware interfacing, and Python for networking, vision, and other smaller tasks.</p>
<p>Not too much. Aside from learning new syntax, tools, and no longer worrying about linker errors, Java and C++ have no real difference. Most of the reason Java was chosen was based on support instead of functionality. Java is much better supported by FIRST, WPILib, and other vendors. Java is also taught in the school 5024 is based from. For a more detailed explanation of the benefits of each language, take a look at Chief Delphi. There are plenty of posts there explaining the choices of many teams and their reasoning.</p>
<p>I am experimenting with various post formats (This being a short post). Let me know which you prefer via the social platform of your choice.</p></content><author><name></name></author><summarytype="html">This is a very short post, just to explain the result of The language Hunt.</summary></entry><entry><titletype="html">I gave Google’s CTF a short try and learned a thing or two</title><linkhref="http://0.0.0.0:4000/ctf/2019/06/23/googlectf.html" rel="alternate"type="text/html"title="I gave Google's CTF a short try and learned a thing or two"/><published>2019-06-23T18:04:00-04:00</published><updated>2019-06-23T18:04:00-04:00</updated><id>http://0.0.0.0:4000/ctf/2019/06/23/googlectf</id><contenttype="html"xml:base="http://0.0.0.0:4000/ctf/2019/06/23/googlectf.html"><p>Honestly, I completely forgot that this was the weekend of Google’s online <a href="https://g.co/ctf">CTF Qualifications</a> for 2019 and was late, unprepared, busy, and did not have a team to work with.</p>
<p>I am experimenting with various post formats (This being a short post). Let me know which you prefer via the social platform of your choice.</p></content><author><name></name></author><summarytype="html">This is a very short post, just to explain the result of The language Hunt.</summary></entry><entry><titletype="html">I gave Google’s CTF a short try and learned a thing or two</title><linkhref="http://0.0.0.0:4000/blog/2019/06/23/googlectf" rel="alternate"type="text/html"title="I gave Google's CTF a short try and learned a thing or two"/><published>2019-06-23T18:04:00-04:00</published><updated>2019-06-23T18:04:00-04:00</updated><id>http://0.0.0.0:4000/blog/2019/06/23/googlectf</id><contenttype="html"xml:base="http://0.0.0.0:4000/blog/2019/06/23/googlectf"><p>Honestly, I completely forgot that this was the weekend of Google’s online <a href="https://g.co/ctf">CTF Qualifications</a> for 2019 and was late, unprepared, busy, and did not have a team to work with.</p>
<h2 id="what-is-this-event">What is this event?</h2>
<p>Google hosts a (yearly?) event where hackers from around the world team up and attempt a variety of tasks like: exploiting machines over a network, reversing firmware, pulling passwords from tcp packets, hacking crypto stuff (something I suck at), breaking compilers. and much more. Generally, this event and others like it are really fun.</p>
<p>Many questions I worked on involved extracting a key from a binary. I employed two vastly different tools for this job. First, a standard linux tool, <code class="highlighter-rouge">strings</code>. When passed a filename, it will extract and print all human-readable strings it can find to the terminal. The flag is usually in this dump. If not, I use the second tool. <a href="https://www.nsa.gov/resources/everyone/ghidra/">Ghidra</a>, an open-source reverse engineering tool designed by the NSA. I used this tool a fair amount during my quick attempt at GCTF.</p>
<h2 id="will-i-do-this-again">Will I do this again?</h2>
<p>Yes! The CTF was very fun to try, and I will definitely give it a proper shot next time.</p></content><author><name></name></author><summarytype="html">Honestly, I completely forgot that this was the weekend of Google’s online CTF Qualifications for 2019 and was late, unprepared, busy, and did not have a team to work with.</summary></entry><entry><titletype="html">What I have learned from 2 years of FRC programming</title><linkhref="http://0.0.0.0:4000/frc/2019/06/21/Robot-Experiences.html" rel="alternate"type="text/html"title="What I have learned from 2 years of FRC programming"/><published>2019-06-21T11:14:00-04:00</published><updated>2019-06-21T11:14:00-04:00</updated><id>http://0.0.0.0:4000/frc/2019/06/21/Robot-Experiences</id><contenttype="html"xml:base="http://0.0.0.0:4000/frc/2019/06/21/Robot-Experiences.html"><p>Over the past two years (2018 / 2019), I have been a member of my school’s <a href="https://www.firstinspires.org/robotics/frc">FRC</a> team, <a href="frc5024.github.io">Raider Robotics</a>. Specifically, a programmer.</p>
<p>Yes! The CTF was very fun to try, and I will definitely give it a proper shot next time.</p></content><author><name></name></author><summarytype="html">Honestly, I completely forgot that this was the weekend of Google’s online CTF Qualifications for 2019 and was late, unprepared, busy, and did not have a team to work with.</summary></entry><entry><titletype="html">What I have learned from 2 years of FRC programming</title><linkhref="http://0.0.0.0:4000/blog/2019/06/21/robot-experiences" rel="alternate"type="text/html"title="What I have learned from 2 years of FRC programming"/><published>2019-06-21T11:14:00-04:00</published><updated>2019-06-21T11:14:00-04:00</updated><id>http://0.0.0.0:4000/blog/2019/06/21/Robot-Experiences</id><contenttype="html"xml:base="http://0.0.0.0:4000/blog/2019/06/21/robot-experiences"><p>Over the past two years (2018 / 2019), I have been a member of my school’s <a href="https://www.firstinspires.org/robotics/frc">FRC</a> team, <a href="frc5024.github.io">Raider Robotics</a>. Specifically, a programmer.</p>
<p>In my first year, I joined the team as a programmer and had a fun time learning about embedded programming and development with hardware. Then, in my second year, I was promoted to programming co-lead along with <a href="https://github.com/slownie">@slownie</a>. I much preferred my second season because I had a better understanding of the technology I was working with, and we got to play with some cool tools throughout the season.</p>
<li>Have mentors do “guest presentations”</li>
<li>Dedicate a day to robot driving lessons</li>
<li>Use a custom library with wrappers and tools built by me to provide easy interfaces for new programmers</li>
</ul></content><author><name></name></author><summarytype="html">Over the past two years (2018 / 2019), I have been a member of my school’s FRC team, Raider Robotics. Specifically, a programmer.</summary></entry><entry><titletype="html">I made a new song!</title><linkhref="http://0.0.0.0:4000/music/2019/06/17/AMM2M1-release.html" rel="alternate"type="text/html"title="I made a new song!"/><published>2019-06-17T06:20:00-04:00</published><updated>2019-06-17T06:20:00-04:00</updated><id>http://0.0.0.0:4000/music/2019/06/17/AMM2M1-release</id><contenttype="html"xml:base="http://0.0.0.0:4000/music/2019/06/17/AMM2M1-release.html"><p>I am currently taking a class in school called <a href="https://www.facebook.com/studio225beal/">Music and computers (AMM2M)</a>, where as part of the class, whe get together into bands, and produce a song. After taking a break from music production for over a year, we have released our song for the class (we do two songs, but the second is not finished yet).</p>
</ul></content><author><name></name></author><summarytype="html">Over the past two years (2018 / 2019), I have been a member of my school’s FRC team, Raider Robotics. Specifically, a programmer.</summary></entry><entry><titletype="html">I made a new song!</title><linkhref="http://0.0.0.0:4000/blog/2019/06/17/amm2m1-release" rel="alternate"type="text/html"title="I made a new song!"/><published>2019-06-17T06:20:00-04:00</published><updated>2019-06-17T06:20:00-04:00</updated><id>http://0.0.0.0:4000/blog/2019/06/17/AMM2M1-release</id><contenttype="html"xml:base="http://0.0.0.0:4000/blog/2019/06/17/amm2m1-release"><p>I am currently taking a class in school called <a href="https://www.facebook.com/studio225beal/">Music and computers (AMM2M)</a>, where as part of the class, whe get together into bands, and produce a song. After taking a break from music production for over a year, we have released our song for the class (we do two songs, but the second is not finished yet).</p>
<p>My main contribution to the project was a mix of live drumming, and most of the song’s MIDI work. The song is far from perfect, but pretty good for the time we had to produce it.</p>
<li><h3><ahref="/projects/2019/07/13/Lookback-GMAD.html" class="link"title="2019-07-13 10:43:00 -0400">Taking a look back at GMAD</a></h3></li>
<li><h3><ahref="/blog/2019/07/13/lookback-gmad" class="link"title="2019-07-13 10:43:00 -0400">Taking a look back at GMAD</a></h3></li>
<li><h3><ahref="/frc/2019/07/06/ScrapingFRCGithub.html" class="link"title="2019-07-06 11:08:00 -0400">Scraping FRC team's GitHub accounts to gather large amounts of data</a></h3></li>
<li><h3><ahref="/blog/2019/07/06/scrapingfrcgithub" class="link"title="2019-07-06 11:08:00 -0400">Scraping FRC team's GitHub accounts to gather large amounts of data</a></h3></li>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.