]> git.mdlowis.com Git - projs/awiki.git/commitdiff
moved pages around and added some new notes pages
authorMichael D. Lowis <mike@mdlowis.com>
Sun, 31 May 2020 02:48:57 +0000 (22:48 -0400)
committerMichael D. Lowis <mike@mdlowis.com>
Sun, 31 May 2020 02:48:57 +0000 (22:48 -0400)
21 files changed:
config/editor.html.erb
config/page.html.erb
pages/index.md
pages/notes.md [deleted file]
pages/notes/article_ideas.md
pages/notes/c_style.md [moved from pages/c_style.md with 100% similarity]
pages/notes/erlang.md [new file with mode: 0644]
pages/notes/forth.md [new file with mode: 0644]
pages/notes/index.md [new file with mode: 0644]
pages/notes/misc/cube_alogrithms.md [moved from pages/misc/cube_alogrithms.md with 100% similarity]
pages/notes/misc/fpga_dev.md [moved from pages/misc/fpga_dev.md with 100% similarity]
pages/notes/misc/open_source.md [moved from pages/misc/open_source.md with 72% similarity]
pages/notes/oberon07.md [moved from pages/oberon07.md with 100% similarity]
pages/notes/ocaml.md [new file with mode: 0644]
pages/notes/proglangs.md [new file with mode: 0644]
pages/notes/random.md [new file with mode: 0644]
pages/notes/recipes.md [moved from pages/recipes.md with 100% similarity]
pages/notes/scheme.md [new file with mode: 0644]
pages/notes/sclpl.md [moved from pages/sclpl.md with 71% similarity]
pages/notes/zam.md [moved from pages/zam.md with 100% similarity]
pages/projs/index.md [moved from pages/projects.md with 100% similarity]

