<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Level533</title>
	<atom:link href="https://level533.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://level533.com</link>
	<description>Aris Green&#039;s Programming &#38; Design Blog</description>
	<lastBuildDate>
	Tue, 07 May 2019 17:36:31 +0000	</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Kickstarter Collection</title>
		<link>https://level533.com/2019/05/kickstarter-collection/</link>
				<comments>https://level533.com/2019/05/kickstarter-collection/#respond</comments>
				<pubDate>Tue, 07 May 2019 17:36:30 +0000</pubDate>
		<dc:creator><![CDATA[Aris Green]]></dc:creator>
				<category><![CDATA[Code Samples]]></category>
		<category><![CDATA[Helpful Links]]></category>

		<guid isPermaLink="false">http://level533.com/?p=879</guid>
				<description><![CDATA[Here is my kickstarter link collection, a collection of links to help you get applications, application features, build and test environments, up and running, smashing learning curves along the way with good demonstration. SSO Building A Simple Single Sign On(SSO) &#8230; <a href="https://level533.com/2019/05/kickstarter-collection/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
								<content:encoded><![CDATA[
<p>Here is my kickstarter link collection, a collection of links to help you get applications, application features, build and test environments, up and running, smashing learning curves along the way with good demonstration.</p>



<h2>SSO</h2>



<p><a href="https://codeburst.io/building-a-simple-single-sign-on-sso-server-and-solution-from-scratch-in-node-js-ea6ee5fdf340">Building A Simple Single Sign On(SSO) Server And Solution From Scratch In Node.js.</a><br>
Here the author creates a &#8220;roll your own&#8221; SSO implementation in NodeJS, a solution easily ported to other platforms.</p>
]]></content:encoded>
							<wfw:commentRss>https://level533.com/2019/05/kickstarter-collection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Installing Git On Windows &#8211; My Opinionated Approach</title>
		<link>https://level533.com/2019/02/installing-git-on-windows-my-opinionated-approach/</link>
				<comments>https://level533.com/2019/02/installing-git-on-windows-my-opinionated-approach/#respond</comments>
				<pubDate>Thu, 28 Feb 2019 04:35:02 +0000</pubDate>
		<dc:creator><![CDATA[Aris Green]]></dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://level533.com/?p=833</guid>
				<description><![CDATA[Download the installer from git-scm.com. Use a 64 bit version for a 64 bit operating system. The install sequence and comments are detailed below. Information Select Destination Location Select Components Uncheck Associate .sh files to be run with Bash if &#8230; <a href="https://level533.com/2019/02/installing-git-on-windows-my-opinionated-approach/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
								<content:encoded><![CDATA[
<p>Download the installer from <a href="https://git-scm.com/">git-scm.com</a>. Use a 64 bit version for a 64 bit operating system. The install sequence and comments are detailed below.</p>



<p><strong>Information</strong></p>



<figure class="wp-block-image"><img src="https://level533.com/wp-content/uploads/2019/02/GitInstall-00-License.png" alt="" class="wp-image-837" srcset="https://level533.com/wp-content/uploads/2019/02/GitInstall-00-License.png 499w, https://level533.com/wp-content/uploads/2019/02/GitInstall-00-License-300x233.png 300w" sizes="(max-width: 499px) 100vw, 499px" /></figure>



<hr class="wp-block-separator"/>



<p><strong>Select Destination Location</strong></p>



<figure class="wp-block-image"><img src="https://level533.com/wp-content/uploads/2019/02/GitInstall-01-Dest.png" alt="" class="wp-image-839" srcset="https://level533.com/wp-content/uploads/2019/02/GitInstall-01-Dest.png 499w, https://level533.com/wp-content/uploads/2019/02/GitInstall-01-Dest-300x233.png 300w" sizes="(max-width: 499px) 100vw, 499px" /></figure>



<hr class="wp-block-separator"/>



<p><strong>Select Components</strong></p>



<figure class="wp-block-image"><img src="https://level533.com/wp-content/uploads/2019/02/GitInstall-02-SelectComponents.png" alt="" class="wp-image-840" srcset="https://level533.com/wp-content/uploads/2019/02/GitInstall-02-SelectComponents.png 499w, https://level533.com/wp-content/uploads/2019/02/GitInstall-02-SelectComponents-300x233.png 300w" sizes="(max-width: 499px) 100vw, 499px" /></figure>



<ul><li>Uncheck <em>Associate .sh files to be run with Bash</em> if you have other Bash environments such as Cygwin installed.</li><li>Check <em>Use a TrueType font in all console Windows</em> if you want a nicer font in your Git-Bash terminal.</li></ul>



<p>Using a TrueType font for the Git-Bash console will better display Unicode characters.</p>



<hr class="wp-block-separator"/>



<p><strong>Select Start Menu Folder</strong></p>



<figure class="wp-block-image"><img src="https://level533.com/wp-content/uploads/2019/02/GitInstall-03-StartMenuFolder.png" alt="" class="wp-image-842" srcset="https://level533.com/wp-content/uploads/2019/02/GitInstall-03-StartMenuFolder.png 499w, https://level533.com/wp-content/uploads/2019/02/GitInstall-03-StartMenuFolder-300x233.png 300w" sizes="(max-width: 499px) 100vw, 499px" /></figure>



<hr class="wp-block-separator"/>



<p><strong>Choosing the Default Editor Used By Git</strong></p>



<figure class="wp-block-image"><img src="https://level533.com/wp-content/uploads/2019/02/GitInstall-04-DefaultEditor.png" alt="" class="wp-image-843" srcset="https://level533.com/wp-content/uploads/2019/02/GitInstall-04-DefaultEditor.png 499w, https://level533.com/wp-content/uploads/2019/02/GitInstall-04-DefaultEditor-300x233.png 300w" sizes="(max-width: 499px) 100vw, 499px" /></figure>



<p>Vim comes bundled with the install and is available in Git-Bash. You may change the default editor later.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$ git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"</pre>



<p>The above changes the editor to Notepad++ for in the user&#8217;s global configuration.</p>



<p>Do not try to use MS Word or WordPad, the configuration needs to be in plain text. Use a UTF-8 <em><strong>without</strong></em> the UTF-8 BOM encoding for the text format. </p>



<hr class="wp-block-separator"/>



<p><strong>Adjusting you PATH Environment</strong></p>



<figure class="wp-block-image"><img src="https://level533.com/wp-content/uploads/2019/02/GitInstall-05-Path.png" alt="" class="wp-image-844" srcset="https://level533.com/wp-content/uploads/2019/02/GitInstall-05-Path.png 499w, https://level533.com/wp-content/uploads/2019/02/GitInstall-05-Path-300x233.png 300w" sizes="(max-width: 499px) 100vw, 499px" /></figure>



<hr class="wp-block-separator"/>



<p><strong>Choosing HTTPS Transport Backend</strong></p>



<figure class="wp-block-image"><img src="https://level533.com/wp-content/uploads/2019/02/GitInstall-06-SslBackend.png" alt="" class="wp-image-845" srcset="https://level533.com/wp-content/uploads/2019/02/GitInstall-06-SslBackend.png 499w, https://level533.com/wp-content/uploads/2019/02/GitInstall-06-SslBackend-300x233.png 300w" sizes="(max-width: 499px) 100vw, 499px" /></figure>



<p>This sets the git <span class="my-mono"><strong>http.sslBackend</strong></span> setting and this can changed later. The top radio sets the system value to&nbsp;<strong>openssl</strong>. The bottom radio sets this to <strong>schannel</strong> for using the Windows Certificate store. This options can always be changed on a system, per user, or per project basis later. </p>



<p>This option only needs to be set to <strong>schannel</strong> if custom SSL certificates are used for accessing remote repos using HTTPS. </p>



<p>It is advised to go with the default OpenSSL and only switch to the other on a per project basis when needed. You can always change this later.</p>



<hr class="wp-block-separator"/>



<p><strong>Configuring the Line Ending Conversions</strong></p>



<figure class="wp-block-image"><img src="https://level533.com/wp-content/uploads/2019/02/GitInstall-07-CommitLineEndings.png" alt="" class="wp-image-846" srcset="https://level533.com/wp-content/uploads/2019/02/GitInstall-07-CommitLineEndings.png 499w, https://level533.com/wp-content/uploads/2019/02/GitInstall-07-CommitLineEndings-300x233.png 300w" sizes="(max-width: 499px) 100vw, 499px" /></figure>



<p>This sets the system Git <strong>core.autocrlf</strong> config option.</p>



<hr class="wp-block-separator"/>



<p><strong>Configuring the Terminal Emulator To Use With Git Bash</strong></p>



<figure class="wp-block-image"><img src="http://level533.com/wp-content/uploads/2019/02/GitInstall-08-TerminalEditor.png" alt="" class="wp-image-847" srcset="https://level533.com/wp-content/uploads/2019/02/GitInstall-08-TerminalEditor.png 499w, https://level533.com/wp-content/uploads/2019/02/GitInstall-08-TerminalEditor-300x233.png 300w" sizes="(max-width: 499px) 100vw, 499px" /></figure>



<p>The seconds option is not advised here. If you want to use Git from something other than a Bash shell, use the posh-git module from the <a href="https://www.powershellgallery.com/">PowerShell Gallery</a> and use Git from PowerShell. </p>



<p>PowerShell with posh-git still does not work as well as Git-Bash. If you insist on using Git from cmd.exe, find a good therapist.</p>



<hr class="wp-block-separator"/>



<p><strong>Configuring Extra Options</strong></p>



<figure class="wp-block-image"><img src="https://level533.com/wp-content/uploads/2019/02/GitInstall-09-ExtraOptions.png" alt="" class="wp-image-848" srcset="https://level533.com/wp-content/uploads/2019/02/GitInstall-09-ExtraOptions.png 499w, https://level533.com/wp-content/uploads/2019/02/GitInstall-09-ExtraOptions-300x233.png 300w" sizes="(max-width: 499px) 100vw, 499px" /></figure>



<p>I&#8217;ve not had the need to use symbolic links in any of my Git project. If needed, this option can be set later by setting the Git <strong>core.symlinks</strong> to <strong>true</strong>. Remember to set the SeCreateSymbolicLink permission for the user accounts needing this.</p>
]]></content:encoded>
							<wfw:commentRss>https://level533.com/2019/02/installing-git-on-windows-my-opinionated-approach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Git File Based Repos</title>
		<link>https://level533.com/2019/02/git-file-based-repos/</link>
				<comments>https://level533.com/2019/02/git-file-based-repos/#respond</comments>
				<pubDate>Wed, 27 Feb 2019 21:31:10 +0000</pubDate>
		<dc:creator><![CDATA[Aris Green]]></dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://level533.com/?p=823</guid>
				<description><![CDATA[Sometimes you may need to keep code in a Git repo, but don&#8217;t have a nice web based backend like GitHub available yet to push your source into. A workaround can be to start with a file based repo that &#8230; <a href="https://level533.com/2019/02/git-file-based-repos/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
								<content:encoded><![CDATA[
<p>Sometimes you may need to keep code in a Git repo, but don&#8217;t have a nice web based backend like GitHub available yet to push your source into. A workaround can be to start with a file based repo that you can later easily push to a backend when you have one available. While you won&#8217;t have the nice web based repository view associated with many of these backends, you at least get the full Git command line.</p>



<p>All you need is the Git command line client to get started. Windows users can get it from <a href="https://git-scm.com/">git-scm.com</a> and then use the Git-Bash command line client to manage their Git repositories. </p>



<p>At the time of this writing, I was using the <a href="https://app.vagrantup.com/StefanScherer/boxes/windows_10">StefanScherer/windows_10</a> VM image for VirtualBox from Vagrant Cloud, hence the vagrant user in the example paths. </p>



<p>Linux users can install Git from their distro; using the Git-Bash console in Windows has the same look and feel as Linux users using Git from Bash.</p>



<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">$ <span class="kw2">mkdir</span> <span class="re5">-p</span> ~<span class="sy0">/</span>repos<span class="sy0">/</span>my-project
$ <span class="kw3">cd</span> ~<span class="sy0">/</span>repos<span class="sy0">/</span>my-project
$ <span class="kw2">git init</span> <span class="re5">--bare</span></pre></div></div></div></div></div></div></div>





<p>For Windows 10 users, this created a directory in your home folder for the vagrant account <em>C:\Users\vagrant\repos\my-project</em>. Next, figure out where you want to checkout your code to. </p>



<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw2">mkdir</span> ~<span class="sy0">/</span>projects
<span class="kw3">cd</span> ~<span class="sy0">/</span>projects
<span class="kw2">git clone</span> file:<span class="sy0">///</span>c<span class="sy0">/</span>Users<span class="sy0">/</span>vagrant<span class="sy0">/</span>repos<span class="sy0">/</span>my-project</pre></div></div></div></div></div></div></div>





<p>This gave us a checkout directory in <em>C:\Users\vagrant\projects\my-project</em>. You may get the &#8220;warning: You appear to have cloned an empty repository.&#8221; message, nothing wrong here as this is exactly what you just did.</p>



<p>In the directory where you cloned the empty repo, you add files from an existing project or create new ones, whatever- this is your development directory. Then when  your are ready for your initial push:</p>



<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">$ <span class="kw2">git add</span> .
$ <span class="kw2">git commit</span> <span class="re5">-m</span> <span class="st_h">'initial revision'</span>
$ <span class="kw2">git push</span></pre></div></div></div></div></div></div></div>





<p>You have just done your first push to your upstream file based repo in <em>C:\Users\vagrant\repos\my-project</em>. You work with it just like one cloned from a backend like GitHub.</p>



<h2>Pushing To Remote Backend</h2>



<p>When your backend is set up and you are ready to push to a remote repository, just create a new repository on your backend. Using the remote URL, push the bare file based repo as shown in the example below:</p>



<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">$ <span class="kw3">cd</span> ~<span class="sy0">/</span>repos<span class="sy0">/</span>my-project
$ <span class="kw2">git push</span> <span class="re5">--mirror</span> <span class="kw2">git</span><span class="sy0">@</span>mybackend.com<span class="sy0">/</span>someusername<span class="sy0">/</span>my-project.git</pre></div></div></div></div></div></div></div>





<p>The URI following &#8211;mirror will different, depending on where and what your backend is.</p>
]]></content:encoded>
							<wfw:commentRss>https://level533.com/2019/02/git-file-based-repos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Python Install On Windows &#8211; My Opinionated Approach</title>
		<link>https://level533.com/2018/11/python-install-on-windows-my-opinionated-approach/</link>
				<comments>https://level533.com/2018/11/python-install-on-windows-my-opinionated-approach/#respond</comments>
				<pubDate>Sun, 11 Nov 2018 06:27:51 +0000</pubDate>
		<dc:creator><![CDATA[Aris Green]]></dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.level533.com/?p=758</guid>
				<description><![CDATA[This is an opinionated approach to installing Python obtained from Python.org on Windows. Essentially, install per-user and keep Python out of the system or PATH environment variable. I&#8217;ll show you how to create some simple shortcuts to create Python console &#8230; <a href="https://level533.com/2018/11/python-install-on-windows-my-opinionated-approach/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
								<content:encoded><![CDATA[<p>This is an opinionated approach to installing Python obtained from <a href="https://www.python.org/">Python.org</a> on Windows. Essentially, install per-user and keep Python out of the system or PATH environment variable. I&#8217;ll show you how to create some simple shortcuts to create Python console windows with your installed Python so you can easily used Python from the command line.</p>
<p>If you install Python on a Windows server used for something like builds or Flask websites and add Python to the PATH, you will quickly get stuck on a stale, aging, old Python version that can&#8217;t be updated because you (and everyone else) will be to busy and scared to worry about breaking existing apps on the machine.</p>
<h2>Download and Run Setup</h2>
<p>From the Python.org official Python site, then select Windows to view all download for Windows. Find the version you want, making sure you select a 64 bit version if that is what you want for a 64 bit machine.</p>
<p>Download the executable or web based installer for the version and bitness you want. For this example, the 64 bit 3.7.1 windows executable installer was used.</p>
<p>Running the install should show the following dialog:</p>
<p><div id="attachment_761" style="width: 676px" class="wp-caption alignnone"><a href="http://www.level533.com/wp-content/uploads/2018/11/PythonInst0.png"><img aria-describedby="caption-attachment-761" class="wp-image-761 size-full" src="http://www.level533.com/wp-content/uploads/2018/11/PythonInst0.png" alt="" width="666" height="410" srcset="https://level533.com/wp-content/uploads/2018/11/PythonInst0.png 666w, https://level533.com/wp-content/uploads/2018/11/PythonInst0-300x185.png 300w" sizes="(max-width: 666px) 100vw, 666px" /></a><p id="caption-attachment-761" class="wp-caption-text">Initial Setup Dialog</p></div></p>
<p>Make sure that <em>Install launcher for all users (recommended)</em> and <em>Add Python 3.7 to PATH</em> are both <strong>unchecked</strong>.</p>
<p>Click <em>Customize Installation</em> to get the next dialog shown below:</p>
<p><div id="attachment_760" style="width: 676px" class="wp-caption alignnone"><a href="http://www.level533.com/wp-content/uploads/2018/11/PythonInst1.png"><img aria-describedby="caption-attachment-760" class="wp-image-760 size-full" src="http://www.level533.com/wp-content/uploads/2018/11/PythonInst1.png" alt="" width="666" height="410" srcset="https://level533.com/wp-content/uploads/2018/11/PythonInst1.png 666w, https://level533.com/wp-content/uploads/2018/11/PythonInst1-300x185.png 300w" sizes="(max-width: 666px) 100vw, 666px" /></a><p id="caption-attachment-760" class="wp-caption-text">Optional Features</p></div></p>
<p>Make sure <em>py launcher</em> and <em>for all users (requires elevation)</em> are both <strong>unchecked</strong>.</p>
<p>Click <em>Next</em> to get the <em>Advanced Options</em> dialog.</p>
<p><a href="http://www.level533.com/wp-content/uploads/2018/11/PythonInst2.png"><img class="alignnone wp-image-759 size-full" src="http://www.level533.com/wp-content/uploads/2018/11/PythonInst2.png" alt="" width="666" height="410" srcset="https://level533.com/wp-content/uploads/2018/11/PythonInst2.png 666w, https://level533.com/wp-content/uploads/2018/11/PythonInst2-300x185.png 300w" sizes="(max-width: 666px) 100vw, 666px" /></a></p>
<p>Make sure that <em>Install for all users</em> and <em>Customize install location</em> are clear, and additionally, <em>Associate files with Python (requires the py launcher)</em> is unchecked and disabled.</p>
<p>Click <em>Install</em> to run the install.</p>
<h2>Create Command Shortcut</h2>
<p>I created a batch file, py37_env.cmd with the following contents.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="batch"><pre class="de1">@echo off
TITLE Python.org 3.7
&nbsp;
REM add Python executable to PATH
set python_base=%LOCALAPPDATA%\Programs\Python\Python37
&nbsp;
REM add Python executable and tools like pip.exe to PATH
set PATH=%PATH%;%python_base%;%python_base%\Scripts
&nbsp;
REM switch to Unicode code page
chcp 65001</pre></div></div></div></div></div></div></div>


<p>I then create a shortcut to the batch file with the following for the shortcut properties:</p>
<p>Assuming the batch file is in %USERPROFILE%\Desktop\Toolbox I create a short cut with the following for <em>Target:</em></p>
<p><code>%comspec% /K "%USERPROFILE%\Desktop\Toolbox\py37_env.cmd"</code></p>
<p>And for <em>Start In:</em> someting like</p>
<p><code>%USERPROFILE%</code></p>
]]></content:encoded>
							<wfw:commentRss>https://level533.com/2018/11/python-install-on-windows-my-opinionated-approach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Multiple Oracle Javas On Windows &#8211; No Installs</title>
		<link>https://level533.com/2016/08/multiple-oracle-javas-on-windows-no-installs/</link>
				<comments>https://level533.com/2016/08/multiple-oracle-javas-on-windows-no-installs/#respond</comments>
				<pubDate>Tue, 09 Aug 2016 17:11:59 +0000</pubDate>
		<dc:creator><![CDATA[Aris Green]]></dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.level533.com/?p=749</guid>
				<description><![CDATA[Whether you want a portable JDK or you just don&#8217;t want to further muck up your Windows %PATH%, you can get a older or newer Java on your Windows machine without affecting other versions. I found a link explaining how &#8230; <a href="https://level533.com/2016/08/multiple-oracle-javas-on-windows-no-installs/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
								<content:encoded><![CDATA[<p>Whether you want a portable JDK or you just don&#8217;t want to further muck up your Windows %PATH%, you can get a older or newer Java on your Windows machine without affecting other versions.</p>
<p>I found a link explaining how to do it here: <a href="https://www.whitebyte.info/programming/java/how-to-install-a-portable-jdk-in-windows-without-admin-rights" target="_blank">https://www.whitebyte.info/programming/java/how-to-install-a-portable-jdk-in-windows-without-admin-rights</a>, but in case it &#8216;goes away&#8217;, here are the steps:</p>
<p>So far this works for Java 1.7, should work with Java 1.8. </p>
<ol>
<li>Make sure you have <a href="http://www.7-zip.org/" target="_blank">7-zip</a> on your Windows. Download the installer from Oracle</li>
<li>Open the executable installer with 7-zip and extract the single <code>tools.zip</code> file inside</li>
<li>Extract the files from the <code>tools.zip</code> to where you want your JDK.</li>
<li>From a Windows command prompt in the folder where you extract the <code>tools.zip</code> files, run the following:
<p><code>for /R %f in (.\*.pack) do @"%cd%\bin\unpack200" -r -v -l "" "%f" "%~pf%~nf.jar"</code></p>
</ol>
]]></content:encoded>
							<wfw:commentRss>https://level533.com/2016/08/multiple-oracle-javas-on-windows-no-installs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>WiFi From Linux Rescue CD</title>
		<link>https://level533.com/2016/06/wifi-from-linux-rescue-cd/</link>
				<comments>https://level533.com/2016/06/wifi-from-linux-rescue-cd/#respond</comments>
				<pubDate>Thu, 30 Jun 2016 06:14:39 +0000</pubDate>
		<dc:creator><![CDATA[Aris Green]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.level533.com/?p=743</guid>
				<description><![CDATA[Using Finnix 111 rescue CD: Generate wpa_supplicant.conf configuration file: # wpa_passphrase ssid passphrase > /etc/wpa_supplicant.conf If you have any funky characters like &#8216;@&#8217; in your passphrase, escape with a &#8216;\&#8217;. Find driver # wpa_supplicant &#8211;help Using the correct driver: # &#8230; <a href="https://level533.com/2016/06/wifi-from-linux-rescue-cd/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
								<content:encoded><![CDATA[<p>Using Finnix 111 rescue CD:</p>
<p>Generate wpa_supplicant.conf configuration file:</p>
<p># wpa_passphrase ssid passphrase > /etc/wpa_supplicant.conf</p>
<p>If you have any funky characters like &#8216;@&#8217; in your passphrase, escape with a &#8216;\&#8217;.</p>
<p>Find driver<br />
# wpa_supplicant &#8211;help</p>
<p>Using the correct driver:<br />
# wpa_supplicant  -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf -B</p>
<p>My driver listed was &#8216;nl80211&#8217;. Also, do not add a space between the options and their arguments.</p>
<p>Use ifconfig to find the network interface.</p>
<p># dhclient wlan0</p>
]]></content:encoded>
							<wfw:commentRss>https://level533.com/2016/06/wifi-from-linux-rescue-cd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Make Bamboo Shell Task Run Using Bash</title>
		<link>https://level533.com/2016/03/make-bamboo-shell-task-run-using-bash/</link>
				<comments>https://level533.com/2016/03/make-bamboo-shell-task-run-using-bash/#respond</comments>
				<pubDate>Thu, 03 Mar 2016 05:29:57 +0000</pubDate>
		<dc:creator><![CDATA[Aris Green]]></dc:creator>
				<category><![CDATA[Bamboo]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://www.level533.com/?p=734</guid>
				<description><![CDATA[Bamboo will call shell tasks on *nix agents using sh as opposed to Bash. For Debian agents, this means dash not bash. So, how do we redirect to bash? I found this snippet: [code language=&#8221;bash&#8221;] if [ &#8220;$(ps -p &#8220;$$&#8221; -o comm=)&#8221; != &#8230; <a href="https://level533.com/2016/03/make-bamboo-shell-task-run-using-bash/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
								<content:encoded><![CDATA[<p>Bamboo will call shell tasks on *nix agents using sh as opposed to Bash. For Debian agents, this means <em>dash</em> not <em>bash</em>. So, how do we redirect to <em>bash</em>? I found this snippet:</p>
<p>[code language=&#8221;bash&#8221;]<br />
if [ &#8220;$(ps -p &#8220;$$&#8221; -o comm=)&#8221; != &#8220;bash&#8221; ]; then<br />
# Taken from http://unix-linux.questionfor.info/q_unix-linux-programming_85038.html<br />
echo &#8220;RUNNING THIS PUPPY THE RIGHT WAT&#8221;<br />
bash &#8220;$0&#8221; &#8220;$@&#8221;<br />
exit &#8220;$?&#8221;<br />
fi<br />
[/code]</p>
<p>Alas, though, looks like the link I copied and pasted from the post does not work. Here&#8217;s the <a href="https://answers.atlassian.com/questions/28625/making-a-bamboo-script-execute-using-binbash">post</a> I snagged this from.</p>
]]></content:encoded>
							<wfw:commentRss>https://level533.com/2016/03/make-bamboo-shell-task-run-using-bash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Hack Classpath In Gradle</title>
		<link>https://level533.com/2016/01/hack-classpath-in-gradle/</link>
				<comments>https://level533.com/2016/01/hack-classpath-in-gradle/#respond</comments>
				<pubDate>Wed, 06 Jan 2016 21:47:39 +0000</pubDate>
		<dc:creator><![CDATA[Aris Green]]></dc:creator>
				<category><![CDATA[Gradle]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://www.level533.com/?p=725</guid>
				<description><![CDATA[I recently tried this to fix the Classpath in Gradle for compiling and testing. Works for compiling, bombs for the testing though. The Gradle plugin integration using jna-3.2.7 blows up during unit testing when the older API is not loaded. &#8230; <a href="https://level533.com/2016/01/hack-classpath-in-gradle/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
								<content:encoded><![CDATA[<p>I recently tried this to fix the Classpath in Gradle for compiling and testing. Works for compiling, bombs for the testing though. The Gradle plugin integration using jna-3.2.7 blows up during unit testing when the older API is not loaded. What a mess. At least this snippet should help for other scenarios.</p>
<p>[code language=&#8221;groovy&#8221;]<br />
def fixTheCp(fc) {<br />
    def jnaGoodJars = fc.filter {<br />
        it.name == &#8220;jna-4.2.1.jar&#8221;<br />
    }<br />
    return jnaGoodJars.plus(fc.minus(jnaGoodJars))<br />
}</p>
<p>task(&#8220;fixCompileCp&#8221;) << {
    sourceSets.main.compileClasspath = fixTheCp(sourceSets.main.compileClasspath)
    sourceSets.main.runtimeClasspath = fixTheCp(sourceSets.main.runtimeClasspath)
}
task("fixTestCp") << {
    sourceSets.test.compileClasspath = fixTheCp(sourceSets.test.compileClasspath)
    sourceSets.test.runtimeClasspath = fixTheCp(sourceSets.test.runtimeClasspath)
}

compileJava.dependsOn fixCompileCp
testClasses.dependsOn fixTestCp
[/code]
</p>
]]></content:encoded>
							<wfw:commentRss>https://level533.com/2016/01/hack-classpath-in-gradle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Hex Encode/Decode String In C#</title>
		<link>https://level533.com/2015/03/hex-encodedecode-string-in-c/</link>
				<comments>https://level533.com/2015/03/hex-encodedecode-string-in-c/#respond</comments>
				<pubDate>Thu, 12 Mar 2015 00:44:12 +0000</pubDate>
		<dc:creator><![CDATA[Aris Green]]></dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[C++]]></category>

		<guid isPermaLink="false">http://www.level533.com/?p=712</guid>
				<description><![CDATA[The same code is posted all over the news groups and Internet, but here it is, easy as a snippet for myself and for you to use. I don&#8217;t even get credit for this as what I have pretty much &#8230; <a href="https://level533.com/2015/03/hex-encodedecode-string-in-c/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
								<content:encoded><![CDATA[<p>The same code is posted all over the news groups and Internet, but here it is, easy as a snippet for myself and for you to use. </p>
<p>I don&#8217;t even get credit for this as what I have pretty much matches up to what other people have already posted. </p>
<p>This is much easier in Python.</p>
<p><strong>Encode a byte array</strong><br />
[code language=&#8221;csharp&#8221;]<br />
public static string HexEncode(byte[] data)<br />
{<br />
    return BitConverter.ToString(data).Replace(&#8220;-&#8220;, string.Empty);<br />
}<br />
[/code]</p>
<p><strong>Decode a hex necoded string</strong><br />
[code language=&#8221;csharp&#8221;]<br />
public static byte[] HexDecode(string hexEncoded)<br />
{<br />
    int numChars = hexEncoded.Length;<br />
    byte[] retVal = new byte[numChars / 2];<br />
    for (int i = 0; i < numChars; i += 2)
    {
        retVal[i / 2] = Convert.ToByte(hexEncoded.Substring(i, 2), 16);
    }
    return retVal;
}
[/code]

</p>
]]></content:encoded>
							<wfw:commentRss>https://level533.com/2015/03/hex-encodedecode-string-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>How To Clean SVN Checkout Directory</title>
		<link>https://level533.com/2014/07/how-to-clean-svn-checkout-directory/</link>
				<comments>https://level533.com/2014/07/how-to-clean-svn-checkout-directory/#respond</comments>
				<pubDate>Thu, 31 Jul 2014 21:49:08 +0000</pubDate>
		<dc:creator><![CDATA[Aris Green]]></dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://www.level533.com/?p=708</guid>
				<description><![CDATA[I just love git clean -xfd but you just don&#8217;t get that with Subversion. Instead from your Bash shell (or Cygwin) prompt you can do: svn status --no-ignore &#124; egrep '^[?I]' &#124; cut -c9- &#124; sudo xargs -d \\n rm &#8230; <a href="https://level533.com/2014/07/how-to-clean-svn-checkout-directory/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
								<content:encoded><![CDATA[<p>I just love </p>
<blockquote><p>
<code>git clean -xfd</code>
</p></blockquote>
<p>but you just don&#8217;t get that with Subversion. Instead from your Bash shell (or Cygwin) prompt you can do:</p>
<blockquote><p>
<code>svn status --no-ignore | egrep '^[?I]' | cut -c9- | sudo xargs -d \\n rm -r</code>
</p></blockquote>
<p>I got that last one from <a href="http://stackoverflow.com/questions/239340/automatically-remove-subversion-unversioned-files">http://stackoverflow.com/questions/239340/automatically-remove-subversion-unversioned-files</a></p>
<p>Oh, and on that same post, for PowerShell users I found</p>
<blockquote><p>
<code>function svnclean{<br />
    svn status | foreach { if($_.StartsWith("?")) {Remove-Item $_.substring(8) -Verbose}<br />
}</code>
</p></blockquote>
<p>I could resist saving these two snippets, I know I will need them.</p>
]]></content:encoded>
							<wfw:commentRss>https://level533.com/2014/07/how-to-clean-svn-checkout-directory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
	</channel>
</rss>
