Blog

Main posts for this site

RIP Kevin Mitnick

Category: person

Kevin Mitnick died at age of 59 on July 16 after a 14-month battle with pancreatic cancer.

Kevin Mitnick was famous (Legend actually) hacker from 90’s, and still active with his own cybersecurity company

Some quote from Wikipedia

Mitnick served five years in prison—four-and-a-half years' pre-trial and eight months in according to Mitnick, law enforcement officials convinced a judge that he had the ability to "start a nuclear war by whistling into a pay phone", implying that law enforcement told the judge that he could somehow dial into the https://en.wikipedia.org/wiki/NORAD modem via a payphone from prison and communicate with the modem by whistling to launch.

Kevin_Mitnick.jpg

#javascript, #algorythms

Life simulation

Category: howto

How to make a little life simulation in javascript in browser, found easy to learn repo with various life patterns by @brainxyz

This kind of code is ideal for education of javascript canvas using, its easy to understands and works in browser.

I’ve modified code a little, and achieve some stability with virus like structures which consume other particles.

Here is a gist for that code: https://gist.github.com/noroot/a3a5d4ae2d367530c8d5a0c13ca2ee75

How it works:

  • There is a js canvas where all drawing is happening
  • There is an atom entity which is structure of position(x,y), velocity(x,y), color
  • Threr is a rule function which defines relations between particles
  • There is a configuration object that defines relation between particles using rule method
  • There is infinity loop of animation
  • Before animation starts it creates arrays of different types of particles

References:

Interactive example in details below

#linux, #tools, #management

How I manage files v1 DRAFT

Category: howto

There is a long story of copying files between disks and flash dongles. Behind more than 15 years of computing experience, I’ve finally found the way.

The Root Cause

What do we do in the past? We have an external USB flash drive which was carried around with us if needed. Usually was used only for certain files to be moved from one to another computer. We have full control of our files and have to manually check what we sync and often do mistakes and overwrite some stuff. There are many solutions on market offering you some kind of synchronizations platforms for all of your stuff, - Calendars, Documents, Photographies I may say it all started with Dropbox and Google Disk, which was later complemented by Evernote, Google Docs, Simple Note, and many others such Notion (very popular these days), and the root cause of it is that you are not own your files, and have no access to it if you have no internet, losing functional control of interface without connection.

All products have nothing to offer as common standards to store and operate with files and this is a big problem, as a marketing feature they usually offer some kind of import from one system to another to make users agree easier to step into the platform.

What are they usually offer?

Synchronization (most people these days have at least 2 devices, iPhone + laptop ) Interface (web application working in browser) All of these services do offer not standardised formats and structures which even differ from computer structure and usually cannot be exported/imported as just files and directories. How you can rely on a system that can be off at any time, or if you are off the internet you need to access your files...

#linux, #tools, #management

ActivityWatch - open source time tracker

Category: tools

Recently taken a look on this project for automated timetracking based on window titles. There are a lot of solutions for MacOS, and maybe Windows, but since then there was no good solution for Linux, and here it is, fully cross platform project called ActivityWatch

Features

  • Tracking: Tracks active application and window title out of the box, more with watchers.
  • Categories: Get a better overview of your usage by breaking it down into categories.
  • Browser extensions: Track the active tab using the extensions for Chrome and Firefox.
  • Editor plugins: Track how you spend time writing code with editor watchers.
  • Privacy: Data is stored locally and doesn’t leave your device, we put local and privacy first.
  • Cross-platform: Runs on Windows, macOS, Linux, and Android.
  • Synchronization: Sync your activity between your devices. (In Progress)

Github: https://github.com/ActivityWatch/activitywatch

Go more for screenshots

#linux, #tools

Opensource Fortinet client for Linux

Category: howto

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

Problem

  • 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

Solution

Here is a project called OpenfortGUI

Compile from source code

git clone https://github.com/theinvisible/openfortigui

git submodule init && git submodule update

cd openfortigui

git submodule init && git submodule update

qmake openfortigui-project.pro -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

Install

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/

Usage

sudo openfortigui

References

#linux, #git

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

Solution

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...

#algo

QOI lossless image comperession proposal

Category: notes

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

В кратце:

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

Benchmark

1
2
3
4
5
images/screenshots/news.ycombinator.com.png: 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
1
2
3
4
5
6
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

QOI SAMPLE

#hardware, #games, #predictions

Cartridge game storage for PC

Category: forecasts

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.