I have already explained how to do a basic Raspberry Pi server install. But if you want to do something more exciting with it, perhaps running a Nextcloud instance or setting up a torrent box, you will need more space than just an SD card. That’s why in this post I will show you how to connect external hard drive to Raspberry Pi.
You might consider antivirus software unneccessary on a Linux box. But if you are running a public facing server, it might be a good idea to run it regardless. Why is that? Even though malware probably can’t affect your server much, it can still use it to infect users. To prevent that, we will learn how to install and set up automatic ClamAV scans with email notifications. In the examples below, I am using Debian 9, but the commands should be the same for any Linux distribution.
Install and configure ClamAV
You can easily install the antivirus by running the following command:
$ apt install clamav clamscan
ClamAV is pretty well configured out of the box. Usually, I only change the frequency of virus signature database updates. You can do that in
/etc/clamav/freshclam.conf by changing the
Checks line. Since I run the scan once a day, I lower the frequency of updates to that as well.
This might be the first time you’re hearing about EditorConfig. But don’t worry, I was in the same boat just a couple of months ago. So, what is it? It is a simple file format, that helps keeping coding styles consistent across different editors. And more importantly, across different team members.
How does it work?
EditorConfig consists of two components. Firstly, .editorconfig file, that you put in the root of your project. Secondly, a plugin for the editor of your choice. The .editorconfig file is written in .ini format. You can define things such as number of spaces to indent or whether to use tabs or spaces. Moreover, you can use different settings for different file formats. For complete explanation, head over to the official site. In order to enforce the settings from .editorconfig, you need a plugin for your editor. For the most popular ones, such as Vim, Emacs, Atom, Sublime Text or Brackets, the are plugins readily available. The Jetbrains IDEs even include EditorConfig support in their core.
Red Hook Studios have just released Darkest Dungeon: The Color of Madness. It’s the latest DLC for the critically acclaimed gothic roguelike. In case you haven’t head about it, this RPG is set in Lovecraftian world. So, it is not for the faint of heart. Your heroes will starve, despair, get sick and die. And they will stay dead.
The expansion brings several new features:
- Wave-Based Survival in a New Environment: The Farmstead! Nonstop action! Fight through endless groups of monsters in an effort to reach the comet’s crash.
- Resupply! Bolster your party with consumables obtained from mysterious new curios between waves of combat.
- An All-New Enemy Faction. The Miller and his loyal workmen have become lifeless husks, consumed by the ever-growing crystalline influence that has spread from the comet across the farm…
- 2 New Bosses
- The Miller
- Thing From the Stars (mini-boss)
- Twisted New Trinkets. Available for purchase from the Jeweler, a new vendor in the Nomad Wagon. Put your gold away—he trades only in Comet Shards!
- New tunes! The Farmstead boasts the longest, most involved combat score to date!
I have taken part in the beta testing a I can definitely say you should grab this one. And while you are at it, why don’t you get yourself a copy of Crimson Court as well? If you still need convincing, check the launch trailer:
HTTPS is quickly becoming standard, in no small part thanks to Let’s Encrypt. HTTPS helps keeping ISPs and other third parties from spying on users. But there is one more gaping hole, the DNS protocol. And DNS over TLS aims to plug it.
What is DNS?
“Wait a sec, what’s this DNS stuff?” might be your reaction. DNS, or domain name system, is the Internet’s yellow pages. It translates URLs into IP addresses. So, whenever you type an address into your browser, the computer sends a request to a DNS server. In turn, the DNS server tells it which server to connect to. Most DNS servers use DNSSEC to sign their answers. Thanks to that you be sure the answer you got is not bogus. Unfortunately, the whole communication is in plain text and therefore visible to anyone en route. This is where DNS over TLS comes into picture.
Wordpress is the most popular CMS in the world, powering over 30% of all websites. It owes its popularity to easy of use and a huge number of plugins. The plugins make it possible to turn Wordpress into anything from personal blog a to e-shop. Like others of its kind, Wordpress generates the pages dynamically. In other words, everytime it is accessed, it loads data from database and uses PHP to create a page it serves the visitor. As a result, Wordpress load speed is slower a it requires more resources. That is important point too keep in mind, since over 40% of users leave a page if does not load within 3 seconds.
This is where caching comes into picture. It combines the speed of static sites with the robustness of Wordpress. Instead of generating page on every load, Wordpress saves the resulting page. Other visitors just see this pregenerated static page. This significantly improves Wordpress load speed and saves server resources. And when you post a new article or a comment, the cache is automatically invalidated. So, you don’t have to be afraid, that visitor will see an outdated version.
I have been busy working on a new project for the past several weeks. It has finally reached a state, where I can publicly announce it. So without further ado, welcome Mariner, the command line torrent searcher:
I use torrents for downloading Linux distributions. The reason being, that it is usually faster and easier than digging for the ISOs on the official websites. Still, most torrent trackers are bloated, filled with ads and plagued by popup windows. I could do without those. All this has lead me to write Mariner. As you can see in the animation above, it is a simple command line aplication. It let’s you search for a torrent on multiple trackers at once and find the fastest one. Among other features, it allows you to see the torrent details, download them and directly open them in your torrent application. Moreover, it is asynchronous. That means, it is more responsive than your average web scraper.
If it piqued your interest, you can learn more about Mariner in documentation. Or, you could just check the project page. But if you are looking for a more automatic way to download torrents, check my torrentbox guide.
For the last couple years, mass surveillance has been on the rise. Both governments and private entities alike track our every move online. As a result, our privacy has increasingly eroded. Under such circumstances, it is ever more important to fight for our right for it. But the problem is, that majority of population seems apathetic to this. If you are one of such people, I recommend watching the following TED talk by Glenn Greenwald. It nicely sums up why privacy matters.
You might have noticed a new entry quietly appearing on the project page. So, let me introduce it to you. The new entrant is Blog Terminal, a Wordpress plugin for drawing a terminal-like box, complete with prompt. If you have read some of my other blog posts, Blog Terminal is what powers the terminal boxes in them. For the longest time I have used Post Terminal plugin by Brandon Griffith. But there were some things I did not like about it. Namely, it was not possible to draw a terminal without a prompt (for showing example configs). Furthermore, since it did not take advantage of many of the Wordpress APIs, the code was unnecessarily complicated. This made it hard to add new features. Therefore, I have decided to completely rewrite it.
After a couple of busy weeks, I finally found myself with some free time. There were a couple of interesting game releases that I wanted to check out. Unfortunately, that did not go so well in OpenSuse, with Steam not working. I was welcomed by the following error:
symbol lookup error: /usr/lib/libxcb-dri3.so.0: undefined symbol: xcb_send_request_with_fds
It seems that Steam does not work as smooth in OpenSuse as in Ubuntu. Luckily, the fix was quite easy. You can disable the library in question using an environment variable. So I just set it when launching Steam:
$ host +x $ LIBGL_DRI3_DISABLE=1 steam
Once I did that, the Steam launched normally and updated itself. After that, the problem disappeared, therefore I could just can run Steam normally. Time to try out Shieldbreaker, the new Darkest Dungeon DLC, with Steam controler. If you still have trouble running Steam, this might help you. Meanwhile, here’s hoping that the Steam Linux Integration project comes to Opensuse as well, for a seamless Steam experience.