Added drafts folder including some upcoming articles

Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
This commit is contained in:
Collin J. Doering 2015-06-24 01:40:14 -04:00
parent ac168aa1af
commit 9976b7a719
5 changed files with 139 additions and 0 deletions

View File

@ -0,0 +1,13 @@
---
title: Church Encoding in JS
author: Collin J. Doering
date: Jun 19, 2015
description: Encoding various types using only variables and functions
tags: general
---
TODO
<!--more-->
TODO

View File

@ -0,0 +1,33 @@
---
title: Computer From Scratch
author: Collin J. Doering
date: Jun 19, 2015
description: Building a computer from scratch using VHDL
tags: general, programming, hardware, nand-to-tetris
---
Recently I have had the pleasure of completing the course *Nand to Tetris* on
[Coursea](http://coursera.org). Firstly, I'd like to highly recommend it to anyone! I never
thought it would be possible for me to understand computers all the way down to the hardware
level (past assembly that is); *Nand to Tetris* has shown me otherwise! It has also inspired me
to pursue learning a real world hardware description language and attempt to implement the
*Hack* system on an FPGA. In this article I will describe how the process is coming and the
what remains to be completed.
<!--more-->
After implementing the *Hack Computer System* in the hardware description language described by
the course, I went on to implement everything in [VHDL](https://en.wikipedia.org/wiki/VHDL),
with the end goal of being able to realize the design on a
[FPGA](https://en.wikipedia.org/wiki/Field-programmable_gate_array) (Field Programmable Gate
Array). I also needed a set of test benches to verify correctness of the design through
simulation. Initially I set out to find a completely open source solution. To my dismay, I
found that FPGA's are incredibly proprietary. Namely, the process of *synthesis* cannot be done
using open source tools, though there exists a few projects which are reverse engineering the
bit file format of various FPGA's in order to develop a open solution to synthesis, they are
not yet ready for use. So, synthesis needs to be done with proprietary tools.
which is
taking the hardware description (either VHDL or Verilog) and convert it to a bit file (a format
the FPGA can use).

View File

@ -0,0 +1,13 @@
---
title: DFA Simulator
author: Collin J. Doering
date: Feb 21, 2015
description: Deterministic Finite State Machines implemented using functions in haskell and racket
tags: general, programming
---
TODO
<!--more-->
TODO

67
drafts/quines.markdown Normal file
View File

@ -0,0 +1,67 @@
---
title: Fun with Quines
author: Collin J. Doering
date: Feb 21, 2015
description: Self replicating programs
tags: programming
---
Quines are cute.
>"Yields falsehood when preceded by its quotation" yields falsehood when preceded by its quotation.
See wikipedia on quines: <http://en.wikipedia.org/wiki/Quine_(computing)>
<!--more-->
``` {.haskell .code-term .numberLines}
a = "main = putStrLn $ \"a = \" ++ show a ++ \"\\n\" ++ a"
main = putStrLn $ "a = " ++ show a ++ "\n" ++ a
```
``` {.haskell .code-term .numberLines}
-- (C) Copyright Collin Doering 2013
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
-- File: Quine.hs
-- Author: Collin J. Doering <rekahsoft@gmail.com>
-- Date: Apr 14, 2013
import Data.List (intercalate)
header = [ "-- (C) Copyright Collin Doering 2013"
, "-- "
, "-- This program is free software: you can redistribute it and/or modify"
, "-- it under the terms of the GNU General Public License as published by"
, "-- the Free Software Foundation, either version 3 of the License, or"
, "-- (at your option) any later version."
, "-- "
, "-- This program is distributed in the hope that it will be useful,"
, "-- but WITHOUT ANY WARRANTY; without even the implied warranty of"
, "-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the"
, "-- GNU General Public License for more details."
, "-- "
, "-- You should have received a copy of the GNU General Public License"
, "-- along with this program. If not, see <http://www.gnu.org/licenses/>."
, ""
, "-- File: haskell-quine.hs"
, "-- Author: Collin J. Doering <rekahsoft@gmail.com>"
, "-- Date: Apr 14, 2013"
, ""
, "import Data.List (intercalate)"]
dta = "main = putStrLn $ intercalate \"\\n\" header ++ \"\\n\\nheader = \" ++ \"[ \\\"\" ++ intercalate \"\\\"\\n , \\\"\" header ++ \"\\\"]\" ++ \"\\n\\ndta = \" ++ show dta ++ \"\\n\" ++ dta"
main = putStrLn $ intercalate "\n" header ++ "\n\nheader = " ++ "[ \"" ++ intercalate "\"\n , \"" header ++ "\"]" ++ "\n\ndta = " ++ show dta ++ "\n" ++ dta
```

View File

@ -0,0 +1,13 @@
---
title: Simple Assembler
author: Collin J. Doering
date: Feb 21, 2015
description: Building a simple assembler for the Hack platform
tags: general, computers, programming, haskell, nand-to-tetris
---
TODO
<!--more-->
TODO