Opensource Fortinet client for Linux

Category: tools

There is a services called Fortinet, it is usually been used inside corporate networks and projects who needs private VPN for employees


  • There is now good GUI client for Linux, official client is trial based and will stop work after trial period.
  • Official terminal based client is no good too, very unusable
  • Cannot see connection status


Here is a project called OpenfortGUI

Compile from source code

git clone

git submodule init && git submodule update

cd openfortigui

git submodule init && git submodule update

qmake -spec linux-g++ CONFIG+=debug CONFIG+=qml_debug && /usr/bin/make -j4

sudo dnf install qt5-qtbase-devel openssl-devel qtkeychain-qt5-devel -y

qmake && make -j4

/usr/lib64/qt5/bin/qmake && make -j4


sudo cp openfortigui/app-entry/openfortigui.png /usr/share/pixmaps

sudo cp openfortigui/app-entry/openfortigui.desktop /usr/share/applications

sudo cp openfortigui/openfortigui /usr/bin/




How to manage your dotfiles with git

Category: howto

How to manage your [dot] files with git. First of all what is dotfiles ? For those who don’t konw dotfiles is configuration files inside your home directory file names and directories starts with a “.” thats why it’s called dotfiles.

The problem ?

  • I want to manage it with a git repositry
  • I don’t want to mess with all files inside home directory as untracked git files


I’ve started search for solution and it gets me to this article Method it self as it mention in article has been proposed on hacker news

it was simple and plain in terms of linux way

Step 1

Choose directory where your repository will be stored for instance ~/Dotfiles

Step 2

Got inside and make git bare repostory

cd ~/Dotfiles

git init --bare .

Bare repository is repository without a working directory so it’s contains of git internals structure itself to store objects added to repostory

You better know what is bare git repository here

Step 3

Setup special alias for git command to work with ~/Dotfiles

alias dotfiles='/usr/bin/git --git-dir=$HOME/Projects/Personal/Dotfiles/ --work-tree=$HOME'

Make this alias permanent by adding it to your .bashrc or .zshrc configuraton

Step 4

Make git stop showing untracked files

dotfiles config status.showUntrackedFiles no

Step 5 Finally

dotfiles add ~/.zshrc

dotfiles -m "Add zsh configuraton"

That’s it. If you want to push to remote add origin before and push it same way

dotfiles add origin URL

dotfiles push origin master

Since dotfiles is special alias for git you can do dotfiles status when editing your configs to see what files have been changed.

Why this is good solution...

В чем я рисую схемы ? (Camunda Modeler)

Category: tools

Многие с спрашивают в чем я рисую вот такие схемы схемы ?


Ответ Camunda Modeler, - это инструмент для рисования BPMN, но он хорошо подходит для быстрого рисования каких угодно простых блочных схем

Скачать можно Здесь

QOI lossless image comperession proposal

Category: feed

Dominic Szablewski предложел алгоритм сжатия изображений за O(n) время

В кратце:

  • Сжатие 20-50 раз быстрее
  • Декомпрессия 3-4 раза быстрее
  • Размер на выходе больше на 20%
  • 300 строк на C


images/screenshots/ 1325x1450
        decode ms   encode ms   decode mpps   encode mpps   size kb
libpng:       8.6        79.9        223.22         24.03       289
stbi:         6.0       157.4        319.14         12.21       333
qoi:          3.0         3.8        649.95        502.49       288
images/wallpaper/Hy23XKX.png: 3440x1440
        decode ms   encode ms   decode mpps   encode mpps   size kb
libpng:      81.7      2126.3         60.63          2.33      7378
stbi:        91.8      1060.9         53.94          4.67     11093
qoi:         35.4        54.6        140.00         90.77      7653

Full benchmark list


Cartridge game storage for PC

Category: analytics

