summaryrefslogtreecommitdiffstats
path: root/thoughts
diff options
context:
space:
mode:
Diffstat (limited to 'thoughts')
-rw-r--r--thoughts/.description1
-rw-r--r--thoughts/syntax/.description1
-rw-r--r--thoughts/syntax/random-python-idiosyncrasies.html85
3 files changed, 87 insertions, 0 deletions
diff --git a/thoughts/.description b/thoughts/.description
new file mode 100644
index 0000000..16f9528
--- /dev/null
+++ b/thoughts/.description
@@ -0,0 +1 @@
+Things I am less qualified to write about, but persist nonetheless.
diff --git a/thoughts/syntax/.description b/thoughts/syntax/.description
new file mode 100644
index 0000000..425358c
--- /dev/null
+++ b/thoughts/syntax/.description
@@ -0,0 +1 @@
+Language on languages
diff --git a/thoughts/syntax/random-python-idiosyncrasies.html b/thoughts/syntax/random-python-idiosyncrasies.html
new file mode 100644
index 0000000..80e4563
--- /dev/null
+++ b/thoughts/syntax/random-python-idiosyncrasies.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
+<head>
+ <meta charset="utf-8" />
+ <meta name="generator" content="pandoc" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
+ <title>random-python-idiosyncrasies</title>
+ <style>
+ code{white-space: pre-wrap;}
+ span.smallcaps{font-variant: small-caps;}
+ span.underline{text-decoration: underline;}
+ div.column{display: inline-block; vertical-align: top; width: 50%;}
+ div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
+ ul.task-list{list-style: none;}
+ </style>
+</head>
+<body>
+<nav id="TOC" role="doc-toc">
+<h2 id="toc-title">Contents</h2>
+<ul>
+<li><a href="#coding-style-guide">Coding Style Guide</a>
+<ul>
+<li><a href="#strings-are-double-quoted.-keys-and-chars-are-single-quoted.">1) <em>Strings</em> are <em>double-quoted</em>. <em>Keys</em> and <em>chars</em> are <em>single-quoted</em>.</a></li>
+<li><a href="#long-strings-belong-in-parentheses">2) Long strings belong in parentheses</a></li>
+<li><a href="#tabs-are-four-spaces-and-spaces-are-always-prefered-to-tabs">3) Tabs are four spaces and spaces are <em>ALWAYS</em> prefered to tabs</a></li>
+<li><a href="#always-add-spaces-between-arithmetic-but-never-for-brackets">4) Always add spaces between arithmetic, but never for brackets</a></li>
+<li><a href="#everything-should-be-snake_case">5) EVERYTHING should be snake_case</a></li>
+</ul></li>
+</ul>
+</nav>
+<h1 id="coding-style-guide">Coding Style Guide</h1>
+<p>The purpose of this document is twofold: 1) To ensure that anyone who might like to make my code better understands why I write python the way I do 2) to ensure <em>I</em> adhere to my own style because I'm terribly inconsistent</p>
+<p>Being terribly inconsistent, the guidelines are not set in stone and if you have a good argument for doing things a particular, I don't really care.</p>
+<p><em>BUT</em> first and foremost, <em>code must comply with PEP8 first</em>. This is easy to automate. I like coala since it's friendly but there' plenty of advanced linters out there.</p>
+<p>That aside, I have the following idiosyncracies:</p>
+<h2 id="strings-are-double-quoted.-keys-and-chars-are-single-quoted.">1) <em>Strings</em> are <em>double-quoted</em>. <em>Keys</em> and <em>chars</em> are <em>single-quoted</em>.</h2>
+<p>This is really just because I like how C does it. And Cpython's C-based so why not?</p>
+<p>Like so:</p>
+<pre class="code"><code>string = &quot;This is a phrase&quot;
+word = &quot;word&quot;
+cur_char = &#39;a&#39;
+newline = &#39;\n&#39; # note, two characters, but it&#39;s still ONE char out
+# keys are single-quoted to avoid confusion
+dictionary = { &#39;key&#39; &quot;1245dqw3w431&quot;, &#39;return&#39;: newline }</code></pre>
+<p>The only exception is for strings with quotes in them (anything to avoid escapes, really)</p>
+<pre class="code"><code>quoted_string = (
+ &#39;&quot;You miss 100% of the shots you don&#39;t take - Wayne Gretsky&quot;&#39;
+ &#39; - Michael Scott&#39;
+)</code></pre>
+<p>That brings me to my next point.</p>
+<h2 id="long-strings-belong-in-parentheses">2) Long strings belong in parentheses</h2>
+<p>As in:</p>
+<pre class="code"><code>longboi = (
+ &quot;This is a really long string usefull when making help menus. Be\n&quot;
+ &quot;sure to leave s space at the end of each line, or add a new line\n&quot;
+ &quot;when needed.\n\n&quot;
+
+ &quot;Try your best to keep formatting accurate like this.&quot;
+)</code></pre>
+<h2 id="tabs-are-four-spaces-and-spaces-are-always-prefered-to-tabs">3) Tabs are four spaces and spaces are <em>ALWAYS</em> prefered to tabs</h2>
+<p>Again, see PEP8.</p>
+<h2 id="always-add-spaces-between-arithmetic-but-never-for-brackets">4) Always add spaces between arithmetic, but never for brackets</h2>
+<p>It's a pain to read:</p>
+<pre class="code"><code>1/(2*sqrt(pi))*exp(x**2)</code></pre>
+<p>Do this</p>
+<pre class="code"><code>1 / (2 * sqrt(pi)) * exp(x ** 2)</code></pre>
+<p>The same goes for logic operators</p>
+<pre class="code"><code>true &amp; false ^ true</code></pre>
+<h2 id="everything-should-be-snake_case">5) EVERYTHING should be snake_case</h2>
+<p>This is python. Unless there's a compatibility thing (like a library's code was written that way, or it matches an API variable), snake_case is preferred.</p>
+<pre class="code"><code>user_input = int(input()) # variable
+MAX_INPUT = 1000 # constant
+def judge_input(_input, _max): # function
+ if _max &gt; _input:
+ print(&quot;Too big!&quot;)
+
+judge_input(user_input, MAX_INPUT
+class Input_Judger: # a class
+ # etc etc</code></pre>
+<p>Example exception:</p>
+<pre class="code"><code># this doesn&#39;t actually work, but you get the idea
+r = requests.get(&quot;www.debian.org&quot;)
+pageSize = r.json()[&#39;pageSize&#39;] # camel case ok</code></pre>
+</body>
+</html>