Compare commits

...

5 Commits

Author SHA1 Message Date
925ffd28b2
Reorganise services and elaborate on certain things 2022-04-11 18:58:17 -04:00
930ddb648b
Add posts/minrss.md 2022-04-10 14:10:04 -04:00
3652c5220c
Adjust css header styles 2022-04-09 15:45:09 -04:00
433427e456
Fix capitalisation in about.md 2022-04-08 23:01:30 -04:00
d434bf03f2
Fix titles 2022-04-07 19:29:01 -04:00
5 changed files with 225 additions and 22 deletions

View File

@ -1,19 +1,103 @@
# hi! i'm dogeystamp.
# about me
## about me
I'm a Canadian high school student with an interest in tech and libre software.
**Hi! I'm dogeystamp.** I'm a Canadian high school student with an interest in tech and libre software.
## what i do
### competitive programming
I participate in some programming contests like the University of Waterloo's [CCC.](https://cemc.uwaterloo.ca/contests/computing.html)
In 2021's contest, I got a score of 48/75 in the senior division. [Here's](https://cemc.uwaterloo.ca/contests/computing.html) a repo with my solutions.
In 2021's contest, I got a score of 48/75 in the senior division. [Here's](https://github.com/dogeystamp/waterlooccc) a repo with my solutions.
### random projects
### projects
There's a few miscellaneous projects I've done before, some of which have have articles in my blog.
In my free time I do programming projects, some of which have have full articles in my blog.
#### [minrss](posts/minrss.html)
This is a minimal RSS/Atom feed reader I made using C. It relies mostly on libcurl for multi-threaded downloads of RSS feeds, and libxml2 for XML parsing.
The main feature of this program is that it represents feeds as folders with
articles as files within them.
```
rss
|--news
| |--article1
| `--article2
`--blog
|--post
`--other_post
```
This is similar to suckless.org's programs
[ii](http://tools.suckless.org/ii/) and [sic](http://tools.suckless.org/sic/).
As such, reading is done via other shell utilities.
#### suckless contributions
[suckless.org](http://suckless.org/) is an organisation dedicated to efficient, minimal, and high-quality software.
They allow patches to be sent in via a world-readable git server.
Although minor, I have uploaded a few patches to suckless.org for [dwm](http://dwm.suckless.org/), a window manager for X11. These are written in C.
- [rearrangebar](http://dwm.suckless.org/patches/rearrangebar/) places dwm's bar items in spots I liked more.
- [blanktags](http://dwm.suckless.org/patches/blanktags/) makes dwm's tag list a series of neat geometric shapes, rather than a list of numbers.
excerpt from blanktags:
```
@@ -716,11 +716,11 @@ drawbar(Monitor *m)
}
x = 0;
for (i = 0; i < LENGTH(tags); i++) {
- w = TEXTW(tags[i]);
+ w = bh;
drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ? SchemeSel : SchemeNorm]);
- drw_text(drw, x, 0, w, bh, lrpad / 2, tags[i], urg & 1 << i);
+ drw_text(drw, x, 0, bh, bh, 0, "", urg & 1 << i);
if (occ & 1 << i)
- drw_rect(drw, x + boxs, boxs, boxw, boxw,
+ drw_rect(drw, x+boxw,boxw, w-boxw*2, w-boxw*2,
m == selmon && selmon->sel && selmon->sel->tags & 1 << i,
urg & 1 << i);
x += w;
--
2.31.1
```
My [gitea](../git/) instance hosts all my personal builds of [dwm](../git/dogeystamp/dwm), [st](../git/dogeystamp/st), and other suckless utilities. These include other people's patches, as well as my own modifications.
#### homeserver ansible playbook
This server is configured automatically using an [Ansible playbook.](../git/dogeystamp/homeserver-ansible)
After flashing the device with Arch Linux ARM, Ansible takes over. This includes bootstrapping Python and configuring network settings.
Users, groups and permissions are also handled.
Here's a brief summary of services installed:
- Gitea
- Matrix Synapse
- Nginx webserver
- MediaWiki farm
- Firewall
For a more extensive list, check the README file.
#### python
I have some experience using Python too, mostly for small scripts. Here's some of them:
- [cdn](../git/dogeystamp/cdn): Small file upload service made in Python/Flask
I wrote this as part of the BrebeufHx 2022 hackathon. This is a component of a chat application.
- [dwg](../git/dogeystamp/dwg): Convert coordinates to and from words. By default, using the regular Diceware dictionary,
it can get to around meter precision using 4 words.
- [calendar-tool](../git/dogeystamp/calendar-tool): Generates a .csv file calendar for my school schedule. Because it is a 6-day cycle, weekly recurring events would have to be changed very often, and as such I wanted to make this tool.
### art

View File

@ -13,7 +13,7 @@ a {
}
p, pre {
margin-left: 2%;
margin-left: 3%;
}
h1, h2, h3, h4 {
@ -26,7 +26,11 @@ h1, h2 {
font-size: 175%;
}
h3, h4 {
h1 {
font-size: 200%;
}
h2, h3, h4, h5, h6 {
margin-left: 1%;
}
@ -39,7 +43,7 @@ img {
height: auto;
}
pre, p > code {
pre, p > code, li > code {
font-size: 1.5vmin;
font-family: JetBrainsMono, monospace;
background: #090909;
@ -85,10 +89,15 @@ footer {
color: #cccccc;
}
ul {
margin-left: 5%;
list-style-type: square;
padding: 0;
}
.articles {
list-style-type: none;
margin-left: 2%;
padding: 0;
}
.articles li {

View File

@ -1,20 +1,12 @@
# welcome to my website!
## welcome to my website!
This is a place where I host random services and pages.
This is a place where I host some services and a blog.
For more info about me, including contact info, check out [my about page.](about.html)
## services
### [gitea](../git/)
Local git server, along with frontend.
### [rockwell wiki](../rw/) (private)
MediaWiki for friends only.
### [bepp wiki](../wiki/) (private)
Another MediaWiki, also private.
Local git server, along with frontend. This hosts the majority of the projects I have done in the past.
## blog articles

107
src/posts/minrss.md Normal file
View File

@ -0,0 +1,107 @@
<!--- date: 2022-03-26 --->
<!--- title: feed reader --->
# minrss
I used to have [newsboat](https://newsboat.org/) as an RSS/Atom feed reader. However, I was looking for a project to do so I made a replacement.
minrss is intended to be minimal and small.
It pulls a lot of inspiration from suckless.org's projects like their IRC clients ii and sic too. A structure similar to these projects is used. Each feed is represented as a folder, and each article as files.
```
rss
|--news
| |--article1
| `--article2
`--blog
|--post
`--other_post
```
## usage
minrss will inform the user about new articles. If another action should be done for each article, it can be easily patched in, like any suckless software.
```
$ cd ~/dox/rss
$ minrss
Finished downloads.
2 new articles for feed news.
2 new articles for feed blog.
Finished parsing feeds.
```
After being run, there will be a folder for each feed.
```
$ ls
news blog
```
I personally use basic shell utilities to list off the new articles.
```
$ ls -t news/ | head -n 2
article1.html
article2.html
```
Since articles are saved as HTML, I then have w3m parse them. minrss will also provide a link to the original site by default, in case the feed only has summaries of articles.
```
$ w3m news/article1.html
article1
Link
Loren ipsum dolor sit amet...
```
Obviously, all this extra work could be condensed into aliases, or patched into the program.
## installation
The installation of minrss is similar to suckless software like dwm or st.
- Clone the repo.
```
$ git clone https://d.nerdpol.ovh/git/dogeystamp/minrss
$ cd minrss
```
- Copy `config.def.h` to `config.h`.
```
$ cp config.def.h config.h
```
- Edit config.h to add your RSS feeds.
```
static const linkStruct links[] = {
{
.url = "https://news.org/rss/",
.feedName = "news",
},
{
.url = "https://blog.com/rss/",
.feedName = "blog",
},
};
```
- Compile and install the resulting binary.
Do note that `$PREFIX` is set to `~/.local/bin` in the Makefile because the feed list is generally personal.
If you need to install minrss system-wide for whatever reason, change `$PREFIX` to `/usr`.
```
$ make
$ make install
```

11
src/priv.md Normal file
View File

@ -0,0 +1,11 @@
# private services
Other than the services listed on the index page, here are some reserved for friends only.
### [rockwell wiki](../rw/)
Rockwell Mansion canon wiki
### [bepp wiki](../wiki/) (private)
Bepp satire wiki