<?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: Cole Wilson</title>
    <description>The latest articles on DEV Community by Cole Wilson (@colewilson).</description>
    <link>https://dev.to/colewilson</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%2F515899%2Fa1905f20-bd71-426f-a398-28bda9ffd354.png</url>
      <title>DEV Community: Cole Wilson</title>
      <link>https://dev.to/colewilson</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/colewilson"/>
    <language>en</language>
    <item>
      <title>Sailboat</title>
      <dc:creator>Cole Wilson</dc:creator>
      <pubDate>Mon, 25 Jan 2021 22:16:37 +0000</pubDate>
      <link>https://dev.to/colewilson/sailboat-2aih</link>
      <guid>https://dev.to/colewilson/sailboat-2aih</guid>
      <description>&lt;p&gt;Hello! Today I am happy to announce that I am releasing Sailboat (&lt;a href="https://github.com/cole-wilson/sailboat"&gt;https://github.com/cole-wilson/sailboat&lt;/a&gt;) for the first time! Sailboat is a Python developer’s best friend. It’s a Python build tool that can do anything you need it to! It supports a countless number of plugins — you can even make your own. Sailboat is made for anyone, whether you are a beginner on your very first project, or a senior software engineer with years of experience.&lt;/p&gt;

&lt;p&gt;Let’s say that that you have created a basic game, Guess My Number, and you want to send it to all of your friends. There are a lot of different ways you can do this, but using Sailboat is the easiest. All you have to do is type three commands: &lt;code&gt;sail quickstart&lt;/code&gt;, &lt;code&gt;sail build&lt;/code&gt;, and &lt;code&gt;sail release&lt;/code&gt;, and you can have a Homebrew file, a pip installable package, and a PyInstaller desktop app in less than 5 minutes. So easy!&lt;/p&gt;

&lt;p&gt;You can check it out at &lt;a href="https://github.com/cole-wilson/sailboat%C2%A0and%C2%A0https://sailboat.colewilson.xyz"&gt;https://github.com/cole-wilson/sailboat and https://sailboat.colewilson.xyz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please let me know what what you think, and if you find any bugs let me know, or submit an issue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OxYnXe8o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0u1sllxma5bqcff554t1.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OxYnXe8o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0u1sllxma5bqcff554t1.PNG" alt="Sailboat Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>python</category>
      <category>news</category>
      <category>linux</category>
    </item>
    <item>
      <title>Super Powerful File Organizer</title>
      <dc:creator>Cole Wilson</dc:creator>
      <pubDate>Tue, 17 Nov 2020 19:58:51 +0000</pubDate>
      <link>https://dev.to/colewilson/super-powerful-file-organizer-ddj</link>
      <guid>https://dev.to/colewilson/super-powerful-file-organizer-ddj</guid>
      <description>&lt;p&gt;Hello all! Today I released &lt;code&gt;nought&lt;/code&gt; a command-line file organizer. It's super easy to use, and it's VERY customizable.&lt;/p&gt;

&lt;p&gt;For example, you could sort all screenshots into folders by year/month/day! Or, you could sort all of your files into folders based on their extension, or size, or location, or many more options!&lt;/p&gt;

&lt;p&gt;Contributions/suggestions/questions welcome. &lt;strong&gt;Please let me know what you think!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can install it by typing &lt;code&gt;pip3 install nought&lt;/code&gt; in your terminal. Documentation is available on the &lt;a href="https://github.com/cole-wilson/nought"&gt;GitHub page&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>python</category>
      <category>linux</category>
      <category>news</category>
      <category>showdev</category>
    </item>
    <item>
      <title>GitHub Student Developer Pack</title>
      <dc:creator>Cole Wilson</dc:creator>
      <pubDate>Mon, 14 Sep 2020 20:00:43 +0000</pubDate>
      <link>https://dev.to/colewilson/github-student-developer-pack-2o5a</link>
      <guid>https://dev.to/colewilson/github-student-developer-pack-2o5a</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;This article is in no way sponsored by GitHub or any other company. All of the opinions voiced are the author’s own.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The GitHub Student Developer Pack is a little known feature of GitHub that allows student developers access to lots of free goodies. They are completely and totally free, from kindergarten to undergraduate, no credit card required. Now, you may be thinking: &lt;em&gt;“isn’t this to good to be true?”&lt;/em&gt; I thought that also, but in my experience the main reason these companies are offering up their services is to hope you continue using them after the time is up, or after you graduate. Some of the services are okay, and some are amazing.&lt;/p&gt;

&lt;h2&gt;
  
  
  How To Get It
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;In order to receive the benefits, you must first have a GitHub account. If you don’t have one already, create one &lt;a href="https://github.com/"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;After that, go to &lt;a href="https://education.github.come/pack"&gt;https://education.github.come/pack&lt;/a&gt; and provide proof you are a student. I used a school email, and that worked perfectly.&lt;/li&gt;
&lt;li&gt;Next, go to &lt;a href="https://education.github.come/pack/offers"&gt;https://education.github.come/pack/offers&lt;/a&gt; and look at all the great services.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Service Recommendations
&lt;/h2&gt;

&lt;p&gt;By proving you are a student you have access to man services for free. Some of them are for as long as you are a student, some are year long trials. Among these is GitHub Pro, which lets you have unlimited private repos, and a nice badge for your profile. Also, &lt;a href="https://repl.it/upgrade/cwi"&gt;Repl.It&lt;/a&gt; &lt;code&gt;&amp;lt;- WARNING: Affiliate Link&lt;/code&gt; has a free “Hacker Plan” subscription.&lt;/p&gt;

</description>
      <category>github</category>
      <category>freestuff</category>
      <category>student</category>
    </item>
    <item>
      <title>Python on the ev3dev framework</title>
      <dc:creator>Cole Wilson</dc:creator>
      <pubDate>Mon, 20 Jul 2020 21:37:53 +0000</pubDate>
      <link>https://dev.to/colewilson/python-on-the-ev3dev-framework-4ali</link>
      <guid>https://dev.to/colewilson/python-on-the-ev3dev-framework-4ali</guid>
      <description>&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;Recently, I have been working on a project to use Python on the ev3dev platform. This is useful, because you can write complex programs for your robots. For example, you could &lt;a href="https://by-the-w3i.github.io/2018/01/03/EV3-PS4-controller/"&gt;connect the ev3 to a PS4 controller.&lt;/a&gt; For me, I was working on a SumoBot, a robot that battles with another, and tries to push it out of a ring. However, this approach will work with an sort of robot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview:
&lt;/h2&gt;

&lt;p&gt;In this tuorial, I will show you how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download the ev3dev operating system for your brick.&lt;/li&gt;
&lt;li&gt;Connect your brick to your Windows or Mac computer.&lt;/li&gt;
&lt;li&gt;Setup PyCharm on your computer.&lt;/li&gt;
&lt;li&gt;Connect to a GitHub repo.&lt;/li&gt;
&lt;li&gt;Sync the code to your brick.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Materials:
&lt;/h2&gt;

&lt;p&gt;You will need the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Windows or Mac with a working Internet and Bluetooth connection.&lt;/li&gt;
&lt;li&gt;An ev3 brick with various sensor and motors.&lt;/li&gt;
&lt;li&gt;A 2-16gb SD card.&lt;/li&gt;
&lt;li&gt;A way to put the SD card into your computer.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1: Getting started:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;First, you will have to download the ev3dev boot image for the ev3 brick. This enables it to work with the Python programming language. You can find the image here.&lt;/li&gt;
&lt;li&gt;Unzip the file, and move the contents to somewhere where you can easily access them.&lt;/li&gt;
&lt;li&gt;Next, flash the image onto your SD card. &lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; to do this, use a program like Etcher, or Rufus, or use the command line. Make sure that you select the correct disk image.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;Insert the SD card into the slot in the brick. Make sure that your brick is off.&lt;/li&gt;
&lt;li&gt;Next, turn on your brick. It will flash wierdly and show lots of text. If it doesn’t show a menu screen in 15 minutes, repeat steps 4-5.&lt;/li&gt;
&lt;li&gt;Next, we need to connect the brick to your computer.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ev3dev.org/docs/tutorials/connecting-to-the-internet-via-bluetooth/"&gt;View this website for instructions on how to connect your brick to the computer.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Connect to your computer with ssh: 

&lt;ul&gt;
&lt;li&gt;If you have a Windows computer download PuTTy, and launch it. Next type in &lt;code&gt;ev3dev.local&lt;/code&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y3n7cVm6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://colewilson.xyz/static/assets/img/putty.png" alt="PuTTy"&gt;
&lt;/li&gt;
&lt;li&gt;Then, type &lt;code&gt;robot&lt;/code&gt; as the username.&lt;/li&gt;
&lt;li&gt;If you have a Mac, then open Terminal, then type &lt;code&gt;ssh robot@ev3dev.local&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Next type in &lt;code&gt;maker&lt;/code&gt; as the password. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Having an error message? Make sure your robot is on, and that you have connected the brick. Also, make sure you have the correct username and password.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;You have access to your brick’s inner workings! Try typing &lt;code&gt;fortune&lt;/code&gt; to get a witty response from the computer.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E9YYG2DD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.ev3dev.org/images/windows/10/putty-robot-at-ev3dev.png" alt="ev3dev shell"&gt;
&lt;/li&gt;
&lt;li&gt;Your home folder is &lt;code&gt;/home/robot&lt;/code&gt; this is where you are put when you connect to the brick. &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Some basic commands:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;cd {path}&lt;/strong&gt; : changes the current working directory to&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ls&lt;/strong&gt; : This shows all the files and folders in the current working directory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;cat {file}&lt;/strong&gt; : This returns the contents of the specified file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;nano {file}&lt;/strong&gt; : This opens an editor for the specified file. Press &lt;code&gt;ctrl+x&lt;/code&gt; (&lt;code&gt;^x&lt;/code&gt;)to save and exit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;clear&lt;/strong&gt; : Clears the terminal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;logout&lt;/strong&gt; : Logs out of remote connection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;rm -rf {path}&lt;/strong&gt; : Deletes file or folder. - &lt;strong&gt;python3 {file}&lt;/strong&gt; : Runs the specified python program.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Right now, you can &lt;code&gt;nano&lt;/code&gt; files into existence and run them from the terminal, but this is less than ideal, in the next section, you will set up PyCharm and Git.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2: Setting up a Development Environment:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.jetbrains.com/pycharm/download/"&gt;Download PyCharm community edition&lt;/a&gt; (or the Pro version if you have it, it’s not needed.)&lt;/li&gt;
&lt;li&gt;Open the file and install it to your computer.&lt;/li&gt;
&lt;li&gt;If you have Windows, you have to configure Git, if you have Mac, you already have it installed, so skip to step 4. 

&lt;ul&gt;
&lt;li&gt;Download &lt;a href="https://git-scm.com/download/win"&gt;git-scm for Windows&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Open and follow the install instructions with default options.&lt;/li&gt;
&lt;li&gt;Open PyCharm, and push &lt;code&gt;ctrl + alt + s&lt;/code&gt; to open preferences.&lt;/li&gt;
&lt;li&gt;Goto &lt;code&gt;Version Control &amp;gt; git&lt;/code&gt; and in the top file path put &lt;code&gt;C:\Users\&amp;lt;your username&amp;gt;\AppData\Local\Programs\Git\git.exe&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Now, &lt;a href="https://github.com/signup"&gt;get a GitHub account&lt;/a&gt; if you don’t have one yet. They are free, and tremendously useful.&lt;/li&gt;
&lt;li&gt;Goto &lt;a href="https://github.com/new"&gt;https://github.com/new&lt;/a&gt; and create a new repository with the name &lt;code&gt;ev3&lt;/code&gt;, and select the option to include a &lt;code&gt;README.md&lt;/code&gt;.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dpHfse5f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/cole-wilson/cole-wilson.github.io/master/static/assets/img/ghnew.png" alt="New Repo"&gt;
&lt;/li&gt;
&lt;li&gt;Open PyCharm.&lt;/li&gt;
&lt;li&gt;Goto &lt;code&gt;Checkout from Version Control&lt;/code&gt; and go to the GitHub tab. Sign in, and select your &lt;code&gt;ev3&lt;/code&gt; repository. &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cKdPFvrJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www2.lawrence.edu/fast/GREGGJ/CMSC210/intro/installing1.png" alt="Git"&gt;
&lt;/li&gt;
&lt;li&gt;Now, you should have your code in PyCharm. As you can see, all that you have now is a file called &lt;code&gt;README.md&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  3: Adding Code to the Program.
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;First, in the upper lefthand corner, it will say your project name. Right click on it, and push Create New Python file.&lt;/li&gt;
&lt;li&gt;Pycham should ask you if you wan to add the file to Git. You should do this, and select the option to automatically do this.&lt;/li&gt;
&lt;li&gt;In the new file, type:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  import time
  print('The program is starting...')
  time.sleep(2)
  print('The program is ending.')

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;In the VCs tab in PyCharm, press commit changes.&lt;/li&gt;
&lt;li&gt;Click the blue arrow next to the COMMIT button, and push &lt;code&gt;Commit and Push&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Then push &lt;code&gt;Push&lt;/code&gt;.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4q7ZsrhH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/wiki/WheatonCS/Lexos/Developer-Guide/git-pycharm/commit-push-button.PNG" alt="commit"&gt;
&lt;/li&gt;
&lt;li&gt;Your code is now on GitHub, but how to get it on the brick? &lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;You can view your code by going to &lt;a href="https://github.com/%7Byour-username%7D/ev3"&gt;https://github.com/{your-username}/ev3&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  4: Adding code to the brick:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;If you are on Windows, open Git-Bash from the start menu, if you have a Mac, open Terminal.&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;git clone https://github.com/{ github username }/ev3.git&lt;/code&gt;. This copies your code into a local file.&lt;/li&gt;
&lt;li&gt;Next, type &lt;code&gt;sftp robot@ev3dev.local&lt;/code&gt;, &lt;em&gt;notice it is not &lt;code&gt;ssh&lt;/code&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Put in your password.&lt;/li&gt;
&lt;li&gt;Now type &lt;code&gt;cd ~&lt;/code&gt;, then &lt;code&gt;put ev3&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Now open up your SSH session. Type &lt;code&gt;ls&lt;/code&gt; to view your files.&lt;/li&gt;
&lt;li&gt;You should see a blue or green folder called &lt;code&gt;ev3&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Go into the folder by typing &lt;code&gt;cd ~/ev3&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Then, type &lt;code&gt;python3 main.py&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Your program takes a while to load, but then it runs!&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  5. Simplifying the process:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Every time you would like to add code to your robot, you will have to remove the old code from the robot, and then do all of sections 3 and 4 again.&lt;/li&gt;
&lt;li&gt;We will simplify this process.&lt;/li&gt;
&lt;li&gt;Close your terminal. (Either Git-Bash, or Terminal)&lt;/li&gt;
&lt;li&gt;Open a new terminal.&lt;/li&gt;
&lt;li&gt;Type nano &lt;code&gt;e.sh&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Add this code to the file:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; echo "Starting..."
 rm -rf ev3
 git clone htttps://github.com/&amp;lt; username &amp;gt;/ev3
 sftp robot@ev3.local:~ &amp;lt;&amp;lt;&amp;lt; $'put {ev3}'
 echo "Done."

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Push &lt;code&gt;^X&lt;/code&gt; to save, and type &lt;code&gt;chmod + x e.sh&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Now, all you have to do is type &lt;code&gt;rm -rf ~/ev3&lt;/code&gt; on the robot, and &lt;code&gt;sh e.sh&lt;/code&gt; on the local computer to update the brick.&lt;/li&gt;
&lt;li&gt;We can go even further and make custom commands on the brick!&lt;/li&gt;
&lt;li&gt;On the brick, type &lt;code&gt;sudo nano /etc/bash/bash.rc&lt;/code&gt; and enter your password.&lt;/li&gt;
&lt;li&gt;Add this to the end of the file:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;alias prep='rm -rf ~/ev3'
alias run='python3 ~/ev3/main.py'

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Restart the brick.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  6. So far…
&lt;/h2&gt;

&lt;p&gt;Now, you write the program in Pycharm, and commit+push to GitHub. Then, on an SSH session, you type &lt;code&gt;prep&lt;/code&gt; to clear the brick. Then, on your local terminal, type &lt;code&gt;sh e.sh&lt;/code&gt;. On your SSH session, type &lt;code&gt;run&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>python</category>
      <category>ev3</category>
      <category>robotics</category>
      <category>linux</category>
    </item>
  </channel>
</rss>
