summaryrefslogtreecommitdiff
path: root/_i18n/en
diff options
context:
space:
mode:
Diffstat (limited to '_i18n/en')
-rw-r--r--_i18n/en/_posts/2023-08-31-host_jekyll_apache.md136
-rw-r--r--_i18n/en/_posts/2023-09-12-kingsfield4.md56
-rw-r--r--_i18n/en/_posts/2024-04-30-configuring-dape.md78
-rw-r--r--_i18n/en/about.md21
-rw-r--r--_i18n/en/about_me.md47
5 files changed, 0 insertions, 338 deletions
diff --git a/_i18n/en/_posts/2023-08-31-host_jekyll_apache.md b/_i18n/en/_posts/2023-08-31-host_jekyll_apache.md
deleted file mode 100644
index 1890386..0000000
--- a/_i18n/en/_posts/2023-08-31-host_jekyll_apache.md
+++ /dev/null
@@ -1,136 +0,0 @@
----
-layout: post
-title: "HOWTO: Host your jekyll site using apache web server"
-date: 2023-08-31 18:27:00 +0000
-tag: Tutorials
----
-
-I finally have a personal blog just how I like it. I wouldn't say it took a long time (just a couple of days) or that I'd rather have used
-an overkill alternative, like WordPress. But I should recognize that it wasn't as easy as I thought it'd be. Besides the customizations
-I made to the theme I use, I think the main responsible of my suffering hosting this blog was apache.
-
-And so I think that a guide of what to do to host a static site made in jekyll on a VPS with apache2 it's a good idea for a first post,
-so let's get to it. A heads up: I already assume that you have your jekyll site ready and you're just looking on how to deploy it
-to your server, so I'll omit the steps regarding a site's generation.
-
-# Requirements
-- A VPS, whether using a hosting provider like vultr or a PC turned on 24/7 in your home. Just be sure that it is accessible to the public
- internet (that it has a static public IP), which is the most important aspect of a web server.
-- Some linux distro installed in your server. I personally use Debian, but the instructions presented here are distro-agnostic.
-- Apache2
-- Ruby; I recommend [rbenv][rbenv]
-
-# Apache2
-If you wish to host your site in the apache's main directory (in the case of debian, it's /var/www/html/), and, as a consequence, in your main domain
-(not a subdomain) then there's no extra configuration besides the one I'll show. If instead you'll host your blog on a subdomain, just beware that
-there're certain things to have in mind, like your server's name and the directory that's going to store your blog files.
-
-I was looking for two things when setting up my server: **internationalization** and **pretty URLs**. The configuration I'll show takes into consideration
-these two points, and it achieves them through [mod_rewrite][mod_rewrite]:
-
-{% highlight apache %}
-<VirtualHost _default_:443>
- ServerName example.com
-
- DocumentRoot /var/www/html/
- DirectoryIndex index.html
-
- RewriteEngine On
- RewriteRule ^/(page[1-9]+)$ %{DOCUMENT_ROOT}/$1/index.html
- RewriteRule ^/en/(page[1-9]+)$ %{DOCUMENT_ROOT}/en/$1/index.html
- RewriteRule ^/en/$ %{DOCUMENT_ROOT}/en/index.html
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule ^([^\.]+)$ $1.html [NC,L]
-
- ErrorDocument 404 "/not-found"
-
- ErrorLog ${APACHE_LOG_DIR}/error.log
- CustomLog ${APACHE_LOG_DIR}/access.log combined
-</VirtualHost>
-{% endhighlight %}
-
-The first two rules relate to pagination, using the jekyl-paginate rubygem. If you won't use pagination,
-you can omit it. Although I recommend you use it.
-
-The second one is a doozy, for now I'll only host the blog in english and spanish, although if I wish to,
-in the future, add a third language, like french, I could change the regex to:
-
-`^/(en|fr)/(page[1-9]+)$`
-
-The same for the next one, which only takes care of serving the index of every internationalized index version.
-The last three rules take care of pretty URLs (URLs without the file extension, e.g. about-me instead of about-me.html)
-
-The last configuration (ErrorDocument) is the page the server'll show every time there is a 404 status response. Chances
-are the theme you're using for your blog already has one, and if not, it's worth it to create one because the apache's
-default "Not found" page isn't particularly pleasing.
-
-# User permissions
-
-The /var/www/html directory usually belongs to the group (and user) www-data (in other distros this user is called apache),
-but if you like you can add yourself to this group or even better, become the owner. Be mindful of security though, this directory
-usually belongs to the root or www-data user, so it's probably worth it to create an user just for this and nothing else, and to not
-have anything sensible in your /var/www/html directory, besides your blog's files:
-
-{% highlight shell %}
-sudo chown -R $(whoami) /var/www/html
-{% endhighlight %}
-
-I did this because it's useful if you wish to use git hooks, so that with every change you push, the site will update automatically,
-so it behaves like a dynamic site, like a WordPress instance for example.
-
-# Deploy hook
-
-If you use a special user as the owner of your git repos, like me (my git user in my VPS doesn't have access to an interactive
-shell for example) then you can add another remote repo and point towards it:
-
-## Server
-
-{% highlight shell %}
-git --bare init your_blog.git
-cd your_blog.git
-touch hooks/post-receive
-{% endhighlight %}
-
-## Client (where you write your posts)
-
-{% highlight shell %}
-git remote add deploy your_user@example.com:/home/your_user/your_blog.git
-git push deploy
-{% endhighlight %}
-
-## Post-receive script
-
-Now, the script that'll be executed everytime you push any changes is the following, courtesy of [the jekyll docs][jekyll_docs].
-I modified it as I use rbenv, it'll be the same for you if you use it as well, but if you installed ruby and bundler with, for example,
-your package manager, then you won't have to add your rubygems' directory to your PATH, but if you installed ruby in any other way, it'll
-be required.
-
-{% highlight shell %}
-#!/bin/bash -l
-
-export GEM_HOME=$HOME/.rbenv/shims/
-export PATH=$GEM_HOME:$PATH
-
-GIT_DIR=$HOME/blog.git
-TMP_GIT_CLONE=$HOME/tmp
-GEMFILE=$TMP_GIT_CLONE/Gemfile
-PUBLIC_WWW=/var/www/html # Use the directory apache uses for serving your blog.
-
-git clone $GIT_DIR $TMP_GIT_CLONE
-BUNDLE_GEMFILE=$GEMFILE bundle install
-BUNDLE_GEMFILE=$GEMFILE bundle exec jekyll build -s $TMP_GIT_CLONE -d $PUBLIC_WWW
-rm -Rf $TMP_GIT_CLONE
-exit
-{% endhighlight %}
-
-# Conclusions
-
-Well, that was the _setup_ of my website. I personally think there is a technical barrier to using jekyll, and it's a shame
-because it covers a lot of use cases pretty well, but us technical users sometimes forget that what could be easy for us,
-like a git push, it's kind of black magic to others, and let's just not talk about that giant apache config file or having
-to write a git hook. Nevertheless, I enjoy jekyll, I enjoyed this process and I hope you do, too.
-
-[rbenv]: https://github.com/rbenv/rbenv
-[mod_rewrite]: https://httpd.apache.org/docs/2.4/rewrite/intro.html
-[jekyll_docs]: https://jekyllrb.com/docs/deployment/automated/
diff --git a/_i18n/en/_posts/2023-09-12-kingsfield4.md b/_i18n/en/_posts/2023-09-12-kingsfield4.md
deleted file mode 100644
index f3d5fe4..0000000
--- a/_i18n/en/_posts/2023-09-12-kingsfield4.md
+++ /dev/null
@@ -1,56 +0,0 @@
----
-layout: post
-title: "King's Field IV: Spelunking the ancient city"
-date: 2023-09-12
-tag: Videogames
----
-
-_King's Field IV_ is a unique game in its console catalog. A first-person dungeon crawler, with slow movement and lacking voice acting.
-And it is because the developers of its studio, FromSoftware, knew what kind of game they wanted to make,
-their influences being so niche as the game they would end up making: the logical step forward to the 4
-previous dungeon crawlers they made for the _Playstation_.
-
-![kingsfield4_1](/assets/images/kingsfield4/kings_fieldiv_1.jpg){: width="600"}
-
-King's Field IV, is, first and foremost, a game about exploration: the role-playing elements can be ignored most of the time,
-your character raises his attributes automatically when leveling up and there are no dialog options when talking to NPCs.
-The action is there but is more tactical: it's based more in positioning and your ability to not give up the space you dominate
-than in your reflexes.
-
-Yes, there are no dialog options when talking to NPCs: they only tell you what they know of the world and give you advice
-that you should take into account in the future. You don't level-up per se, therefore
-being wary of the stats the different equipment you find in your adventure give you instead. And the combat is slow and methodical: you take a whopping 4 seconds to turn around, and
-so it is more convenient to trust your other senses instead to be able to place every enemy in the room or space you're in and take
-positioning decisions that will reduce the damage you'll take.
-
-In contrast to other, relatively early exploration games like _Super Metroid_, any _Legend of Zelda_ or the post-Sypmhony of the Night Castlevania games,
-_King's Field IV_ seeks to engage the player in digital archeology.
-And so it's no coincidence that in North America, the title of the game was _King's Field IV: The Ancient City_, this ancient city being your archeology grounds.
-
-![kingsfield4_2](/assets/images/kingsfield4/kings_fieldiv_2.jpg){: width="600"}
-
-And archeology rewards observation: in a room, you'll be able to see, through a window, a cell
-that looks to be inaccesible, which tells you that there is a possibility that there's no way to get in through another way from outside. When going out of the room with the window, you can put yourself in front of the right wall of the shut-in cell.
-The observant player may sense that there's a hidden entry on this wall.
-
-Another example: you'll be in a watchtower with a view to the next area of the game, _The Mansion of Howling Winds_,
-connected to your current location via a bridge. Through this view you can notice a path
-at the edge of the cliff where the bridge ends. When crossing it, this path is harder to notice due to the
-camera angles, but you know it's there.
-
-Y _King's Field IV_ rewards thoughtful observant with, yes, items of course, but also with newer areas to explore:
-you'll never be lost, at least not in the bad way, there'll be always a path you haven't taken yet.
-
-Everything in _King's Field IV_ converges for you to familiarize yourself with the world
-in front of you, making a mental projection of it.
-The maps the game gives you are pretty basic (don't expect something like [this](https://jansenprice.com/assets/img/metroid/met5_mp/tallon_overworld.jpg)) and there's
-always the chance that you won't find them in your run.
-
-The fast travel system, for its part, forces you to make a decision few games force you to: were you can teleport to. If you can fast-travel to a certain point, then you won't be able to teleport to others, not while that particular fast-travel point remains active. In the end, this compels you to always be mindful of the location of each and every one of the fast -travel points: the paths that take you to them and the areas that surround it.
-
-Every area you will visit will be interconnected in a logic way, with the city's tower as a central point and with no loading screens in between (not even while fast-traveling): with all of this, _King's Field IV_ achieves in assisting you, or rather, forcing you to build that mental image of its world.
-
-And that mental image represents a realistic setting for archeology: there's a decadent air in every room you enter, what was before a sacred city where different races with different professions used to live in is now its own abyss, filled with hostile creatures and, when you finally step in this ancient city, everything, from the atmosphere to the NPCs' dialogs, will convince you to accept tacitly that you'll probably never get out, or, at least, returning the Idol of Sorrow to its resting place won't be easy, just like the expedition that came before you could witness.
-
-_King's Field IV_ mantains an atmosphere and attention to detail seldom seen since its year of release.
-When you overcome the challenges of the ancient city, giving back the idol of disgrace that ravages through the kingdom, murdering the dark god that brought hell to a former sacred land, you won't stop thinking about the crypts, foundries, forests and burghs that you came across in _King's Field IV_, or at least I hope, because that's what happened to me.
diff --git a/_i18n/en/_posts/2024-04-30-configuring-dape.md b/_i18n/en/_posts/2024-04-30-configuring-dape.md
deleted file mode 100644
index 9a1e383..0000000
--- a/_i18n/en/_posts/2024-04-30-configuring-dape.md
+++ /dev/null
@@ -1,78 +0,0 @@
----
-layout: post
-title: "Configuring Dape: Emacs' new DAP client"
-date: 2024-04-30
-tag: Tutorials
----
-
-A while ago [eglot](https://github.com/joaotavora/eglot), an LSP client, was introduced to emacs core,
-turning it more or less into the emacs' official LSP client, to the detriment of [lsp-mode](https://github.com/emacs-lsp/lsp-mode).
-I love eglot, it's easy to use, configure and it just works, and its integration with other emacs packages and components like
-company and flycheck is seamless. But, if there's an aspect of development that emacs has struggled with, that is, in my opinion, debugging.
-(Although the C/C++ development experience in emacs remains uncontested).
-
-![dape](/assets/images/dape/dape.png){: width="800" }
-
-The developers of the aforementioned lsp-mode also mantain dap-mode, a DAP (LSPs but for debuggers) client for emacs. But
-as you can already guess, it needs lsp-mode, much to the chagrin of eglot users.
-
-But now we have a competitor to dap-mode in the same way that eglot is a competitor to lsp-mode. [Dape](https://github.com/svaante/dape)
-(which isn't that new to be honest, with its first commit dating back to september 29th, 2023).
-
-Unlike dap-mode, it strives to be a minimalist dap client, and it doesn't make use of a launch.json file, relying instead on configurations
-written totally in elisp.
-
-In this post, I'll show an example configuration to use dape with python and flask, but I plan on updating it with more configurations.
-Dape is an extremely interesting project and the fact that it's compatible with ruby's rdbg debug gem catched my eye: emacs can't compete
-right now with vs code as the development environment for ruby, mainly because of debugging. I haven't had luck configuring dap-mode's ruby
-debug mode and it doesn't use rdbg, which is the newest, most up to date, and overall, best gem for debugging ruby. I also would like to check
-debugging vanilla javascript.
-
-But anyway, reading dape's source code we come across this:
-
-```elisp
-command "python"
- command-args ("-m" "debugpy.adapter" "--host" "0.0.0.0" "--port" :autoport)
- port :autoport
- :request "launch"
- :type "python"
- :cwd dape-cwd))
- (common
- `(:args []
- :justMyCode nil
- :console "integratedTerminal"
- :showReturnValue t
- :stopOnEntry nil))
-```
-
-This is the python debugpy configuration. When you install dape, and run it with `M-x dape`, you can select this config.
-And you can assign all the variables you need in order to debug your flask project, mainly, `:args` and `:module`.
-But it's not practical to type all of that everytime you wish to debug your project, so let's jump to your init.file,
-and write the following:
-
-```elisp
-(require 'dape)
-;; Dape configs
-(add-to-list 'dape-configs
- `(debugpy-flask
- modes (python-mode jinja2-mode)
- command "python"
- command-args ["-m" "debugpy.adapter" "--host" "0.0.0.0" "--port" :autoport]
- port :autoport
- :type "python"
- :request "launch"
- :module "flask"
- :args ["--app" "src" "run" "--no-debugger" "--no-reload"]
- :console "integratedTerminal"
- :showReturnValue t
- :justMyCode nil
- :jinja t
- :cwd dape-cwd-fn))
-```
-
-First, we load dape, and then, add another config to the dape-configs list, defined in dape.el.
-As you can see, it is kind of a shameless copy paste of dape's base debugpy config, but with every variable
-set for flask development, like the module to be used (flask) and the CLI arguments it uses (--app, run, etc.)
-There's an issue though, as you can see, the args array defines my app's name as "src", I tried to refer to my app's
-name as a variable, so it could be used for different projects, but alas, I'm not too familiar with dape, or elisp for that matter.
-A possible solution is just to copy this to a .dir-locals.el file for a project wide configuration.
diff --git a/_i18n/en/about.md b/_i18n/en/about.md
deleted file mode 100644
index 02265f7..0000000
--- a/_i18n/en/about.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# About
-
-Blog made in [Jekyll](https://jekyllrb.com) and [Bulma CSS](https://bulma.io/).
-
-## Privacy Notice
-
-This website doesn't collect any tipe of information regarding the user. It doesn't use analytics of any kind
-nor cookies, besides that strictly required for its correct functioning, that it's limited only to the IP address.
-The visitor's IP address it's logged on the server, without any other kind of identifying information, like metadata.
-
-These logs get deleted after 2 weeks of being generated.
-
-## Copyright Notice
-
-Every piece of content hosted on this site, made by me (images, text and code) are under a Creative-Commons Attribution
-NonCommercial-No Derivatives license.
-
-You can share the content shown here, wether on a copy hosted on a different site, on printed form or in any other possible
-medium, being required to only give credit, wether by sharing a URL of the content hosted on this site or only the URL
-(silosneeded.com) from the site if it isn't possible, but you can't make derivative works nor use the content presented here
-in a commercial fashion.
diff --git a/_i18n/en/about_me.md b/_i18n/en/about_me.md
deleted file mode 100644
index c04a0bc..0000000
--- a/_i18n/en/about_me.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# About me
-
-I'm currently a computer science student, close to graduating.
-
-My interests, and what I'll mostly write about in this blog, are:
-
-- Technology
-- Free software
-- Self hosting
-- Videogames
-
-And more.
-
-## Contact
-
-If you want to chat, or you have a question regarding a post I made, please,
-let me know.
-
-### XMPP
-
-**Jabber ID:** hombrelaser@silosneeded.com
-
-Make sure to enable E2EE.
-
-### Matrix
-
-**Matrix ID:** @hombrelaser:matrix.silosneeded.com
-
-### IRC
-
-**Server:** libera.chat
-
-**Nick:** hombrelaser
-
-Sometimes available, most times not. But don't worry, I have a bouncer running, I'll read
-your message sooner or later (Mostly later).
-
-### Email
-
-**Dirección:** buran@silosneeded.com
-
-[PGP public key](/assets/files/pgp_public_key.asc)
-
-### Fediverse
-
-I'm on the fediverse too! I post in english and spanish, occasionally french if the opportunity arises.
-You can follow me [here](https://social.silosneeded.com/users/sunbeam_rider).