index d4b4e5427f6f02eee07b05e7c5735640cfcc3f07..30a3f1e5fcda17d6b0dd748d310da8f40bd94d55 100644 (file)
@@ -18,8 +18,8 @@ let submit = ()=>{
 };
 (() => {
     const keys = {
-        "Enter": () => !document.execCommand("insertHTML", false, "\n"),
-        "Tab":   () => !document.execCommand("insertHTML", false, "    "),
+        "Enter": () => !document.execCommand("insertText", false, "\r\n"),
+        "Tab":   () => !document.execCommand("insertText", false, "    "),
     };
     editor.onkeydown = (ev) => (!!keys[ev.key] ? (keys[ev.key])(ev) : true);
     editor.focus();
index 04904d452739bca38bcfdc9d6b1be0368bf05b2f..bcdb9ae7356bfa0f254cdf61a5569b80dae0a341 100644 (file)
         <%= @site_title %>
       </a>
       <a class="navLink shrink" href='/index.html'>home</a>
-      <a class="navLink shrink" href='/projects.html'>projects</a>
-      <a class="navLink shrink" href='/notes.html'>notes</a>
+      <a class="navLink shrink" href='/projs/index.html'>projects</a>
+      <a class="navLink shrink" href='/notes/index.html'>notes</a>
       <a class="navLink shrink" href='/sitemap.html'>sitemap</a>
       <!--EDIT-->
     </div>
index 1b17b3ee84c9f172ac90905a89dc4b3aba938a8f..038802fbc8737c0b56ff1854132f3c2bbd9212ac 100644 (file)
@@ -1,8 +1,24 @@
 # About Me
 I am an Embedded Software Engineer, currently employed at Gentex Corporation in Zeeland, MI. I have a keen interest in the concepts of [Software Craftsmanship](https://en.wikipedia.org/wiki/Software_craftsmanship), software minimalism, and clean software design. This site is meant to showcase some of my own thoughts and projects regarding those concepts.
 
-## Work Experience
+## Contact Info
+**Email:** mike@mdlowis.com
+
+## Current Projects
+Some of the projects I'm actively working on:
+
+* [tide](https://git.mdlowis.com/?p=projs/tide.git;a=summary) - 
+    A minimal graphical text editor inspired by [Acme](http://doc.cat-v.org/plan_9/4th_edition/papers/acme/). This is currently my primary text editor.
+* [anvil](https://git.mdlowis.com/?p=proto/anvil.git;a=summary) - 
+    A minimal tiling window manager modeled after the window management in [Acme](http://doc.cat-v.org/plan_9/4th_edition/papers/acme/).
+* [awiki](https://git.mdlowis.com/?p=projs/awiki.git;a=summary) - 
+    A minimal personal wiki engine for authoring static websites. This is the tool used to author this site.
+* [alib](https://git.mdlowis.com/?p=projs/abt.git;a=summary) - 
+    A collection of [header-only](https://en.wikipedia.org/wiki/Header-only) libraries for C. Designed to be cloned and owned into all of my miscellaneous projects to allow reuse without adding external dependencies.
+* [atf](https://git.mdlowis.com/?p=projs/atf.git;a=summary) - 
+    A minimal unit testing framework for C distributed as a header-only library. Used to test my other side projects.
 
+## Work Experience
 ### [Gentex Corporation](https://www.gentex.com), Zeeland MI (Sep 2010 - Present)
 * **Lead Software Engineer (Sep 2019 - Present)**
 * **Software Engineer (Sep 2010 - Sep 2019)**
@@ -12,6 +28,5 @@ I am an Embedded Software Engineer, currently employed at Gentex Corporation in
 * **Intern**
 
 ## Education
-
 ### [Grand Valley State University](https://www.gvsu.edu/) (Graduated 2009)
 * **Bachelor of Science, Computer Science**
diff --git a/pages/notes.md b/pages/notes.md
deleted file mode 100644 (file)
index 69212e5..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-# Notes
-
-## Writing
-* [Article Ideas](notes/article_ideas.html)
-
-## General Programming
-* [C Programming Rules](c_style.html)
-
-## Programming Language Design
-* [SCLPL Design Notes](sclpl.html)
-* [ZINC Abstract Machine](zam.html)
-* [Oberon 07](oberon07.html)
-
-## Miscellaneous
-* [Cube Algorithms](misc/cube_alogrithms.html)
-* [Recipes](recipes.html)
-* [FPGA Development](misc/fpga_dev.html)
-* [Open Source Programs](misc/open_source.html)
\ No newline at end of file
index 37bbbd89488b1a932cd997fd1178519b304c798c..eef2d8505d4839698a9353e0d499b653b116d57a 100644 (file)
@@ -4,4 +4,7 @@
   * reference counting
   * intrusive data structures
   * analysis of various open source tools
-
+* Pratt parser implementation
+* Earley parser implementation
+* Break down of [tide](https://git.mdlowis.com/?p=projs/tide.git;a=summary) design
+* Deferred reference counting
similarity index 100%
rename from pages/c_style.md
rename to pages/notes/c_style.md
diff --git a/pages/notes/erlang.md b/pages/notes/erlang.md
new file mode 100644 (file)
index 0000000..5b8a93d
--- /dev/null
@@ -0,0 +1,14 @@
+# Erlang
+**Type System:** Dynamically typed<br/>
+**Memory Management:** Garbage Collected (Automatic)<br/>
+
+## Features
+* Single assignment bindings (variables)
+* Immutable data structures
+* Concurrency based on the actor model
+* Isolated processes communicating via message passing
+* Pattern matching
+* Execution in a virtual machine
+
+## Reference Material
+https://www.erlang.org/docs
diff --git a/pages/notes/forth.md b/pages/notes/forth.md
new file mode 100644 (file)
index 0000000..0cb781c
--- /dev/null
@@ -0,0 +1,4 @@
+# Forth
+**Type System:** None<br/>
+**Memory Management:** Manual<br/>
+
diff --git a/pages/notes/index.md b/pages/notes/index.md
new file mode 100644 (file)
index 0000000..d6bda7d
--- /dev/null
@@ -0,0 +1,18 @@
+# Notes
+This section of the site is constructed as a wiki (using [awiki](https://git.mdlowis.com/?p=projs/awiki.git;a=summary)). As such, it is a chaotic mess of notes, musings, and useful links. Enter at your own risk...
+
+## Frequently Accessed
+* [Programming Languages](proglangs.html)
+
+## Writing
+* [Article Ideas](article_ideas.html)
+* [Random Thoughts](random.html)
+
+## Miscellaneous
+* [Cube Algorithms](misc/cube_alogrithms.html)
+* [Recipes](recipes.html)
+* [FPGA Development](misc/fpga_dev.html)
+* [Open Source Programs](misc/open_source.html)
+
+## General Programming
+* [C Programming Rules](c_style.html)
similarity index 72%
rename from pages/misc/open_source.md
rename to pages/notes/misc/open_source.md
index aa1248df8d56d21a3e07d35c574bc8a89076bfc2..cbb239ccb8386da56833dab0b6b623cb720f29c6 100644 (file)
@@ -2,3 +2,4 @@
 
 * [Pick](https://github.com/mptre/pick) - Fuzzy picker, inspiration for the fuzzy picker in tide
 * [Nushell](https://www.nushell.sh/book/en/table_of_contents.html) - interesting new command shell with piping of data and metadata
+* [ES Shell)(https://github.com/wryun/es-shell) - An extensible shell with higher order functions
similarity index 100%
rename from pages/oberon07.md
rename to pages/notes/oberon07.md
diff --git a/pages/notes/ocaml.md b/pages/notes/ocaml.md
new file mode 100644 (file)
index 0000000..1adda7f
--- /dev/null
@@ -0,0 +1,10 @@
+# OCaml
+**Type System:** Strongly statically typed with type inference (Hindley-Milner)<br/>
+**Memory Management:** Garbage Collected (Automatic)<br/>
+
+## Features
+* Strong static typing with type inference
+* Polymorphic types
+
+## References
+https://ocaml.org/docs/papers.html
diff --git a/pages/notes/proglangs.md b/pages/notes/proglangs.md
new file mode 100644 (file)
index 0000000..83b93ca
--- /dev/null
@@ -0,0 +1,14 @@
+# Programming Languages
+
+## Designs I'm Working On
+* [SCLPL Design Notes](sclpl.html)
+
+## Language For Inspiration
+* [Erlang](erlang.html)
+* [Scheme](scheme.html)
+* [OCaml](ocaml.html)
+* [Oberon 07](oberon07.html)
+* [Forth](forth.html)
+
+## Runtime Design
+* [ZINC Abstract Machine](zam.html)
diff --git a/pages/notes/random.md b/pages/notes/random.md
new file mode 100644 (file)
index 0000000..d8b2b4f
--- /dev/null
@@ -0,0 +1,3 @@
+# Random Thoughts
+https://untools.co/ - Tools for better thinking
+
similarity index 100%
rename from pages/recipes.md
rename to pages/notes/recipes.md
diff --git a/pages/notes/scheme.md b/pages/notes/scheme.md
new file mode 100644 (file)
index 0000000..bc8c799
--- /dev/null
@@ -0,0 +1,14 @@
+# Scheme
+**Type System:** Dynamically typed<br/>
+**Memory Management:** Garbage Collected (Automatic)<br/>
+
+## Features
+* S-expression based syntax
+* Hygenic macro system
+* Proper tail recursion
+* First class continuations
+* First class functions (closures)
+* Full numerical tower
+
+## References
+https://schemers.org/Documents/Standards/R5RS/HTML/
similarity index 71%
rename from pages/sclpl.md
rename to pages/notes/sclpl.md
index 1c342d06d71c09816b75b42b2024d76e3f9b740d..0118e16da45e634159c85035e215f49480c2b9bf 100644 (file)
@@ -40,6 +40,18 @@ Language Requirements:
 * CSP versus Actor model
 
 ## Language Design
+### Ideas to Explore
+* Expression-only Syntax
+  * Assignment operator is the only way to define variables and can be, but should not be, used as an expression.
+  * The entire grammar (almost) is parsed with a Pratt parser.
+* Gradually typed type system
+  * Dynamically typed in absence of annotations
+  * Annotations allow the compiler to utilize unchecked operations for higher performance
+  * Typing would be bidirectional to allow for types to be inferred from values or bindings.
+    * Would allow for unannotated expressions that are still provably safe to utilize unchecked operations
+* Deferred reference counting for garbage collection.
+  * Immutable bindings and data so no cycles to deal with.
+  * Could use non-atomic increment/decrement and use multiprocessing instead of multithreading.
 
 ### Atomic Types
 * Fixnums
similarity index 100%
rename from pages/zam.md
rename to pages/notes/zam.md
similarity index 100%
rename from pages/projects.md
rename to pages/projs/index.md