Adrian Lita

How to setup a nice and simple backup script on Ubuntu

By: Adrian Lita

Published on: 2018-10-16

Keywords: #ubuntu18 #backup #bash #cron #mysql #apache2 #files

 

These days, while setting up a new server, in the evening, while being a bit tired I mananged to destroy 2 days' work, simply because I had no backup solution installed. Simply not wanting to pay more on a backup solution, since I have a VPS and it's very handy and cheap, I've decided to build my own backup solution, simple, effective and free :) The only things I needed to backup were actual files and some of the MySQL databases. To be able to follow my tutorial 100%, you will need the following:...

Read More >

Square root approximate calculation function for 32bit embedded C

By: Adrian Lita

Published on: 2018-07-23

Keywords: #sqrt #fast-sqrt #c #embedded #32bit #snippet

 

These days I needed to implement in an embedded algorithm a simple RMS (Root Mean Squre) calculation over an analog-to-digitally converted signal. My most eager and resource consuming problem was, after the efficient accumulation of data (calculating the sum of squares), I needed to extract the square root. After a couple of Google searches, I found the Newtonian method for calculating the square root pretty effective, and I also found a C-implementation that I'm sharing with you (credits go...

Read More >

Generating all combinations of a string using the binary counter method

By: Adrian Lita

Published on: 2018-06-26

Keywords: #combinations #string #strings #binary-counter #academic #snippet #counter

 

Generating all k-combinations of n elements can be done in various ways. Here I'm preseting to you, for academic purpose, the binary counter method. First of all, let's calculate how many k-combinations of n exists: /* Calculates kCn kCn = n!/(k! * (n-k)!) */ unsigned int total_combinations(int n, int k) { //error if (k > n) { return 0; } unsigned int c = 1; //final result //check which one is greater,...

Read More >

Generating all permutations of a string with Heap's method

By: Adrian Lita

Published on: 2018-06-19

Keywords: #permutation #string #strings #academic #snippet #heap

 

Generating permutations can sometimes be a difficult task. The number of permutations is given by the factorial of the total number of elements: unsigned int total_permutations(unsigned int n) { unsigned int p = 1; for (int i = 2; i <= n; i++) { p *= i; } return p; } The function above only works to a n of about 12 on 32bit machines before the result exceeds that. So for n equals 12 we have about 479.001.600!!! permutations possible. For sure, that takes a lot of time to process. Anyhow,...

Read More >

Swapping numbers without the third variable

By: Adrian Lita

Published on: 2018-06-12

Keywords: #swapping #variables #academic #snippet #xorswap #xor

 

While not recommeded to be used in modern programming, this simple method allows swapping the values of 2 variables without the need of the third. Some caution should be taken into consideration, because this method works as long as both the variables that needed to be swapped are different (read: occupy different memory). void xorSwap(int *a, int *b) { *a = *a ^ *b; *b = *b ^ *a; *a = *a ^ *b; } This is the simplest variant of the xorSwap. Several...

Read More >