don't touch
This commit is contained in:
commit
35c82a253d
24 changed files with 3884 additions and 0 deletions
24
doordesk/.gitignore
vendored
Normal file
24
doordesk/.gitignore
vendored
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# Logs
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
pnpm-debug.log*
|
||||||
|
lerna-debug.log*
|
||||||
|
|
||||||
|
node_modules
|
||||||
|
dist
|
||||||
|
dist-ssr
|
||||||
|
*.local
|
||||||
|
|
||||||
|
# Editor directories and files
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/extensions.json
|
||||||
|
.idea
|
||||||
|
.DS_Store
|
||||||
|
*.suo
|
||||||
|
*.ntvs*
|
||||||
|
*.njsproj
|
||||||
|
*.sln
|
||||||
|
*.sw?
|
13
doordesk/index.html
Normal file
13
doordesk/index.html
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>Vite + React + TS</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="root"></div>
|
||||||
|
<script type="module" src="/src/main.tsx"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
3142
doordesk/package-lock.json
generated
Normal file
3142
doordesk/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
24
doordesk/package.json
Normal file
24
doordesk/package.json
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
"name": "doordesk",
|
||||||
|
"private": true,
|
||||||
|
"version": "0.0.0",
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "vite",
|
||||||
|
"build": "tsc && vite build",
|
||||||
|
"preview": "vite preview"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"react": "^18.2.0",
|
||||||
|
"react-dom": "^18.2.0",
|
||||||
|
"react-markdown": "^8.0.5",
|
||||||
|
"rehype-raw": "^6.1.1"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/react": "^18.0.27",
|
||||||
|
"@types/react-dom": "^18.0.10",
|
||||||
|
"@vitejs/plugin-react-swc": "^3.0.0",
|
||||||
|
"typescript": "^4.9.3",
|
||||||
|
"vite": "^4.1.0"
|
||||||
|
}
|
||||||
|
}
|
BIN
doordesk/public/bg.png
Normal file
BIN
doordesk/public/bg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 410 KiB |
158
doordesk/public/blog/000000000-swim.html
Normal file
158
doordesk/public/blog/000000000-swim.html
Normal file
|
@ -0,0 +1,158 @@
|
||||||
|
<article>
|
||||||
|
<p className="align-right date">
|
||||||
|
April 22, 1958<br />
|
||||||
|
57 Perry Street<br />
|
||||||
|
New York City<br />
|
||||||
|
</p>
|
||||||
|
<p>Dear Hume,</p>
|
||||||
|
<p>
|
||||||
|
You ask advice: ah, what a very human and very dangerous thing to do! For to give advice
|
||||||
|
to a man who asks what to do with his life implies something very close to egomania. To
|
||||||
|
presume to point a man to the right and ultimate goal—to point with a trembling
|
||||||
|
finger in the RIGHT direction is something only a fool would take upon himself.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
I am not a fool, but I respect your sincerity in asking my
|
||||||
|
advice. I ask you though, in listening to what I say, to remember that all advice can
|
||||||
|
only be a product of the man who gives it. What is truth to one may be a disaster to
|
||||||
|
another. I do not see life through your eyes, nor you through mine. If I were to attempt
|
||||||
|
to give you
|
||||||
|
<i>specific</i> advice, it would be too much like the blind leading the blind.
|
||||||
|
</p>
|
||||||
|
<p className="align-center">
|
||||||
|
<i>
|
||||||
|
"To be, or not to be: that is the question: Whether 'tis nobler in the mind to
|
||||||
|
suffer the slings and arrows of outrageous fortune, or to take arms against a sea of
|
||||||
|
troubles..."
|
||||||
|
</i>
|
||||||
|
<br />
|
||||||
|
(Shakespeare)
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
And indeed, that IS the question: whether to float with the tide, or to swim for a goal.
|
||||||
|
It is a choice we must all make consciously or unconsciously at one time in our lives.
|
||||||
|
So few people understand this! Think of any decision you've ever made which had a
|
||||||
|
bearing on your future: I may be wrong, but I don't see how it could have been anything
|
||||||
|
but a choice however indirect—between the two things I've mentioned: the floating
|
||||||
|
or the swimming.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
But why not float if you have no goal? That is another question.
|
||||||
|
It is unquestionably better to enjoy the floating than to swim in uncertainty. So how
|
||||||
|
does a man find a goal? Not a castle in the stars, but a real and tangible thing. How
|
||||||
|
can a man be sure he's not after the "big rock candy mountain," the enticing sugar-candy
|
||||||
|
goal that has little taste and no substance?
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The answer—and, in a sense, the tragedy of life—is
|
||||||
|
that we seek to understand the goal and not the man. We set up a goal which demands of
|
||||||
|
us certain things: and we do these things. We adjust to the demands of a concept which
|
||||||
|
CANNOT be valid. When you were young, let us say that you wanted to be a fireman. I feel
|
||||||
|
reasonably safe in saying that you no longer want to be a fireman. Why? Because your
|
||||||
|
perspective has changed. It's not the fireman who has changed, but you. Every man is the
|
||||||
|
sum total of his reactions to experience. As your experiences differ and multiply, you
|
||||||
|
become a different man, and hence your perspective changes. This goes on and on. Every
|
||||||
|
reaction is a learning process; every significant experience alters your perspective.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
So it would seem foolish, would it not, to adjust our lives to
|
||||||
|
the demands of a goal we see from a different angle every day? How could we ever hope to
|
||||||
|
accomplish anything other than galloping neurosis?
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The answer, then, must not deal with goals at all, or not with
|
||||||
|
tangible goals, anyway. It would take reams of paper to develop this subject to
|
||||||
|
fulfillment. God only knows how many books have been written on "the meaning of man" and
|
||||||
|
that sort of thing, and god only knows how many people have pondered the subject. (I use
|
||||||
|
the term "god only knows" purely as an expression.) There's very little sense in my
|
||||||
|
trying to give it up to you in the proverbial nutshell, because I'm the first to admit
|
||||||
|
my absolute lack of qualifications for reducing the meaning of life to one or two
|
||||||
|
paragraphs.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
I'm going to steer clear of the word "existentialism," but you
|
||||||
|
might keep it in mind as a key of sorts. You might also try something called
|
||||||
|
<i>Being and Nothingness</i> by Jean-Paul Sartre, and another little thing called
|
||||||
|
<i>Existentialism: From Dostoyevsky to Sartre.</i> These are merely suggestions. If
|
||||||
|
you're genuinely statisfied with what you are and what you're doing, then give those
|
||||||
|
books a wide berth. (Let sleeping dogs lie.) But back to the answer. As I said, to put
|
||||||
|
our faith in tangible goals would seem to be, at best, unwise. So we do not strive to be
|
||||||
|
firemen, we do not strive to be bankers, nor policemen, nor doctors. WE STRIVE TO BE
|
||||||
|
OURSELVES.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
But don't misunderstand me. I don't mean that we can't BE
|
||||||
|
firemen, bankers, or doctors—but that we must make the goal conform to the
|
||||||
|
individual, rather than make the individual conform to the goal. In every man, heredity
|
||||||
|
and environment have combined to produce a creature of certain abilities and
|
||||||
|
desires—including a deeply ingrained need to function in such a way that his life
|
||||||
|
will be MEANINGFUL. A man has to BE something; he has to matter.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
As I see it then, the formula runs something like this: a man
|
||||||
|
must choose a path which will let his ABILITIES function at maximum efficiency toward
|
||||||
|
the gratification of his DESIRES. In doing this, he is fulfilling a need (giving himself
|
||||||
|
identity by functioning in a set pattern toward a set goal) he avoids frustrating his
|
||||||
|
potential (choosing a path which puts no limit on his self-development), and he avoids
|
||||||
|
the terror of seeing his goal wilt or lose its charm as he draws closer to it (rather
|
||||||
|
than bending himself to meet the demands of that which he seeks, he has bent his goal to
|
||||||
|
conform to his own abilities and desires).
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
In short, he has not dedicated his life to reaching a
|
||||||
|
pre-defined goal, but he has rather chosen a way of like he KNOWS he will enjoy. The
|
||||||
|
goal is absolutely secondary: it is the
|
||||||
|
<i>functioning toward the goal</i> which is important. And it seems almost ridiculous to
|
||||||
|
say that a man MUST function in a pattern of his own choosing; for to let another man
|
||||||
|
define your own goals is to give up one of the most meaningful aspects of life—the
|
||||||
|
definitive act of will which makes a man an individual.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Let's assume that you think you have a choice of eight paths to
|
||||||
|
follow (all pre-defined paths, of course). And let's assume that you can't see any real
|
||||||
|
purpose in any of the eight. Then—and here is the essence of all I've
|
||||||
|
said—you MUST FIND A NINTH PATH.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Naturally, it isn't as easy as it sounds. you've lived a
|
||||||
|
relatively narrow life, a vertical rather than a horizontal existence. So it isn't any
|
||||||
|
too difficult to understand why you seem to feel the way you do. But a man who
|
||||||
|
procrastinates in his CHOOSING will inevitably have his choice made for him by
|
||||||
|
circumstance.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
So if you now number yourself among the disenchanted, then you
|
||||||
|
have no choice but to accept things as they are, or to seriously seek something else.
|
||||||
|
But beware of looking for
|
||||||
|
<i>goals</i>: look for a way of life. Decide how you want to live and then see what you
|
||||||
|
can do to make a living WITHIN that way of life. But you say, "I don't know where to
|
||||||
|
look; I don't know what to look for."
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
And there's the crux. Is it worth giving up what I have to look
|
||||||
|
for something better? I don't know—is it? Who can make that decision but you? But
|
||||||
|
even by DECIDING TO LOOK, you go a long way toward making the choice.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If I don't call this to a halt, I'm going to find myself writing
|
||||||
|
a book. I hope it's not as confusing as it looks at first glance. Keep in mind, of
|
||||||
|
course, that this is MY WAY of looking at things. I happen to think that it's pretty
|
||||||
|
generally applicable, but you may not. Each of us has to create our own credo—this
|
||||||
|
merely happens to be mine.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If any part of it doesn't seem to make sense, by all means call
|
||||||
|
it to my attention. I'm not trying to send you out "on the road" in search of Valhalla,
|
||||||
|
but merely pointing out that it is not necessary to accept the choices handed down to
|
||||||
|
you by life as you know it. There is more to it than that—no one HAS to do
|
||||||
|
something he doesn't want to do for the rest of his life. But then again, if that's what
|
||||||
|
you wind up doing, by all means convince yourself that you HAD to do it. You'll have
|
||||||
|
lots of company.
|
||||||
|
</p>
|
||||||
|
<br />
|
||||||
|
<p> And that's it for now. Until I hear from you again, I remain,</p>
|
||||||
|
<p className="align-right">
|
||||||
|
your friend...<br />
|
||||||
|
Hunter
|
||||||
|
</p>
|
||||||
|
</article>
|
54
doordesk/public/blog/20220506-change.html
Normal file
54
doordesk/public/blog/20220506-change.html
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
<article>
|
||||||
|
<p className="align-right date">May 06, 2022</p>
|
||||||
|
<h2 className="title">Change</h2>
|
||||||
|
<p className="align-center">
|
||||||
|
<i>"Life should not be a journey to the grave with the intention of arriving safely in
|
||||||
|
a pretty and well preserved body, but rather to skid in broadside in a cloud of
|
||||||
|
smoke, thoroughly used up, totally worn out, and loudly proclaiming "Wow! What a
|
||||||
|
Ride!"</i>
|
||||||
|
<br />
|
||||||
|
(Hunter S.Thompson)
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
There comes a time in one's life, perhaps multiple, when there
|
||||||
|
is an unquestionable need for change. Maybe you're not sure how, why, or where it came
|
||||||
|
from, or where even it is you're headed, or how to get there, but here you are taking
|
||||||
|
your first steps toward a new life. A journey into the unknown. I've just set out on one
|
||||||
|
of these journeys, and even as I sit here typing this now I can't help but feel a little
|
||||||
|
bit nervous, but even more excited. I have absolutely no idea where I'm headed to be
|
||||||
|
quite honest. But I know where I've been.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Growing up I would always be taking things apart, I HAD to see
|
||||||
|
what was inside. What makes this thing, a thing. What makes it tick? Can it tick faster?
|
||||||
|
For no particular reason I just had to know every little detail about what made the
|
||||||
|
thing the thing that it was and why it did what it did. It's a gift and a curse of
|
||||||
|
sorts. Quickly this led to taking apart things of increasing complexity, our home
|
||||||
|
computer for instance. Luckily I was able to get it put back together before my parents
|
||||||
|
got home because it was made clear that this was not allowed, and the CPU didn't seem to
|
||||||
|
mind the sudden absence of thermal compound either. I must have been around 7 or 8 years
|
||||||
|
old at that time, and it still puzzles me just what is going on inside there.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
I have a better idea now, naturally I had to figure out just
|
||||||
|
what all those pieces were, what they did, and how they did it. What if I replaced some
|
||||||
|
of these parts with other parts? As I honed my web searching skills to try to answer the
|
||||||
|
seemingly endless hows and whys I ended up building myself a little hotrod computer and
|
||||||
|
then raced it against other peoples' computers because why not, right? And I actually
|
||||||
|
won! It was an overclocking contest called the winter suicides, a kind of computer drag
|
||||||
|
race. Highest CPU clock speed wins, you have to boot into Windows XP, open CPU-Z, and
|
||||||
|
take a screenshot. If it crashes immediately after that (and it did) it still counts. I
|
||||||
|
got some pretty weird looks from my father as I stuck my computer outside in the snow
|
||||||
|
but that was a small price to pay for the grand prize which was a RAM kit (2GB of DDR400
|
||||||
|
I believe) and RAM cooler.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
After getting comfortable with hardware I started to study the
|
||||||
|
software side of things, I tried teaching myself C++ (and didn't get very far), I did
|
||||||
|
teach myself HTML and CSS, some JavaScript, and started playing around with Linux. It
|
||||||
|
took until only a year or two ago to finally be completely on Linux full time (gaming
|
||||||
|
holding me back), I even have a Linux phone now (Pinephone Pro). At this point I reached
|
||||||
|
high school and my attention moved from computers to cars.
|
||||||
|
</p>
|
||||||
|
<p>To be continued...</p>
|
||||||
|
</article>
|
13
doordesk/public/blog/20220520-nvidia.html
Normal file
13
doordesk/public/blog/20220520-nvidia.html
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<article>
|
||||||
|
<p className="align-right date">May 20, 2022</p>
|
||||||
|
<h2 className="title">It's about time, NVIDIA</h2>
|
||||||
|
<p> It's about time... NVIDIA has finally released and is starting to
|
||||||
|
support Open-source software with their new modules released recently for the Linux
|
||||||
|
kernel. NVIDIA historically has been seemingly against Linux/OSS for whatever reason.
|
||||||
|
This is a huge step forward both for end users and NVIDIA.
|
||||||
|
</p>
|
||||||
|
<p className="align-center">
|
||||||
|
<a href="https://github.com/NVIDIA/open-gpu-kernel-modules">
|
||||||
|
NVIDIA open-gpu-kernel-modules</a > on github.
|
||||||
|
</p>
|
||||||
|
</article>
|
45
doordesk/public/blog/20220602-back.html
Normal file
45
doordesk/public/blog/20220602-back.html
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
<article>
|
||||||
|
<p className="align-right date">Jun 02, 2022</p>
|
||||||
|
<h2 className="title">Back to School</h2>
|
||||||
|
<h3>Where the hell have I been!?</h3>
|
||||||
|
<p>
|
||||||
|
Looking back at the past 5 weeks, it's impressive the amount of new things that have
|
||||||
|
been shoved in my face. A list I'll try to make contains:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://www.python.org/">Python</a></li>
|
||||||
|
<li><a href="https://pandas.pydata.org/">Pandas</a></li>
|
||||||
|
<li><a href="https://matplotlib.org/">Matplotlib</a></li>
|
||||||
|
<li><a href="https://seaborn.pydata.org/">Seaborn</a></li>
|
||||||
|
<li><a href="https://www.statsmodels.org/">Statsmodels</a></li>
|
||||||
|
<li><a href="https://scikit-learn.org/">Scikit-Learn</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="https://www.crummy.com/software/BeautifulSoup/">Beautiful Soup</a>
|
||||||
|
</li>
|
||||||
|
<li><a href="https://www.selenium.dev/">Selenium</a></li>
|
||||||
|
<li><a href="https://github.com/praw-dev/praw">PRAW</a></li>
|
||||||
|
<li>Plus the math and background to go with it all!</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
It doesn't seem like much at the time except chaos, but then about a week later it
|
||||||
|
finally sets in. After tomorrow we'll be halfway through the course and while I guess
|
||||||
|
you could say that it's half over, or that it signifies progress, I feel it's more like
|
||||||
|
being halfway up Mount Everest and looking—trying to squint through the clouds and
|
||||||
|
make out what looks like the peak. I don't see a peak and maybe it's because I'm
|
||||||
|
nearsighted but I can also tell you that if were to look down then I can't see where
|
||||||
|
I've started either!
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
It's been quite a ride and I hope to see it to the end. I don't have time to even think
|
||||||
|
about it further. It's where I perform my best though, on my heels. Probably by
|
||||||
|
design...
|
||||||
|
</p>
|
||||||
|
<h3>After?</h3>
|
||||||
|
<p>
|
||||||
|
I would like to use these skills to expand on some of the class projects I've worked on
|
||||||
|
and I have some other ideas using language processing I think would be fun to play with.
|
||||||
|
I think it would be fun to create an internet chat bot, we'll start with text but if
|
||||||
|
speech recognition is practical then I may add and play with that too. I would also like
|
||||||
|
to make some sort of "Propaganda Detector"
|
||||||
|
</p>
|
||||||
|
</article>
|
105
doordesk/public/blog/20220701-progress.html
Normal file
105
doordesk/public/blog/20220701-progress.html
Normal file
|
@ -0,0 +1,105 @@
|
||||||
|
<article>
|
||||||
|
<p className="align-right date">Jul 01, 2022</p>
|
||||||
|
<h2 className="title">It's a post about nothing!</h2>
|
||||||
|
<p>The progress update</p>
|
||||||
|
<center>
|
||||||
|
<iframe
|
||||||
|
src="https://gfycat.com/ifr/DistantUnpleasantHyracotherium"
|
||||||
|
frameborder="0"
|
||||||
|
scrolling="no"
|
||||||
|
allowfullscreen
|
||||||
|
width="640"
|
||||||
|
height="535"
|
||||||
|
></iframe>
|
||||||
|
</center>
|
||||||
|
<h3>Bots</h3>
|
||||||
|
<p>
|
||||||
|
After finding a number of ways not to begin the project formerly known as my capstone,
|
||||||
|
I've finally settled on a
|
||||||
|
<a
|
||||||
|
href="https://www.kaggle.com/datasets/bwandowando/ukraine-russian-crisis-twitter-dataset-1-2-m-rows"
|
||||||
|
>dataset</a
|
||||||
|
>. The project is about detecting bots, starting with twitter. I've
|
||||||
|
<a href="projects/bots/docs/debot.pdf">studied</a> a
|
||||||
|
<a href="projects/bots/docs/botwalk.pdf">few</a>
|
||||||
|
<a href="projects/bots/docs/smu.pdf">different</a>
|
||||||
|
<a href="projects/bots/docs/div.pdf">methods</a> of bot detection and particularly like the
|
||||||
|
<a href="projects/bots/docs/debot.pdf">DeBot</a> and
|
||||||
|
<a href="projects/bots/docs/botwalk.pdf">BotWalk</a> methods and think I will try to mimic them,
|
||||||
|
in that order.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Long story short, DeBot uses a fancy method of time correlation to group accounts
|
||||||
|
together based on their posting habits. By identifying accounts that all have identical
|
||||||
|
posting habits that are beyond what a human could do by coincidence, this is a great
|
||||||
|
first step to identifying an inital group of seed bots. This can then be expanded by
|
||||||
|
using BotWalk's method of checking all the followers of the bot accounts and comparing
|
||||||
|
anomalous behavior to separate humans from non-humans. Rinse and repeat. I'll begin this
|
||||||
|
on twitter but hope to make it platform independent.
|
||||||
|
</p>
|
||||||
|
<h3>The Real Capstone</h3>
|
||||||
|
<p>
|
||||||
|
The bot project is too much to complete in this short amount of time, so instead I'm
|
||||||
|
working with a
|
||||||
|
<a href="https://archive-beta.ics.uci.edu/ml/datasets/auto+mpg">small dataset</a>
|
||||||
|
containing info about cars with some specs and I'll predict MPG. The problem itself for
|
||||||
|
me is trivial from past study/experience as an auto mechanic so I should have a nice
|
||||||
|
playground to focus completely on modeling. It's a very small data set too at < 400
|
||||||
|
lines, I should be able to test multiple models in depth very quickly. It may or may not
|
||||||
|
be interesting, expect a write-up anyway.
|
||||||
|
</p>
|
||||||
|
<h3>Cartman</h3>
|
||||||
|
<p>
|
||||||
|
Well I guess I've adopted an 8 year old. Based on
|
||||||
|
<a href="https://github.com/RuolinZheng08/twewy-discord-chatbot">this project</a>
|
||||||
|
I've trained a chat bot with the personality of Eric Cartman. He's a feature of my
|
||||||
|
Discord bot living on a Raspberry Pi 4B, which I would say is probably the slowest
|
||||||
|
computer you would ever want to run something like this on. It takes a somewhat
|
||||||
|
reasonable amount of time to respond, almost feeling human if you make it think a bit.
|
||||||
|
The project uses <a href="https://pytorch.org/">PyTorch</a> to train the model. I'd like
|
||||||
|
to re-create it using <a href="https://www.tensorflow.org/">TensorFlow</a> as an
|
||||||
|
exercise to understand each one better, but that's a project for another night. It also
|
||||||
|
only responds to one line at a time so it can't carry a conversation with context,
|
||||||
|
yet...
|
||||||
|
</p>
|
||||||
|
<h3>Website</h3>
|
||||||
|
<p>
|
||||||
|
I never thought I'd end up having a blog. I had no plans at all actually when I set up
|
||||||
|
this server, just to host a silly page that I would change from time to time whenever I
|
||||||
|
was bored. I've been looking at
|
||||||
|
<a href="https://gohugo.io/">Hugo</a> as a way to organize what is now just a list of
|
||||||
|
divs in a single html file slowly growing out of control. Basically you just dump each
|
||||||
|
post into its own file, create a template of how to render them, and let it do its
|
||||||
|
thing. I should be able to create a template that recreates exactly what you see right
|
||||||
|
now, which is beginning to grow on me.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If you haven't noticed yet, (and I don't blame you if you haven't because only a handful
|
||||||
|
of people even visit this page) each time there is an update there is a completely new
|
||||||
|
background image, color scheme, a whole new theme. This is because this page is a near
|
||||||
|
identical representation of terminal windows open my computer and each time I update the
|
||||||
|
page I also update it with my current wallpaper, which generates the color scheme
|
||||||
|
dynamically using
|
||||||
|
<a href="https://github.com/dylanaraps/pywal">Pywal</a>.
|
||||||
|
</p>
|
||||||
|
TODO:
|
||||||
|
<ul>
|
||||||
|
<li>Code blocks with syntax highlighting</li>
|
||||||
|
<li>
|
||||||
|
Develop an easy workflow to dump a jupyter notebook into the website and have it
|
||||||
|
display nicely with minimal effort
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Find a way to hack plots generated with matplotlib to change colors with the page
|
||||||
|
color scheme (or find another way to do the same thing)
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Automate generating the site - probably
|
||||||
|
<a href="https://gohugo.io/">Hugo</a>
|
||||||
|
</li>
|
||||||
|
<li>Separate from blog, projects, etc.</li>
|
||||||
|
<li>Add socials, contact, about</li>
|
||||||
|
<li>A bunch of stuff I haven't even thought of yet</li>
|
||||||
|
</ul>
|
||||||
|
<p>That's all for now</p>
|
||||||
|
</article>
|
126
doordesk/src/App.css
Normal file
126
doordesk/src/App.css
Normal file
|
@ -0,0 +1,126 @@
|
||||||
|
@import url("colors.css");
|
||||||
|
@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@500&display=swap');
|
||||||
|
|
||||||
|
:root{
|
||||||
|
--useless-gaps: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
html, body {
|
||||||
|
background-color: black;
|
||||||
|
background-image: url("bg.png");
|
||||||
|
background-attachment: fixed;
|
||||||
|
background-position: center;
|
||||||
|
background-size: cover;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
font-family: 'Roboto Mono', monospace;
|
||||||
|
font-size: 14;
|
||||||
|
line-height: 1.7em;
|
||||||
|
color: var(--foreground);
|
||||||
|
}
|
||||||
|
|
||||||
|
input, textarea {
|
||||||
|
background-color: var(--background);
|
||||||
|
color: var(--foreground);
|
||||||
|
border: 1px solid var(--color6);
|
||||||
|
border-radius: 4px;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
textarea {
|
||||||
|
width: 100%;
|
||||||
|
height: 38.2%;
|
||||||
|
resize: none;
|
||||||
|
}
|
||||||
|
input[type=text] {
|
||||||
|
font-size: 18;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
input[type=submit] {
|
||||||
|
float: right;
|
||||||
|
font-size: 16;
|
||||||
|
padding: .5em;
|
||||||
|
}
|
||||||
|
input[type=submit]:hover {
|
||||||
|
background-color: var(--color10);
|
||||||
|
}
|
||||||
|
img{
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: var(--color4);
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: var(--color5);
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
color: var(--color10);
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
color: var(--color6);
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
color: var(--color3);
|
||||||
|
margin-top: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-top: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.content {
|
||||||
|
margin: 3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-container, .header {
|
||||||
|
margin: auto;
|
||||||
|
margin-top: var(--useless-gaps);
|
||||||
|
background: rgb(0,0,0,.8);
|
||||||
|
border: solid 1px;
|
||||||
|
border-color: var(--color4);
|
||||||
|
max-width: 80em;
|
||||||
|
box-shadow: 5px 12px 20px #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date{
|
||||||
|
color: var(--color4)
|
||||||
|
}
|
||||||
|
|
||||||
|
.cards {
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: -ms-flex;
|
||||||
|
display: flex;
|
||||||
|
-webkit-flex-wrap: wrap;
|
||||||
|
-ms-flex-wrap: wrap;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
max-width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
margin: auto;
|
||||||
|
max-width: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 1px;
|
||||||
|
width: 20rem;
|
||||||
|
padding: 0 2em 2em 2em;
|
||||||
|
margin: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.align-right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.align-center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
margin-top: -1em;
|
||||||
|
}
|
||||||
|
|
25
doordesk/src/App.tsx
Normal file
25
doordesk/src/App.tsx
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
import { Component } from 'react'
|
||||||
|
import './App.css'
|
||||||
|
import Header from './components/Header.js'
|
||||||
|
import Blog from './components/Blog.js'
|
||||||
|
|
||||||
|
const BLOG_POSTS = [
|
||||||
|
'blog/000000000-swim.html',
|
||||||
|
'blog/20220506-change.html'
|
||||||
|
]
|
||||||
|
|
||||||
|
class App extends Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props)
|
||||||
|
}
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<div className="App">
|
||||||
|
<Header />
|
||||||
|
<Blog />
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default App
|
29
doordesk/src/colors.css
Normal file
29
doordesk/src/colors.css
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
/* CSS variables
|
||||||
|
Generated by 'wal' */
|
||||||
|
:root {
|
||||||
|
--wallpaper: url("/home/adam/Pictures/Wallpapers/1530677818495.jpg");
|
||||||
|
|
||||||
|
/* Special */
|
||||||
|
--background: #100709;
|
||||||
|
--foreground: #9dd4d2;
|
||||||
|
--cursor: #9dd4d2;
|
||||||
|
|
||||||
|
/* Colors */
|
||||||
|
--color0: #100709;
|
||||||
|
--color1: #54514A;
|
||||||
|
--color2: #AD2C13;
|
||||||
|
--color3: #1B8C75;
|
||||||
|
--color4: #C1875E;
|
||||||
|
--color5: #236796;
|
||||||
|
--color6: #0EA49E;
|
||||||
|
--color7: #9dd4d2;
|
||||||
|
--color8: #6d9493;
|
||||||
|
--color9: #54514A;
|
||||||
|
--color10: #AD2C13;
|
||||||
|
--color11: #1B8C75;
|
||||||
|
--color12: #C1875E;
|
||||||
|
--color13: #236796;
|
||||||
|
--color14: #0EA49E;
|
||||||
|
--color15: #9dd4d2;
|
||||||
|
}
|
||||||
|
|
18
doordesk/src/components/Blog.tsx
Normal file
18
doordesk/src/components/Blog.tsx
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
import { Component } from 'react'
|
||||||
|
import BlogPost from './BlogPost.tsx'
|
||||||
|
|
||||||
|
class Blog extends Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props)
|
||||||
|
}
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<BlogPost post='blog/20220506-change.html' />
|
||||||
|
<BlogPost post='blog/000000000-swim.html' />
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Blog
|
32
doordesk/src/components/BlogPost.tsx
Normal file
32
doordesk/src/components/BlogPost.tsx
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
import { Component } from 'react'
|
||||||
|
import ReactMarkdown from 'react-markdown'
|
||||||
|
import rehypeRaw from 'rehype-raw'
|
||||||
|
|
||||||
|
class BlogPost extends Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props)
|
||||||
|
this.state = {
|
||||||
|
'post': ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
async getPost(post) {
|
||||||
|
return fetch(post)
|
||||||
|
.then((res) => res.text())
|
||||||
|
}
|
||||||
|
componentDidMount(props) {
|
||||||
|
this.getPost(this.props.post)
|
||||||
|
.then((text) => this.setState({ post: text }))
|
||||||
|
|
||||||
|
}
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<div className="content-container">
|
||||||
|
<div className="content">
|
||||||
|
<ReactMarkdown rehypePlugins={[rehypeRaw]} children={this.state.post} />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default BlogPost
|
21
doordesk/src/components/Header.tsx
Normal file
21
doordesk/src/components/Header.tsx
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
function Header() {
|
||||||
|
return (
|
||||||
|
<div className="header">
|
||||||
|
<div className="content">
|
||||||
|
<header>
|
||||||
|
<h1>DoorDesk</h1>
|
||||||
|
</header>
|
||||||
|
<nav>
|
||||||
|
<p>
|
||||||
|
<a href="../index.html">[Home]</a> -
|
||||||
|
<a href="../games">[Games]</a> -
|
||||||
|
<a href="https://github.com/adoyle0">[GitHub]</a> -
|
||||||
|
[Cartman]
|
||||||
|
</p>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Header
|
0
doordesk/src/index.css
Normal file
0
doordesk/src/index.css
Normal file
10
doordesk/src/main.tsx
Normal file
10
doordesk/src/main.tsx
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import React from 'react'
|
||||||
|
import ReactDOM from 'react-dom/client'
|
||||||
|
import App from './App'
|
||||||
|
import './index.css'
|
||||||
|
|
||||||
|
ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
|
||||||
|
<React.StrictMode>
|
||||||
|
<App />
|
||||||
|
</React.StrictMode>,
|
||||||
|
)
|
1
doordesk/src/vite-env.d.ts
vendored
Normal file
1
doordesk/src/vite-env.d.ts
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/// <reference types="vite/client" />
|
21
doordesk/tsconfig.json
Normal file
21
doordesk/tsconfig.json
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"target": "ESNext",
|
||||||
|
"useDefineForClassFields": true,
|
||||||
|
"lib": ["DOM", "DOM.Iterable", "ESNext"],
|
||||||
|
"allowJs": false,
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"esModuleInterop": false,
|
||||||
|
"allowSyntheticDefaultImports": true,
|
||||||
|
"strict": true,
|
||||||
|
"forceConsistentCasingInFileNames": true,
|
||||||
|
"module": "ESNext",
|
||||||
|
"moduleResolution": "Node",
|
||||||
|
"resolveJsonModule": true,
|
||||||
|
"isolatedModules": true,
|
||||||
|
"noEmit": true,
|
||||||
|
"jsx": "react-jsx"
|
||||||
|
},
|
||||||
|
"include": ["src"],
|
||||||
|
"references": [{ "path": "./tsconfig.node.json" }]
|
||||||
|
}
|
9
doordesk/tsconfig.node.json
Normal file
9
doordesk/tsconfig.node.json
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"composite": true,
|
||||||
|
"module": "ESNext",
|
||||||
|
"moduleResolution": "Node",
|
||||||
|
"allowSyntheticDefaultImports": true
|
||||||
|
},
|
||||||
|
"include": ["vite.config.ts"]
|
||||||
|
}
|
7
doordesk/vite.config.ts
Normal file
7
doordesk/vite.config.ts
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
import { defineConfig } from 'vite'
|
||||||
|
import react from '@vitejs/plugin-react-swc'
|
||||||
|
|
||||||
|
// https://vitejs.dev/config/
|
||||||
|
export default defineConfig({
|
||||||
|
plugins: [react()],
|
||||||
|
})
|
6
package-lock.json
generated
Normal file
6
package-lock.json
generated
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"name": "doordesk",
|
||||||
|
"lockfileVersion": 2,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {}
|
||||||
|
}
|
1
readme.md
Normal file
1
readme.md
Normal file
|
@ -0,0 +1 @@
|
||||||
|
sup
|
Loading…
Add table
Reference in a new issue