Skip to content

Commit e5db70c

Browse files
authored
Merge pull request #3 from thatrobotdev/projects
Add projects list, start OneShot Refuge Factory Puzzle Solver project
2 parents 1b2ec76 + 2010c54 commit e5db70c

File tree

5 files changed

+78
-1
lines changed

5 files changed

+78
-1
lines changed

_includes/projectslist.html

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{%- css %}.projectlist { counter-reset: start-from {{ (projectslistCounter or
2+
projectslist.length) + 1 }} }{% endcss %}
3+
<ol reversed class="projectlist">
4+
{% for project in projectslist | reverse %}
5+
<li
6+
class="projectlist-item{% if project.url == url %} projectlist-item-active{% endif %}"
7+
>
8+
<a href="{{ project.url }}" class="projectlist-link"
9+
>{% if project.data.title %}{{ project.data.title }}{% else %}<code
10+
>{{ project.url }}</code
11+
>{% endif %}</a
12+
>
13+
<time
14+
class="projectlist-date"
15+
datetime="{{ project.date | htmlDateString }}"
16+
>{{ project.date | readableDate("LLLL yyyy") }}</time
17+
>
18+
</li>
19+
{% endfor %}
20+
</ol>

content/projects.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
layout: layouts/home.html
3+
eleventyNavigation:
4+
key: Projects
5+
order: 3
6+
---
7+
<h1>Projects</h1>
8+
9+
{% set postslist = collections.projects %}
10+
{% include "postslist.html" %}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
title: OneShot Refuge Factory Puzzle Solver
3+
tags: "Information Theory"
4+
---
5+
6+
## Status
7+
8+
Not started
9+
10+
## End Goal
11+
12+
I want to learn how to write an efficient algorithm for how to solve the [OneShot Refuge Factory Light Puzzle](https://www.youtube.com/watch?v=VaPQGiTq8Bc), using the fundamentals of [information theory](https://en.wikipedia.org/wiki/Information_theory).
13+
14+
I will be working on this project in my free time, with other concurrent projects so I don't know when I will be done with the research phase of the project. It's probable that while learning the fundamentals of information theory I will spin off other side projects as tangents to better understand the material. I may need to expand or pivot my research scope as I learn more about the subject area and become aware of the knowledge pre-requisites to approach the problem efficiently.
15+
16+
## Preliminary Research
17+
18+
In preliminary research on how to approach the problem, I found this [awesome writeup](https://gist.github.com/rkevin-arch/77fc4949ae5ccd407c372251ddcfb279?permalink_comment_id=5085588) by [rkevin-arch](https://gist.github.com/rkevin-arch) which goes through their approach to the problem and possible algorithms. They approach the light puzzle with intuitive human logic, a [minimax solver](https://en.wikipedia.org/wiki/Minimax), and a [max entropy solver](https://en.wikipedia.org/wiki/Entropy_(information_theory)) based on a [3blue1brown video on information theory](https://www.youtube.com/watch?v=v68zYyaEmEA). Since I an unfamiliar with information theory and these types of problems, it's time to learn!
19+
20+
While I have looked to these previous resources as inspiration to guide my research, I do not want to heavily rely on them as the basis for my solution. They have provided a jumping point for where to start, and I will only compare my solution with other solutions once I have approached the problem from my perspective.
21+
22+
## Roadmap
23+
24+
### Research
25+
26+
- [ ] Read [R. McEliece, *The Theory of Information and Coding*, 2nd ed. Cambridge: Cambridge University Press, 2002.](https://www.cambridge.org/core/books/theory-of-information-and-coding/F2A9E1FF14E7EF61148F63CCE9315BF5#fndtn-contents)
27+
- [ ] **Optional?** Read [R. B. Ash, *Information theory*. New York: Dover Publications, 1990.](https://store.doverpublications.com/products/9780486665214)
28+
- [ ] ...
29+
30+
### Implementation
31+
32+
- [ ] Implement algorithm to solve light puzzle
33+
- [ ] Create writeup of algorithm
34+
- [ ] Create website inspired by [https://osmmsolver.rkevin.dev/](https://osmmsolver.rkevin.dev/)
35+
36+
## Progress Log
37+
38+
- **12/31/24:** Defined [end goal](#end-goal), start of [premiminary research](#preliminary-research), and [starting roadmap](#roadmap) for the problem. Now that I know that this is an [information theory](https://en.wikipedia.org/wiki/Information_theory) problem because of a [previous writeup](https://gist.github.com/rkevin-arch/77fc4949ae5ccd407c372251ddcfb279?permalink_comment_id=5085588) by [rkevin-arch](https://gist.github.com/rkevin-arch), I defined my starting research texts
39+
by looking at what is used in [Georgia Tech's MATH
40+
4280: Introduction to Information Theory class](https://math.gatech.edu/courses/math/4280).

content/projects/projects.11tydata.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export default {
2+
tags: [
3+
"projects"
4+
],
5+
"layout": "layouts/post.html",
6+
};

eleventy.config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,10 @@ export default (function (eleventyConfig) {
6363
}
6464
return Array.from(tagSet);
6565
});
66+
// Filter out the tags we don't want to include in the tag list
6667
eleventyConfig.addFilter("filterTagList", function filterTagList(tags) {
6768
return (tags || []).filter(
68-
(tag) => ["all", "nav", "post", "posts"].indexOf(tag) === -1
69+
(tag) => ["all", "nav", "post", "posts", "projects"].indexOf(tag) === -1
6970
);
7071
});
7172
// Customize Markdown library settings:

0 commit comments

Comments
 (0)