Skip to content

Instantly share code, notes, and snippets.

View bravikov's full-sized avatar

Dmitry Bravikov bravikov

View GitHub Profile
@bravikov
bravikov / azimuth.py
Created April 3, 2020 15:57
Get an azimuth and a distance between two points
from geographiclib.geodesic import Geodesic
'''
Возвращает азимут по направлению от координаты 1 к координате 2
и расстояние между этими координатами.
Результат помещается в словарь с полями:
'distance' (расстояние),
'azimuth' (азимут).
Поля содержат значения типа float.
@bravikov
bravikov / main.cpp
Created March 11, 2019 18:31
A test of Valgrind Massif utility.
/* A test of Valgrind Massif utility.
*
* Usage:
*
* g++ main.cpp
* valgrind --tool=massif --time-unit=ms ./a.out
*
*/
#include <thread>
@bravikov
bravikov / child-reference.cpp
Last active February 18, 2019 07:27
A reference to an object of a child class
// A reference to an object of a child class
#include <iostream>
class A
{
public:
virtual ~A() {}
virtual void print() { std::cout << "A" << std::endl; }
};
@bravikov
bravikov / fibonacci.py
Last active March 9, 2018 10:16
Fibonacci number
# run: python3 fibonacci.py
def fibonacci(n):
if n == 0:
return 0
if n < 0:
return int(-1**n) * fibonacci(-n)
current = 1;
previous = 0;
for i in range(1, n):
@bravikov
bravikov / qt-print-html.cpp
Last active March 1, 2017 18:14
Печать HTML-документа в Qt 5.8
#include <QDebug>
#include <QPrinter>
#include <QPrintDialog>
#include <QPrinterInfo>
#include <QWebEnginePage>
void MainWindow::on_printButton_clicked()
{
QPrinter * printer = new QPrinter();
@bravikov
bravikov / сортировка_по_расширению_файла.py
Last active August 29, 2015 14:18
Скрипт сортирует файлы в папки по расширению
''' Рекурсивно получает список файлов в заданной папке. И копирует файлы в
другую заданную папку, сортируя их по расширению.
Для каждого расширения создается своя папка, имя которой совпадает с
расширением. Файлы без расширения помещаются в папку Прочее.
Если имена файлов с одним расширением повторяются, то для расширения создается
еще одна папка и к имени папки добавляется суффикс _N, где N равно 1, 2 и т. д.
Символьные ссылки игнорируются.
@bravikov
bravikov / SQLite.sql
Last active September 1, 2015 05:03
Запросы для SQLite
-- Выдает таблицу чисел из заданного диапазона с определенным шагом.
-- Если шаг не кратен максимуму, то выдаст одно число больше максимума.
with numbers(n) as (
select -100 -- Минимум
union all
select n + 1 -- Шаг
from numbers
where n < 100 -- Максимум
)
select * from numbers;
@bravikov
bravikov / debug.c
Last active May 25, 2019 21:59
Вывод отладочных сообщений через USART STM32
/* Вывод отладочных сообщений через USART STM32.
* Работает как минимум на STM32F0, STM32F1, STM32F4, STM32F7.
* Работает как функция printf() стандартной библиотеки Си. */
#include <stdio.h>
#include <stdarg.h>
void debug(const char * format, ...);
void debug(const char * format, ...)
@bravikov
bravikov / russian-decimal-point.s
Last active August 29, 2015 13:57
MDK-ARM: запятая в качестве десятичного разделителя
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Определение русского десятичного разделителя.
;
; Файл предназначен для программирования в среде Keil MDK-ARM.
;
; В настройках проекта на вкладке Asm в поле Include Paths
; требуется указать каталог, в котором расположен файл rt_locale.s.
; По умолчанию этот файл расположен в "C:\Keil\ARM\ARMCC\include".
;
@bravikov
bravikov / generate_numbers_from_0_to_99999.sql
Last active December 27, 2015 07:19
Генерирует числовую последовательность от 0 до 99999
select
n10000.n * 10000 + n1000.n * 1000 + n100.n * 100 + n10.n * 10 + n1.n as n
from (
select 0 n union select 1 union select 2 union select 3 union
select 4 union select 5 union select 6 union select 7 union
select 8 union select 9
) n1, (
select 0 n union select 1 union select 2 union select 3 union
select 4 union select 5 union select 6 union select 7 union
select 8 union select 9