<?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: 17lwinn</title>
    <description>The latest articles on DEV Community by 17lwinn (@17lwinn).</description>
    <link>https://dev.to/17lwinn</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%2F344182%2Fe02a60d8-a5cf-4e18-8f8d-e67559c35571.jpeg</url>
      <title>DEV Community: 17lwinn</title>
      <link>https://dev.to/17lwinn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/17lwinn"/>
    <language>en</language>
    <item>
      <title>glitchchord updates</title>
      <dc:creator>17lwinn</dc:creator>
      <pubDate>Fri, 24 Jul 2020 08:05:39 +0000</pubDate>
      <link>https://dev.to/17lwinn/glitchchord-updates-4gj2</link>
      <guid>https://dev.to/17lwinn/glitchchord-updates-4gj2</guid>
      <description>&lt;p&gt;Wow, since we started we now have over 100 users! thanks to all those who helped us get to where we are now!&lt;/p&gt;

&lt;p&gt;We are unveiling some new features!:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;statuses- show how you feel! look for 'status' in your profile!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;load profile pic from URL- if your having issues uploading an image, then load one from a remote source! look for this under 'upload a profile picture'&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;user-specific admin- admin is granted through boolean logic, to prevent users getting powers we only load resources needed for admins where they are wanted. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some users may have witnessed the birth of markdown support, we have had to discontinue this for now until we can fix an ongoing issue.&lt;/p&gt;

&lt;p&gt;Again, thank you to all the devs who offered their help and to you (the user) for staying with us! &lt;/p&gt;

</description>
    </item>
    <item>
      <title>S2SL is back! But we need your help!</title>
      <dc:creator>17lwinn</dc:creator>
      <pubDate>Sat, 18 Jul 2020 11:09:36 +0000</pubDate>
      <link>https://dev.to/17lwinn/s2sl-is-back-but-we-need-your-help-27p</link>
      <guid>https://dev.to/17lwinn/s2sl-is-back-but-we-need-your-help-27p</guid>
      <description>&lt;p&gt;Its been a long and hard year for us  all during  the COVID-19 pandemic, and that is why we are asking for your help!&lt;/p&gt;

&lt;p&gt;We urge you to donate to charities on the scripting to save lives website, and code through github pull requests. But we need more support to help more people!&lt;/p&gt;

&lt;p&gt;if at all possible, consider spreading the word across the coding community or your local area. Consider contacting people to put up advertisments or anything to ramp up support!&lt;/p&gt;

&lt;p&gt;your support and feedback drives us on every day, keep on coding!&lt;/p&gt;

&lt;p&gt;17lwinn - editor developer&lt;/p&gt;




&lt;p&gt;&lt;small&gt;Scripting To Save Lives is a non for profit organisation made up of teenagers and developers wanting to make a change&lt;/small&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>My attempt at recreating AWS</title>
      <dc:creator>17lwinn</dc:creator>
      <pubDate>Wed, 17 Jun 2020 11:16:18 +0000</pubDate>
      <link>https://dev.to/17lwinn/my-attempt-at-recreating-aws-5647</link>
      <guid>https://dev.to/17lwinn/my-attempt-at-recreating-aws-5647</guid>
      <description>&lt;p&gt;For the last 3 months or so, I have been making a new project that is a service- providing  (almost) the same services as Amazon Web Services (AWS).&lt;/p&gt;

&lt;p&gt;Not releasing the name in this post yet.&lt;/p&gt;

&lt;p&gt;Basically you navigate to &lt;a href="https://pws-cluster-list.glitch.me"&gt;https://pws-cluster-list.glitch.me&lt;/a&gt; and you'll be on our 'cluster' page, a set of open-source community-run web desktops. The whole service runs on glitch.com and has been a good thing to do.&lt;/p&gt;

&lt;p&gt;Some help decoding the names:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SR1 = Server: has applications designed for use with servers/WS (Due to SSH issues we will remove xTerm at some point)&lt;/li&gt;
&lt;li&gt;W2 = Write: Mainly for writing, with a PDF reader and text editor alongside other apps.&lt;/li&gt;
&lt;li&gt;C3 (beta) = This is kinda a first look at the new cluster software (AuoraOS 4), it has a configuration wizard, a welcome screen alongside other apps. I would leave this for a few days while we add more to it :)&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;They each have a Virtual File System and are regularly updated&lt;/p&gt;

&lt;p&gt;I might take a break from cluster computing (let word spread) and start working on a database as a service- idk yet.&lt;/p&gt;

