Siyuan's Blog

Read(); Think(); Try(); Repeat();

Night light mode for monitors

Recently I switched from Ubuntu 16.04 to Fedora 28 on my desktop PC. After the installation, I noticed that newer version of GNOME has added a night light feature which is the same as night shift on macOS and iOS and the f.lux software. The feature is great. However, it can only adjust the color temperature of the video output and the monitor’s brightness stays constant. As I work besides a big window, I need higher brightness during the day and lower brightness at night.

Fixing a strange GRUB related filesystem error

I’m running a dual-boot desktop system with Fedora 28 and Windows 10. Today a strange error happened to my GRUB2 installation. This post documents how I fixed the error. Here is what happened: I was installing the Logitech software for my mouse in Windows because I need it to tune a new mousepad. After installation completed, it asked me to reboot the system. I did that and when the system boots up again, the normal GRUB boot menu didn’t appear.

Mixing C and C++ code

C and C++ are two closely related programming languages. Therefore, it may not come as a surprise to you that you can actually mix C and C++ code in a single program. However, this doesn’t come automatically when you write your code the normal way. In this blog post, I will describe what makes it possible to mix the two languages and how to achieve that in code. C and C++ linkage When you compile a source file, the function names are mangled.

Linux shared folder management done right

If you’ve ever collaborated with someone on a Linux machine or worked as a system administrator on a multi-user Linux system, chances are you’ve set up shared folders for groups of people to share data. It’s quite easy on Linux. Well, kind of. I mean, you can simply create a group, add relevant users in, and set the shared folder’s owner and permission correctly. However, this approach has a problem: new files and directories created inside a shared folder doesn’t inherit the owner and permission of the shared folder itself.

Vertex-centric graph processing: the what and why

Vertex-centric graph processing is a new programming abstraction/model for writing graph algorithms. I got to know vertex-centric graph processing because my final year project is centered around this topic. I find it to be an interesting idea that enables large-scale graph processing with ease. In this post, I would like to talk about what vertex-centric graph processing is and why it is useful. What is vertex-centric graph processing? Vertex-centric graph processing, as the name suggests, is a new programming abstraction for processing graphs that is centered around the vertices.