Modern computer games became very heavyweight these days. Here are the top10 games by size on disk.

  1. Quantum Break – 178GB.
  2. Call of Duty: Modern Warfare – 175GB.
  3. Destiny 2: Shadowkeep – 165GB.
  4. Red Dead Redemption 2 – 150GB.
  5. Final Fantasy XV – 148GB.
  6. Call of Duty: Black Ops III – 113GB.
  7. Gears of War 4 – 112.3GB.
  8. Call of Duty: Infinite Warfare – 101GB.
  9. Middle Earth: Shadow Of War – 95GB
  10. Deus Ex: Mankind Divided – 77GB

This is a list of AAA grade games(high-quality graphics and other game assets that weigh more than average). SSD price today is about ~50$-~100$ for 250GB-500GB, so it’s almost clear that one SSD disk can fit one game + OS. For end-user, it’s almost nonsense to have a computer that can handle only one game per time, rather than have a console.

My prediction is that publishers will switch to SSD as carrying storage for games, they will invent a universal proprietary crossplatform cartridge format based on M.2 SATA interface.

Fedora browser spyware

Category: tips privacy

Installing Fedora distribution Brave browser be aware of it, - default plugin is changing User-Agent header to track that you’re using Fedora. Same suitable for fedora’s Firefox, but you can’t change it, it’s compiled in. Details under cut.

PiHole + dnscrypt-proxy = internet sewage filter

Category: tools

Modern Internet is bloated. But it is possible to make it less bloated. You have to install those programs:

  • PiHole - will be your dns manager with black and white lists;
  • dnscrypt-proxy - will be your safe dnsscrypt proxy to encrypted dns servers;

Setup suitable for GNU/Linux and MacOS

Installing PiHole

  • Run curl -sSL | bash

Installing dnscrypt-proxy

Follow this

After that you have to say to PiHole to use your dnscrypt-proxy

  • Setup your DNS server to the address which you’re install PiHole
  • Go To https://pi.hole (only resolves if you’re setup your dns IP properly)
  • Settings -> DNS (Tab) -> Upstream DSN Servers uncheck everything here
  • Settings -> DNS (Tab) -> Upstream DNS Servers -> Custom 1, put here your dnsscrypt-proxy address#port string

Next, goto to your current computer and other devices network connection settings, and set DNS to your pi.hole IP address, ( if you did it locally).

Done. You’re now using much safer and less bloated internet.


  • Your daily dns traffic will be cleaner from 10% to 25%

  • Very rare some sites or rich web applications may not working, be aware of that.

  • Better to install it on seprate raspberry-pi.

Webmention is POSSE compliant mechanism for commenting

Category: tools how-to

Lets try Webmnention.

Webmention is a simple way to notify any URL when you mention it on your site. From the receiver's perspective, it's a way to request notifications when other sites mention it.

This spec written by Aaron Paretcki, this mechanism allows post comments on your site and mention it on another sites following POSSE principles, - Publish On Site, Syndicate Elsewhere.

in reply to: @aaronpk

Hi Aaron, thanks for Webmentions, trying out this guide to sending webmentions.

How I read RSS/Atom

Category: tools how-to

How do you read modern internet ? Dunno, but I do it with Newsboat, - is a RSS/Atom reader for text console and It’s written with C++ so you can have a lot of fun to learn.

Main features:

  • Simple feed list stored in textfile
  • Tagging
  • Support for ATOM
  • Support for 3dparty RSS systems authentication and password for external APIs

Take a look below to understand how it looks

Step here into documentation

Jekyll mail comments

Category: tools

This blog is made with Jekyll. Jekyll is static site generator. It never have good commenting mechanism, there are few options like integration of 3dparty javascript code, or write some logic with database, or search for plugin. I wrote my own with ruby, without any javascript code nor database invovled. Program take your emails from IMAP directory and generate tree based comments page for Jekyll. User can reply by answering to my email with specific subject. This is a good old way for full-fledged conversations without so called “likes” and “reactions”. It is also premoderated by design, - until you run fetch procedure no comments will be added to your Jekyll site. Comments stored in special json formatted data files, which are compatible with the Jekyll’s Data files mechanism.

I made it as a ruby Gem package option, check it out here

Undercut contains README file from repository, and comments.

Feel free to comment, I’ve already installed it onto this blog, go ahead to try.