&lt;p&gt;Cluster software  - OS.js (SR1/W2 clusters) auoraOS 4 (C3 clusters)*&lt;/p&gt;

&lt;p&gt;*- update expected soon which will switch us to auoraOS, stay tuned! &lt;/p&gt;

&lt;p&gt;&lt;b&gt; self host our clusters, goto &lt;a href="https://github.com/ProTech-IT-Solutions/PWS-server-cluster-temp"&gt;https://github.com/ProTech-IT-Solutions/PWS-server-cluster-temp&lt;/a&gt; ( published without configuration wizard )&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Check the wiki for self hosting instructions! &lt;/p&gt;

&lt;p&gt;&lt;small&gt; visit ProTech IT Solutions website at &lt;a href="https://ptuk.tk"&gt;https://ptuk.tk&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;

</description>
      <category>html</category>
      <category>javascript</category>
    </item>
    <item>
      <title>glitch-addons, extend your glitch experience!</title>
      <dc:creator>17lwinn</dc:creator>
      <pubDate>Sun, 31 May 2020 16:32:54 +0000</pubDate>
      <link>https://dev.to/17lwinn/glitch-addons-extend-your-glitch-experience-3b9o</link>
      <guid>https://dev.to/17lwinn/glitch-addons-extend-your-glitch-experience-3b9o</guid>
      <description>&lt;h1&gt;
  
  
  extend your experience!
&lt;/h1&gt;

&lt;p&gt;glitch-addons is a project which lets you download and use chunks of code or scripts made by us (&lt;a href="https://ptuk.tk"&gt;ProTech IT Solutions&lt;/a&gt;) or you!&lt;/p&gt;

&lt;h1&gt;
  
  
  Wait... do I need sudo?-
&lt;/h1&gt;

&lt;p&gt;No! it uses Apache SubVersioN (SVN) to get files from our community repo- check out &lt;a href="https://cli-addon-list.glitch.me"&gt;https://cli-addon-list.glitch.me&lt;/a&gt; for a list of addons and a link to the repo (check footer)&lt;/p&gt;

&lt;h1&gt;
  
  
  How do I install the thing?!-
&lt;/h1&gt;

&lt;p&gt;run this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;wget&lt;/span&gt; &lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;glitch&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;addons&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;cli&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;glitch&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;me&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;cli&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;py&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;then&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python3 cli.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;command list under the command 'help'&lt;/p&gt;

&lt;h1&gt;
  
  
  There isn't many addons!-
&lt;/h1&gt;

&lt;p&gt;This is because it is new, our repo is empty and we need your code!&lt;/p&gt;

&lt;p&gt;follow the 3 steps in &lt;a href="https://github.com/17lwinn/glitch-community-addon-registry/blob/master/README.md#glitch-community-addon-registry"&gt;here&lt;/a&gt; to submit an addon&lt;/p&gt;

&lt;h1&gt;
  
  
  I NEED HELP!-
&lt;/h1&gt;

&lt;p&gt;sorry to hear! PM me on the glitch forum! or reply by replying here!&lt;/p&gt;

&lt;h1&gt;
  
  
  What does 'nvm' do?-
&lt;/h1&gt;

&lt;p&gt;This installs the Node Version Manager, you need &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a .bashrc or .bash_profile file&lt;/li&gt;
&lt;li&gt;node.JS&lt;/li&gt;
&lt;li&gt;enough space&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;small&gt;&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;copyright 2020-2021 ProTech IT Solutions&lt;br&gt;
&lt;/p&gt;

</description>
      <category>glitch</category>
    </item>
    <item>
      <title>Scripting To Saves Lives shutdown</title>
      <dc:creator>17lwinn</dc:creator>
      <pubDate>Wed, 27 May 2020 17:41:33 +0000</pubDate>
      <link>https://dev.to/17lwinn/scripting-to-saves-lives-shutdown-1ael</link>
      <guid>https://dev.to/17lwinn/scripting-to-saves-lives-shutdown-1ael</guid>
      <description>&lt;p&gt;I have some very bad news, scripting to save lives is finished.&lt;/p&gt;

&lt;p&gt;Our founder Riverside rocks said:&lt;/p&gt;




&lt;p&gt;Hello,&lt;/p&gt;

&lt;p&gt;Unfortunately, ScriptingToSaveLives has gained very little traction. We have only raised $20 dollars and our website gets very little views. Right now, there are also only two people helping the cause. That is nowhere near what we need. Because of this, I am putting the project on hold. scriptingtosavelives.com and &lt;a href="http://www.scriptingtosavelives.com"&gt;www.scriptingtosavelives.com&lt;/a&gt; will be forwarded to this post. The project will be put on hold indefinitely.&lt;/p&gt;

&lt;p&gt;Thank you,&lt;br&gt;
Riverside Rocks&lt;/p&gt;




&lt;p&gt;So here is the new guidelines for donations:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Any donated code older than 2 days shall be added&lt;/li&gt;
&lt;li&gt;Any new code shall be ignored&lt;/li&gt;
&lt;li&gt;Our services will remain open until next week&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thanks for everyone who played a part.&lt;br&gt;
17lwinn- editor developer&lt;/p&gt;

</description>
      <category>glitch</category>
    </item>
    <item>
      <title>aurora OS</title>
      <dc:creator>17lwinn</dc:creator>
      <pubDate>Fri, 22 May 2020 08:41:01 +0000</pubDate>
      <link>https://dev.to/17lwinn/aurora-os-2a9m</link>
      <guid>https://dev.to/17lwinn/aurora-os-2a9m</guid>
      <description>&lt;p&gt;not a lot of time so i'll make this the best I can.&lt;/p&gt;

&lt;p&gt;Glitch user Soup made a browser operating system called auroraOS, which is similar to OS.js but it is easier to make apps and modify.&lt;/p&gt;

&lt;p&gt;The code recognises new apps in folders, so if I clone the settings folder- a new one will be made.&lt;/p&gt;

&lt;p&gt;the API has options for making alerts and a javascript terminal for using the dev console for those on mobile.&lt;/p&gt;

&lt;p&gt;Full topic here at &lt;a href="https://support.glitch.com/t/auroraos-an-os-in-your-browser/24337"&gt;https://support.glitch.com/t/auroraos-an-os-in-your-browser/24337&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would reccomend it to all beginner and advanced javascript coders!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>glitch</category>
    </item>
    <item>
      <title>SuperPyOS- the security</title>
      <dc:creator>17lwinn</dc:creator>
      <pubDate>Wed, 29 Apr 2020 07:52:23 +0000</pubDate>
      <link>https://dev.to/17lwinn/superpyos-the-security-1mhp</link>
      <guid>https://dev.to/17lwinn/superpyos-the-security-1mhp</guid>
      <description>&lt;h1&gt;
  
  
  stopping piracy one step at a time...
&lt;/h1&gt;

&lt;p&gt;well not really.&lt;/p&gt;




&lt;p&gt;further down the line, we realised after pushing to github that people would poke around at our code. Find vulnerabilities and send pirate copies of the system to others&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;YES I KNOW IT'S OPEN SOURCE! BUT YOU NEED TO BE PREPARED!&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  step 1. the name
&lt;/h1&gt;

&lt;p&gt;We needed a name that sounded professional but friendly, in the end we settled for the name EN_LICE_ULOCK. It was a bad name but we didn't have a lot of time.&lt;/p&gt;

&lt;h1&gt;
  
  
  step 2. the code
&lt;/h1&gt;

&lt;p&gt;There needed to be a way to stop execution on startup if something was missing, licelock 1.0 looked like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sys&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;logging&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;

&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"LICENSE.txt"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"r"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;it was bad, really bad...&lt;/p&gt;

&lt;p&gt;all it does is look for a LICENSE.txt file, and python throws the tantrum when it can't be found, we needed to change and fast.&lt;/p&gt;

&lt;h1&gt;
  
  
  step 3. securing further and the API
&lt;/h1&gt;

&lt;p&gt;First, we needed to change the way licelock works...&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;instead of putting it in the main code, we turn it into a module and ship with every copy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;change what it looks for, or at least seperate into levels of protection.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;get the update out fast.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;so our new proccedure worked like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;keylock&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;base64&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;b64encode&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;b64decode&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;Crypto.Hash&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;SHA256&lt;/span&gt;
    &lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;Crypto.Signature&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;PKCS1_v1_5&lt;/span&gt;
    &lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;Crypto.PublicKey&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;RSA&lt;/span&gt;


    &lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Validated"&lt;/span&gt;
    &lt;span class="n"&gt;digest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SHA256&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;digest&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Read shared key from file
&lt;/span&gt;    &lt;span class="n"&gt;private_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;
    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"superpy.pem"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"r"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;myfile&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;private_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;RSA&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;importKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myfile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;

    &lt;span class="c1"&gt;# Load private key and sign message
&lt;/span&gt;    &lt;span class="n"&gt;signer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;PKCS1_v1_5&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;private_key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;sig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;signer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sign&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;digest&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Load public key and verify message
&lt;/span&gt;    &lt;span class="n"&gt;verifier&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;PKCS1_v1_5&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;private_key&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;publickey&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="n"&gt;verified&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;verifier&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;verify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;digest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sig&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="n"&gt;verified&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Signature verification failed"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Successfully verified signature, booting..."&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;system&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"python3 boot.py"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;look for secure keys instead of editable text files!&lt;/p&gt;

&lt;p&gt;just for ref- the keys are generated through openSSL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;openssl&lt;/span&gt; &lt;span class="n"&gt;genrsa&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="n"&gt;private_key&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pem&lt;/span&gt; &lt;span class="mi"&gt;1024&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;now with that sorted, we needed to import it into the code. We saved it as licelock.py and in our main file we added-&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;licelock&lt;/span&gt;

&lt;span class="n"&gt;licelock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keylock&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and there we go, a simple but secure mechanism that shuts off the script if there isn't a key. I WOULD NOT use this in production if I was you!&lt;/p&gt;

</description>
      <category>python</category>
      <category>linux</category>
    </item>
    <item>
      <title>superPyOS- the terminal</title>
      <dc:creator>17lwinn</dc:creator>
      <pubDate>Wed, 29 Apr 2020 07:26:30 +0000</pubDate>
      <link>https://dev.to/17lwinn/superpyos-the-terminal-n73</link>
      <guid>https://dev.to/17lwinn/superpyos-the-terminal-n73</guid>
      <description>&lt;p&gt;It's been a while I know, but here is the second chapter!&lt;/p&gt;




&lt;p&gt;the terminal was the main part of the OS, it had different commands controlling parts of the system. Something so powerful i'm going to say only involved the basic parts of python like user input, IF and the os module.&lt;/p&gt;




&lt;h1&gt;
  
  
  1. the modules
&lt;/h1&gt;

&lt;p&gt;firstly you need to import your modules, we reccommend:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;io&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;platform&lt;/span&gt;    &lt;span class="c1"&gt;# modules to use
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;subprocess&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sys&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;glob&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;logging&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;*logging will be explained later in the series.&lt;/p&gt;

&lt;h1&gt;
  
  
  2. the prompt
&lt;/h1&gt;

&lt;p&gt;An OS prompt would be the location it is now, we can program this by using;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;currentpath&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getcwd&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# get current path
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;so your prompt would be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;command&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;currentpath&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt; "&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  3. the commands!
&lt;/h1&gt;

&lt;p&gt;Now that we have our input prompt, we can start adding commands!&lt;/p&gt;

&lt;p&gt;each command would start as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;command&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;"COMMAND"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;then below that you add your function- what do you want it to do?&lt;/p&gt;

&lt;p&gt;for example, perhaps we want to clear the screen? we would use the OS module for that.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;command&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;"clear"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
   &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;system&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"clear"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;of course- we need a way to loop the script- or after each command it'll quit.&lt;/p&gt;

&lt;p&gt;so at the VERY END, we would put:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;system&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"python3 SCRIPTNAME.py"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;if you know how to use other modules, then you can link them up and start making your own beginner 'guest' operating systems!&lt;/p&gt;

</description>
      <category>python</category>
      <category>linux</category>
    </item>
    <item>
      <title>Scripting to Save Lives- helping the fight against COVID-19</title>
      <dc:creator>17lwinn</dc:creator>
      <pubDate>Thu, 09 Apr 2020 11:21:03 +0000</pubDate>
      <link>https://dev.to/17lwinn/scripting-to-save-lives-helping-the-fight-against-covid-19-10eb</link>
      <guid>https://dev.to/17lwinn/scripting-to-save-lives-helping-the-fight-against-covid-19-10eb</guid>
      <description>&lt;h1&gt;
  
  
  help donate to hospitals!
&lt;/h1&gt;

&lt;p&gt;we need anything from full page designs to a few lines of code to beat COVID-19!&lt;/p&gt;

&lt;p&gt;What do we need you ask?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;home page to describe the cause&lt;/li&gt;
&lt;li&gt;dev help page so you can donate through folding@home&lt;/li&gt;
&lt;li&gt;donation options page&lt;/li&gt;
&lt;li&gt;other ways to help page&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;anything would help!&lt;/p&gt;

&lt;p&gt;see the full article here at &lt;a href="https://support.glitch.com/t/scripting-to-save-lives-we-need-your-help/21753"&gt;https://support.glitch.com/t/scripting-to-save-lives-we-need-your-help/21753&lt;/a&gt;&lt;/p&gt;

</description>
      <category>coronavirus</category>
      <category>covid19</category>
      <category>stayhomesavelives</category>
    </item>
    <item>
      <title>Onworks, how to run Ubuntu online</title>
      <dc:creator>17lwinn</dc:creator>
      <pubDate>Thu, 02 Apr 2020 10:40:44 +0000</pubDate>
      <link>https://dev.to/17lwinn/onworks-how-to-run-ubuntu-online-cnm</link>
      <guid>https://dev.to/17lwinn/onworks-how-to-run-ubuntu-online-cnm</guid>
      <description>&lt;p&gt;Continues from my last post:&lt;/p&gt;




&lt;p&gt;Onworks.net is a free Linux emulation site, it allows you to use distros like Ubuntu for free with root access and internet connection.&lt;/p&gt;

&lt;p&gt;But how do we use it?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;a href="https://onworks.net"&gt;https://onworks.net&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Find Ubuntu 19 and click 'run online'&lt;/li&gt;
&lt;li&gt;A new tab will open, please wait until a piece of red text shows reading something like 'OS ubuntu-19.10-desktop-amd64'&lt;/li&gt;
&lt;li&gt;Click 'start'&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You repeat the steps for any distro on its site, FYI the root/user password is 123456 (says in banner on startup)&lt;/p&gt;

&lt;p&gt;You can now use this to install many things, but to be honest- I would use fedora workstation&lt;/p&gt;




</description>
      <category>linux</category>
    </item>
    <item>
      <title>Run Linux online- some services I use</title>
      <dc:creator>17lwinn</dc:creator>
      <pubDate>Thu, 02 Apr 2020 10:33:32 +0000</pubDate>
      <link>https://dev.to/17lwinn/run-linux-online-some-services-i-use-5a5c</link>
      <guid>https://dev.to/17lwinn/run-linux-online-some-services-i-use-5a5c</guid>
      <description>&lt;p&gt;Many people want to test Linux before they download it, most people don't want to bundle it onto a USB and configure through a BIOS. If your that type of person then here are two services you can use:&lt;/p&gt;

&lt;p&gt;Onworks- this lets you run many different Linux distros like Ubuntu, fedora or redhat Linux. It's free and you can save your session to your Google Drive. You get root access and internet! I would recommend this!&lt;br&gt;
Link: &lt;a href="https://www.onworks.net"&gt;https://www.onworks.net&lt;/a&gt; *&lt;/p&gt;




&lt;p&gt;DistroTest: the same thing, choose a distro and run it! But you have a 30 minute timer which you can +15 minutes onto- and if you don't then it shuts down. It also lets you connect to your machine through VNC, handy for remote testing (all your data gets cleared though, and you only have so much disk space)&lt;/p&gt;

&lt;p&gt;Downside is that they have disabled any connections so you can't use the internet. But you do get Root access!&lt;br&gt;
Link: &lt;a href="https://distrotest.net"&gt;https://distrotest.net&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But &lt;a href="https://distrotest.net"&gt;https://distrotest.net&lt;/a&gt; are donating their power to help create a model of COVID-19. So I would still try it out!&lt;/p&gt;

&lt;p&gt;*- more in next article&lt;/p&gt;

</description>
      <category>linux</category>
    </item>
    <item>
      <title>made a package manager in python3</title>
      <dc:creator>17lwinn</dc:creator>
      <pubDate>Tue, 24 Mar 2020 08:32:33 +0000</pubDate>
      <link>https://dev.to/17lwinn/made-a-package-manager-in-python3-3342</link>
      <guid>https://dev.to/17lwinn/made-a-package-manager-in-python3-3342</guid>
      <description>&lt;p&gt;&lt;a href="https://support.glitch.com/t/workman-package-manager-wip-for-python3"&gt;https://support.glitch.com/t/workman-package-manager-wip-for-python3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;so i made a package manager in python. works fine and it allows installing of packages from our library as ZIP files- which get decompressed client-side.&lt;/p&gt;

&lt;p&gt;i would make a better intro but i suppose you might as well try for yourself.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wget &lt;a href="https://workman-pack.glitch.me/workman.py"&gt;https://workman-pack.glitch.me/workman.py&lt;/a&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;packages available:&lt;/p&gt;

&lt;p&gt;-XenText 2.0 / CLI&lt;br&gt;
package name: xent&lt;/p&gt;




&lt;p&gt;check the topic link at the top for better information!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;17lwinn&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>linux</category>
      <category>glitch</category>
    </item>
  </channel>
</rss>
