Compare commits

...

14 Commits

Author SHA1 Message Date
c36bbc9678 local 2019-08-29 17:19:41 +03:00
5661034292 Qt: Обмен бинарными данными 2019-06-20 06:56:39 +03:00
322cd0643e next 2019-06-03 16:39:27 +03:00
bf0c4a6c26 next 2019-06-03 10:49:50 +03:00
3b34f960b5 Merge branch 'asciidoc' 2019-06-03 10:04:55 +03:00
02568f482b text 2019-06-03 10:03:24 +03:00
e312541ae7 orfo 2019-06-03 02:26:28 +03:00
f3206726a0 text 2019-06-02 19:31:29 +03:00
adb7098d1c next 2019-06-02 19:30:00 +03:00
f56fff2bd3 Тема 2019-06-02 13:26:42 +03:00
d02e8b7e76 next 2019-06-02 13:20:51 +03:00
f8a740a624 text 2019-05-28 15:57:56 +03:00
0003a98c30 text 2019-05-28 14:15:34 +03:00
0bc4923a7b text 2019-05-28 13:33:01 +03:00
55 changed files with 295 additions and 467 deletions

2
.gitignore vendored
View File

@ -7,4 +7,6 @@ __pycache__
wiki/trash wiki/trash
wiki/notes.sqlite wiki/notes.sqlite
upload.sh upload.sh
wiki/**/*.png
wiki/**/*.png.cache

3
.gitmodules vendored
View File

@ -23,3 +23,6 @@
[submodule "plugins/thirdparty/replacer"] [submodule "plugins/thirdparty/replacer"]
path = plugins/thirdparty/replacer path = plugins/thirdparty/replacer
url = git@github.com:/narusemotoki/replacer url = git@github.com:/narusemotoki/replacer
[submodule "plugins/thirdparty/asciidoctor"]
path = plugins/thirdparty/asciidoctor
url = git@git.246060.ru:f1x1t/pelican-asciidoctor

View File

@ -1,9 +1,9 @@
build: build:
pelican pelican -s pelicanconf.py
pdf: web:
pelican -s pelicanconf-full.py pelican -s pelicanconf-web.py
clean: clean:
rm -rf cache-html cache-full cache __pycache__ rm -rf cache __pycache__

View File

@ -1,6 +1,11 @@
Сайт ДСП Сайт ДСП
======== ========
```sh
sudo apt-get install pelican asciidoctor ruby-asciidoctor-pdf plantuml yui-compressor
sudo gem install asciidoctor-diagram
```
Установка: Установка:
```sh ```sh

View File

@ -1,116 +0,0 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
import os
class i18n(object):
# looks for translations in
# {LOCALE_DIR}/{LANGUAGE}/LC_MESSAGES/{DOMAIN}.mo
# if not present, falls back to default
DOMAIN = 'messages'
LOCALE_DIR = '{THEME}/translations'
LANGUAGES = ['ru']
NEWSTYLE = True
__name__ = 'i18n'
def register(self):
from pelican.signals import generator_init
generator_init.connect(self.install_translator)
def install_translator(self, generator):
import gettext
try:
translator = gettext.translation(
self.DOMAIN,
self.LOCALE_DIR.format(THEME=THEME),
self.LANGUAGES)
except (OSError, IOError):
translator = gettext.NullTranslations()
generator.env.install_gettext_translations(translator, self.NEWSTYLE)
# ABOUT_ME = ' '
AUTHOR = 'Андрей Астафьев'
SITENAME = 'ДСП'
SITEURL = 'https://dsp.246060.ru'
PATH = 'wiki'
CACHE_PATH = 'cache-ascii'
TIMEZONE = 'Europe/Moscow'
DEFAULT_LANG = 'ru'
# Generation time
CACHE_CONTENT = True
LOAD_CONTENT_CACHE = True
# Feed generation is usually not desired when developing
FEED_ALL_ATOM = None
CATEGORY_FEED_ATOM = None
TRANSLATION_FEED_ATOM = None
AUTHOR_FEED_ATOM = None
AUTHOR_FEED_RSS = None
USE_FOLDER_AS_CATEGORY = True
DEFAULT_DATE = 'fs'
STATIC_PATHS = [ 'images', 'files', 'extras' ]
EXTRA_PATH_METADATA = {
'extras/favicon.ico': {'path': 'favicon.ico'},
}
DISPLAY_CATEGORIES_ON_MENU = False
DISPLAY_CATEGORIES_ON_SIDEBAR = True
DISPLAY_TAGS_ON_SIDEBAR = True
THEME = 'themes/bootstrap4'
BOOTSTRAP_THEME = 'litera'
I18N_TEMPLATES_LANG = 'ru'
I18N_GETTEXT_NEWSTYLE = True
I18N_GETTEXT_LOCALEDIR = 'themes/bootstrap4/translations'
I18N_GETTEXT_DOMAIN = 'messages'
JINJA_ENVIRONMENT = {'extensions': ['jinja2.ext.i18n']}
PLUGIN_PATHS = ["plugins/official", "plugins/thirdparty"]
PLUGINS = [i18n(), "pelican-css", "pelidoc", "series", "subcategory", "tag_cloud", "tipue_search", "replacer", "asciidoctor"]
PDF_PROCESSOR = True
ASCIIDOCTOR_CMD = "asciidoctor"
ASCIIDOCTOR_IMAGES_PATH = '{}/wiki/images'.format(os.getcwd())
ASCIIDOCTOR_EXTRA_OPTIONS = [
'--require', 'asciidoctor-diagram',
'--attribute=imagesdir='+ASCIIDOCTOR_IMAGES_PATH,
]
REPLACES = (
('{}/wiki/'.format(os.getcwd()), u''),
)
YUICOMPRESSOR_EXECUTABLE = "yui-compressor"
YUICOMPRESSOR_EXTRA_OPTIONS = ["--nomunge"]
#PLUGINS += ["yuicompressor-opt"]
DIRECT_TEMPLATES = ('index', 'categories', 'authors', 'archives', 'search')
# Blogroll
LINKS = ()
# LINKS = (('Pelican', 'http://getpelican.com/'),
# ('Python.org', 'http://python.org/'),
# ('Jinja2', 'http://jinja.pocoo.org/'),
# ('You can modify those links in your config file', '#'),)
# Social widget
SOCIAL = ()
# SOCIAL = (('You can add links in your config file', '#'),
# ('Another social link', '#'),)
PYGMENTS_STYLE='pastie'
DEFAULT_PAGINATION = 20
# Uncomment following line if you want document-relative URLs when developing
RELATIVE_URLS = True

View File

@ -1,116 +0,0 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
import os
class i18n(object):
# looks for translations in
# {LOCALE_DIR}/{LANGUAGE}/LC_MESSAGES/{DOMAIN}.mo
# if not present, falls back to default
DOMAIN = 'messages'
LOCALE_DIR = '{THEME}/translations'
LANGUAGES = ['ru']
NEWSTYLE = True
__name__ = 'i18n'
def register(self):
from pelican.signals import generator_init
generator_init.connect(self.install_translator)
def install_translator(self, generator):
import gettext
try:
translator = gettext.translation(
self.DOMAIN,
self.LOCALE_DIR.format(THEME=THEME),
self.LANGUAGES)
except (OSError, IOError):
translator = gettext.NullTranslations()
generator.env.install_gettext_translations(translator, self.NEWSTYLE)
# ABOUT_ME = ' '
AUTHOR = 'Андрей Астафьев'
SITENAME = 'ДСП'
SITEURL = 'https://dsp.246060.ru'
PATH = 'wiki'
CACHE_PATH = 'cache-ascii'
TIMEZONE = 'Europe/Moscow'
DEFAULT_LANG = 'ru'
# Generation time
CACHE_CONTENT = True
LOAD_CONTENT_CACHE = True
# Feed generation is usually not desired when developing
FEED_ALL_ATOM = None
CATEGORY_FEED_ATOM = None
TRANSLATION_FEED_ATOM = None
AUTHOR_FEED_ATOM = None
AUTHOR_FEED_RSS = None
USE_FOLDER_AS_CATEGORY = True
DEFAULT_DATE = 'fs'
STATIC_PATHS = [ 'images', 'files', 'extras' ]
EXTRA_PATH_METADATA = {
'extras/favicon.ico': {'path': 'favicon.ico'},
}
DISPLAY_CATEGORIES_ON_MENU = False
DISPLAY_CATEGORIES_ON_SIDEBAR = True
DISPLAY_TAGS_ON_SIDEBAR = True
THEME = 'themes/bootstrap4'
BOOTSTRAP_THEME = 'litera'
I18N_TEMPLATES_LANG = 'ru'
I18N_GETTEXT_NEWSTYLE = True
I18N_GETTEXT_LOCALEDIR = 'themes/bootstrap4/translations'
I18N_GETTEXT_DOMAIN = 'messages'
JINJA_ENVIRONMENT = {'extensions': ['jinja2.ext.i18n']}
PLUGIN_PATHS = ["plugins/official", "plugins/thirdparty"]
PLUGINS = [i18n(), "pelican-css", "pelidoc", "series", "subcategory", "tag_cloud", "tipue_search", "replacer", "asciidoctor"]
PDF_PROCESSOR = True
ASCIIDOCTOR_CMD = "asciidoctor"
ASCIIDOCTOR_IMAGES_PATH = '{}/wiki/images'.format(os.getcwd())
ASCIIDOCTOR_EXTRA_OPTIONS = [
'--require', 'asciidoctor-diagram',
'--attribute=imagesdir='+ASCIIDOCTOR_IMAGES_PATH,
]
REPLACES = (
('{}/wiki/'.format(os.getcwd()), u''),
)
YUICOMPRESSOR_EXECUTABLE = "yui-compressor"
YUICOMPRESSOR_EXTRA_OPTIONS = ["--nomunge"]
#PLUGINS += ["yuicompressor-opt"]
DIRECT_TEMPLATES = ('index', 'categories', 'authors', 'archives', 'search')
# Blogroll
LINKS = ()
# LINKS = (('Pelican', 'http://getpelican.com/'),
# ('Python.org', 'http://python.org/'),
# ('Jinja2', 'http://jinja.pocoo.org/'),
# ('You can modify those links in your config file', '#'),)
# Social widget
SOCIAL = ()
# SOCIAL = (('You can add links in your config file', '#'),
# ('Another social link', '#'),)
PYGMENTS_STYLE='pastie'
DEFAULT_PAGINATION = 20
# Uncomment following line if you want document-relative URLs when developing
RELATIVE_URLS = True

View File

@ -36,7 +36,7 @@ SITENAME = 'ДСП'
SITEURL = 'https://dsp.246060.ru' SITEURL = 'https://dsp.246060.ru'
PATH = 'wiki' PATH = 'wiki'
CACHE_PATH = 'cache-ascii' CACHE_PATH = 'cache'
TIMEZONE = 'Europe/Moscow' TIMEZONE = 'Europe/Moscow'
@ -75,7 +75,7 @@ I18N_GETTEXT_DOMAIN = 'messages'
JINJA_ENVIRONMENT = {'extensions': ['jinja2.ext.i18n']} JINJA_ENVIRONMENT = {'extensions': ['jinja2.ext.i18n']}
PLUGIN_PATHS = ["plugins/official", "plugins/thirdparty"] PLUGIN_PATHS = ["plugins/official", "plugins/thirdparty"]
PLUGINS = [i18n(), "pelican-css", "pelidoc", "series", "subcategory", "tag_cloud", "tipue_search", "replacer", "asciidoctor"] PLUGINS = [i18n(), "pelican-css", "series", "subcategory", "tag_cloud", "tipue_search", "replacer", "asciidoctor"]
ASCIIDOCTOR_CMD = "asciidoctor" ASCIIDOCTOR_CMD = "asciidoctor"
@ -87,6 +87,7 @@ ASCIIDOCTOR_EXTRA_OPTIONS = [
'--attribute=pygments-css=class', '--attribute=pygments-css=class',
'--attribute=lang=ru', '--attribute=lang=ru',
'--attribute=figure-caption=Рис.', '--attribute=figure-caption=Рис.',
'--attribute=toc-title=Содержание',
'--attribute=experimental', '--attribute=experimental',
] ]
@ -94,8 +95,8 @@ REPLACES = (
('{}/wiki/'.format(os.getcwd()), u''), ('{}/wiki/'.format(os.getcwd()), u''),
) )
#YUICOMPRESSOR_EXECUTABLE = "yui-compressor" YUICOMPRESSOR_EXECUTABLE = "yui-compressor"
#YUICOMPRESSOR_EXTRA_OPTIONS = ["--nomunge"] YUICOMPRESSOR_EXTRA_OPTIONS = ["--nomunge"]
PLUGINS += ["yuicompressor-opt"] PLUGINS += ["yuicompressor-opt"]
PDF_PROCESSOR = True PDF_PROCESSOR = True

View File

@ -36,7 +36,7 @@ SITENAME = 'ДСП'
SITEURL = 'https://dsp.246060.ru' SITEURL = 'https://dsp.246060.ru'
PATH = 'wiki' PATH = 'wiki'
CACHE_PATH = 'cache-ascii' CACHE_PATH = 'cache'
TIMEZONE = 'Europe/Moscow' TIMEZONE = 'Europe/Moscow'
@ -75,7 +75,7 @@ I18N_GETTEXT_DOMAIN = 'messages'
JINJA_ENVIRONMENT = {'extensions': ['jinja2.ext.i18n']} JINJA_ENVIRONMENT = {'extensions': ['jinja2.ext.i18n']}
PLUGIN_PATHS = ["plugins/official", "plugins/thirdparty"] PLUGIN_PATHS = ["plugins/official", "plugins/thirdparty"]
PLUGINS = [i18n(), "pelican-css", "pelidoc", "series", "subcategory", "tag_cloud", "tipue_search", "replacer", "asciidoctor"] PLUGINS = [i18n(), "pelican-css", "series", "subcategory", "tag_cloud", "tipue_search", "replacer", "asciidoctor"]
ASCIIDOCTOR_CMD = "asciidoctor" ASCIIDOCTOR_CMD = "asciidoctor"
@ -87,6 +87,7 @@ ASCIIDOCTOR_EXTRA_OPTIONS = [
'--attribute=pygments-css=class', '--attribute=pygments-css=class',
'--attribute=lang=ru', '--attribute=lang=ru',
'--attribute=figure-caption=Рис.', '--attribute=figure-caption=Рис.',
'--attribute=toc-title=Содержание',
'--attribute=experimental', '--attribute=experimental',
] ]
@ -98,7 +99,7 @@ YUICOMPRESSOR_EXECUTABLE = "yui-compressor"
YUICOMPRESSOR_EXTRA_OPTIONS = ["--nomunge"] YUICOMPRESSOR_EXTRA_OPTIONS = ["--nomunge"]
#PLUGINS += ["yuicompressor-opt"] #PLUGINS += ["yuicompressor-opt"]
#PDF_PROCESSOR = True PDF_PROCESSOR = True
# Blogroll # Blogroll
LINKS = () LINKS = ()

View File

@ -1,8 +1,8 @@
= LaTeX: висячие строки = LaTeX: висячие строки
:title-separator: {sp}|
:category: LaTeX :category: LaTeX
:tags: LaTeX, текст, :tags: LaTeX, текст,
Пакет https://www.ctan.org/pkg/nowidow[`nowidow`] используется для Пакет https://www.ctan.org/pkg/nowidow[`nowidow`] используется для
изменения алгоритма размещения висячих строк. Пример: изменения алгоритма размещения висячих строк. Пример:

View File

@ -1,4 +1,5 @@
= LyX: редактирование ЕСПД = LyX: редактирование ЕСПД
:title-separator: {sp}|
:category: LaTeX :category: LaTeX
:tags: LaTeX, текст, LyX, :tags: LaTeX, текст, LyX,
@ -10,7 +11,7 @@
sudo apt-get install lyx texlive-xetex sudo apt-get install lyx texlive-xetex
---- ----
Установить стили LaTeX для ЕСПД: Установить стили LaTeX для http://tiny.cc/u8eo7y[ЕСПД]:
[source,sh] [source,sh]
---- ----
@ -34,54 +35,71 @@ git clone https://git.246060.ru:/f1x1t/lyx-layout-espdx.git ~/.lyx/layouts
Пример настройки: Пример настройки:
[.text-center]
.Класс документа .Класс документа
image::lyx-espdx/01.png[Класс документа] image::lyx-espdx/01.png[Класс документа]
[.text-center]
.Модули .Модули
image::lyx-espdx/02.png[Модули] image::lyx-espdx/02.png[Модули]
[.text-center]
.Шрифты .Шрифты
image::lyx-espdx/03.png[Шрифты] image::lyx-espdx/03.png[Шрифты]
[.text-center]
.Макет текста .Макет текста
image::lyx-espdx/04.png[Макет текста] image::lyx-espdx/04.png[Макет текста]
[.text-center]
.Макет страницы .Макет страницы
image::lyx-espdx/05.png[Макет страницы] image::lyx-espdx/05.png[Макет страницы]
[.text-center]
.Поля страницы .Поля страницы
image::lyx-espdx/06.png[Поля страницы] image::lyx-espdx/06.png[Поля страницы]
[.text-center]
.Язык .Язык
image::lyx-espdx/07.png[Язык] image::lyx-espdx/07.png[Язык]
[.text-center]
.Нумерация и содержание .Нумерация и содержание
image::lyx-espdx/08.png[Нумерация и содержание] image::lyx-espdx/08.png[Нумерация и содержание]
[.text-center]
.Библиография .Библиография
image::lyx-espdx/09.png[Библиография] image::lyx-espdx/09.png[Библиография]
[.text-center]
.Предметный указатель .Предметный указатель
image::lyx-espdx/10.png[Предметный указатель] image::lyx-espdx/10.png[Предметный указатель]
[.text-center]
.Свойства PDF / Общие .Свойства PDF / Общие
image::lyx-espdx/11.png[Свойства PDF / Общие] image::lyx-espdx/11.png[Свойства PDF / Общие]
[.text-center]
.Свойства PDF / Гиперссылки .Свойства PDF / Гиперссылки
image::lyx-espdx/12.png[Свойства PDF / Гиперссылки] image::lyx-espdx/12.png[Свойства PDF / Гиперссылки]
[.text-center]
.Свойства PDF / Закладки .Свойства PDF / Закладки
image::lyx-espdx/13.png[Свойства PDF / Закладки] image::lyx-espdx/13.png[Свойства PDF / Закладки]
[.text-center]
.Параметры математики .Параметры математики
image::lyx-espdx/14.png[Параметры математики] image::lyx-espdx/14.png[Параметры математики]
[.text-center]
.Размещение плавающих объектов .Размещение плавающих объектов
image::lyx-espdx/15.png[Размещение плавающих объектов] image::lyx-espdx/15.png[Размещение плавающих объектов]
[.text-center]
.Форматы .Форматы
image::lyx-espdx/16.png[Форматы] image::lyx-espdx/16.png[Форматы]
[.text-center]
.Преамбула LaTeX .Преамбула LaTeX
image::lyx-espdx/17.png[Преамбула LaTeX] image::lyx-espdx/17.png[Преамбула LaTeX]

View File

@ -1,4 +1,5 @@
= LaTeX: защита команд = LaTeX: защита команд
:title-separator: {sp}|
:category: LaTeX :category: LaTeX
:tags: LaTeX, текст, :tags: LaTeX, текст,

View File

@ -1,4 +1,5 @@
= LaTeX: лигатуры = LaTeX: лигатуры
:title-separator: {sp}|
:category: LaTeX :category: LaTeX
:tags: LaTeX, шрифты, :tags: LaTeX, шрифты,

View File

@ -1,11 +1,12 @@
= LyX: многостраничные таблицы = LyX: многостраничные таблицы
:title-separator: {sp}|
:category: LaTeX :category: LaTeX
:tags: LaTeX, текст, LyX, таблицы, :tags: LaTeX, текст, LyX, таблицы,
* Создать таблицу как минимум с четырьмя строками. * Создать таблицу как минимум с четырьмя строками.
* Щелкнуть правой кнопкой мыши на таблице, выбрать во всплывающем меню * Щёлкнуть правой кнопкой мыши на таблице, выбрать во всплывающем меню
*Длинная таблица*. *Длинная таблица*.
* Щелкнуть правой кнопкой мыши на таблице, выбрать во всплывающем меню * Щёлкнуть правой кнопкой мыши на таблице, выбрать во всплывающем меню
*Настройки*. *Настройки*.
* Установить курсор на первой строке таблицы, в окне настроек перейти на * Установить курсор на первой строке таблицы, в окне настроек перейти на
вкладку *Длинная таблица*. вкладку *Длинная таблица*.
@ -17,9 +18,9 @@
* Нажать *Применить*. * Нажать *Применить*.
* Установить курсор на третьей строке таблицы, в окне настроек перейти * Установить курсор на третьей строке таблицы, в окне настроек перейти
на вкладку *Длинная таблица*. на вкладку *Длинная таблица*.
* Выбрать *Заголовок* и *Первый заколовок*. * Выбрать *Заголовок* и *Первый заголовок*.
* Нажать *Применить*. * Нажать *Применить*.
* Щелкнуть правой кнопкой мыши на второй строке таблицы, выбрать в меню * Щёлкнуть правой кнопкой мыши на второй строке таблицы, выбрать в меню
*Подпись (Ненумерованный)*. *Подпись (Ненумерованный)*.
* На первой строке таблицы установить метку и ввести текст подписи к * На первой строке таблицы установить метку и ввести текст подписи к
таблице на начальной странице. таблице на начальной странице.

View File

@ -1,4 +1,5 @@
= LaTeX: переносы строк = LaTeX: переносы строк
:title-separator: {sp}|
:category: LaTeX :category: LaTeX
:tags: LaTeX, текст, :tags: LaTeX, текст,

View File

@ -1,4 +1,5 @@
= LaTeX: русский язык в выходном PDF = LaTeX: русский язык в выходном PDF
:title-separator: {sp}|
:category: LaTeX :category: LaTeX
:tags: LaTeX, текст, PDF, :tags: LaTeX, текст, PDF,

View File

@ -1,4 +1,5 @@
= Astra: авторизация в PostgreSQL через PAM = Astra: авторизация в PostgreSQL через PAM
:title-separator: {sp}|
:category: Linux :category: Linux
:tags: Linux, Astra, postgresql, базы данных, :tags: Linux, Astra, postgresql, базы данных,

View File

@ -1,4 +1,5 @@
= CUPS: команды = CUPS: команды
:title-separator: {sp}|
:category: Linux :category: Linux
:tags: Linux, печать, CUPS, :tags: Linux, печать, CUPS,

View File

@ -1,4 +1,5 @@
= GnuPG: шифрование файлов = GnuPG: шифрование файлов
:title-separator: {sp}|
:category: Linux :category: Linux
:tags: Linux, GnuPG, безопасность :tags: Linux, GnuPG, безопасность

View File

@ -1,4 +1,5 @@
= runit: система инициализации = runit: система инициализации
:title-separator: {sp}|
:category: Linux :category: Linux
:tags: Debian, Ubuntu, Linux, инициализация, runit, :tags: Debian, Ubuntu, Linux, инициализация, runit,

View File

@ -1,4 +1,5 @@
= Linux: полезные ссылки = Linux: полезные ссылки
:title-separator: {sp}|
:category: Linux :category: Linux
:tags: Linux, ссылки, :tags: Linux, ссылки,

View File

@ -1,4 +1,5 @@
= Libgen: локальная база данных для Windows = Libgen: локальная база данных для Windows
:title-separator: {sp}|
:category: Windows :category: Windows
:tags: windows, libgen, библиотеки, книги, :tags: windows, libgen, библиотеки, книги,
@ -13,7 +14,6 @@ http://gen.lib.rus.ec/dbdumps/[здесь]. В архиве базы с имен
Для обработки полного архива потребуется около 30 ГБ свободного Для обработки полного архива потребуется около 30 ГБ свободного
пространства. Последовательность действий: пространства. Последовательность действий:
[arabic]
* https://yadi.sk/d/j_ToPE7D3SHGN6[Скачать] и распаковать программу * https://yadi.sk/d/j_ToPE7D3SHGN6[Скачать] и распаковать программу
Libgen. Libgen.
* Скачать архив базы данных, распаковать его в каталог `upload` и * Скачать архив базы данных, распаковать его в каталог `upload` и

View File

@ -1,7 +1,7 @@
= CMake: управление проектом = CMake: управление проектом
:title-separator: {sp}|
:category: Программирование :category: Программирование
:tags: программирование, cmake, :tags: программирование, cmake,
:toc: :toc:
== Полезные ссылки == Полезные ссылки
@ -40,7 +40,7 @@ Hitchhikers Guide to the CMake]
Назначение каталогов приведено в таблице. Назначение каталогов приведено в таблице.
[cols=",",options="header",] [cols="1,3",options="header",]
|=== |===
|Каталог |Назначение |Каталог |Назначение
|`cmex/_build` |Результаты компиляции |`cmex/_build` |Результаты компиляции
@ -76,6 +76,14 @@ Hitchhikers Guide to the CMake]
== Начало проекта == Начало проекта
Проект, в котором выполнены приведённые ниже действия, можно посмотреть
https://git.246060.ru/f1x1t/cmex[здесь] или сделать его копию командой:
[source,sh]
----
git clone --recursive https://git.246060.ru/f1x1t/cmex
----
В каталоге `cmex` нужно создать файл `CMakeLists.txt`: В каталоге `cmex` нужно создать файл `CMakeLists.txt`:
[source,cmake] [source,cmake]
@ -91,12 +99,17 @@ project(cmex VERSION 0.2.0 LANGUAGES C CXX)
Значение версии следует формировать согласно правилам Значение версии следует формировать согласно правилам
https://semver.org/lang/ru/[семантического версионирования]. https://semver.org/lang/ru/[семантического версионирования].
В каталог `cmake/cmlib` установить субмодуль CMLib, содержащий функции В каталоге `cmex` нужно инициализировать репозиторий и установить
для CMake: подмодули, содержащие функции для CMake:
.... [source,sh]
git submodule add ssh://git@gitlab-server/root/cmlib cmake/cmlib ----
.... git init .
git submodule add https://git.246060.ru/f1x1t/cmlib cmake/cmlib
git submodule add https://git.246060.ru/f1x1t/cmake-find cmake/find
git submodule add https://git.246060.ru/f1x1t/cmake-generators cmake/generators
git submodule update --remote --init
----
и подключить в файле `CMakeLists.txt`: и подключить в файле `CMakeLists.txt`:
@ -390,7 +403,7 @@ include(ExternalProject)
ExternalProject_Add(cmext ExternalProject_Add(cmext
EXCLUDE_FROM_ALL TRUE EXCLUDE_FROM_ALL TRUE
SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/libcmext SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/cmext
INSTALL_DIR ${CMAKE_BINARY_DIR} INSTALL_DIR ${CMAKE_BINARY_DIR}
DOWNLOAD_COMMAND "" DOWNLOAD_COMMAND ""
BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libcmext.a BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libcmext.a
@ -536,7 +549,7 @@ int main(int argc, char **argv) {
После сборки проекта в каталоге `cmex/l10n` появится файл После сборки проекта в каталоге `cmex/l10n` появится файл
`cmex_app_ru_RU.ts`, в котором нужно отредактировать переводы с помощью `cmex_app_ru_RU.ts`, в котором нужно отредактировать переводы с помощью
программы `linguist`. После сохранения переводов проект нужно программы `linguist`. После сохранения переводов проект нужно
пересобрать, файл переводов в скопилированном виде будет встроен в пересобрать, файл переводов в скомпилированном виде будет встроен в
исполняемый файл `cmex`, а доступ к нему будет осуществляться с помощью исполняемый файл `cmex`, а доступ к нему будет осуществляться с помощью
кода: кода:
@ -694,7 +707,7 @@ target_link_libraries(${current_target} Qt5::Widgets)
---- ----
Во время сборки проекта в файл переводов `cmex/l10n/cmex_app_ru_RU.ts` Во время сборки проекта в файл переводов `cmex/l10n/cmex_app_ru_RU.ts`
будут добавлены повые строки, их нужно перевести с помощью `linguist` и будут добавлены новые строки, их нужно перевести с помощью `linguist` и
снова скомпилировать проект. снова скомпилировать проект.
== Удаление установленных файлов == Удаление установленных файлов
@ -704,7 +717,7 @@ target_link_libraries(${current_target} Qt5::Widgets)
== Архивирование проекта == Архивирование проекта
Стандарный модуль `CPack` осуществляет архивирование проекта. В файле Стандартный модуль `CPack` осуществляет архивирование проекта. В файле
`cproj/cmake/etc/cpack_ignore.txt` определён список типовых масок файлов `cproj/cmake/etc/cpack_ignore.txt` определён список типовых масок файлов
для исключения из архива: для исключения из архива:

View File

@ -1,4 +1,5 @@
= Intel Parallel Studio: установка в образ для чтения = Intel Parallel Studio: установка в образ для чтения
:title-separator: {sp}|
:category: Linux/Программы :category: Linux/Программы
:tags: Linux, Intel, компилятор, C++, :tags: Linux, Intel, компилятор, C++,
@ -27,7 +28,7 @@ sudo setcap cap_sys_ptrace=eip /opt/intel/vtune_amplifier/bin64/amplxe-perf
. Создать образ . Создать образ
`mksquashfs /opt/intel/* /home/user/intel.sfs -comp xz -Xbcj x86 -all-root -b 512K` `mksquashfs /opt/intel/* /home/user/intel.sfs -comp xz -Xbcj x86 -all-root -b 512K`
. Удалить содержимое каталога `/opt/intel`. . Удалить содержимое каталога `/opt/intel`.
. Подмонтировать образ: . Примонтировать образ:
`mount -t squashfs /home/user/intel.sfs /opt/intel` `mount -t squashfs /home/user/intel.sfs /opt/intel`
. Добавить в файл `/home/user/.bashrc` строки: . Добавить в файл `/home/user/.bashrc` строки:

View File

@ -70,7 +70,7 @@ Analysis, GA). Включить дополнительные правила мо
.... ....
Выбор типов предупреждений осуществляется на основе побитовой маски из Выбор типов предупреждений осуществляется на основе побитовой маски из
приведенных выше типов. Чтобы выполнить анализ, исключив проверки MISRA, приведённых выше типов. Чтобы выполнить анализ, исключив проверки MISRA,
нужно выполнить нужно выполнить
[source,sh] [source,sh]

View File

@ -39,7 +39,7 @@ perf report -g graph --no-children
[source,sh] [source,sh]
---- ----
opcontrol --setup --vmlinux=/boot/vmlinux-`uname -r` opcontrol --setup --vmlinux=/boot/vmlinux-`uname -r`
---- ----
== Systemtap == Systemtap

View File

@ -1,4 +1,4 @@
= Построение профиля местности в QGis = Построение профиля местности в Gis
:category: Картография :category: Картография
:tags: картография, qgis, sxf, shp, gdal, :tags: картография, qgis, sxf, shp, gdal,
@ -11,11 +11,11 @@
image:qgis-heights/1.png[Слои карты] image:qgis-heights/1.png[Слои карты]
[arabic, start=3] [arabic, start=3]
. На панели *Панель слоёв* правой кнопкой мыши щелкнуть на слое, . На панели *Панель слоёв* правой кнопкой мыши щёлкнуть на слое,
содержащем данные о высотах, и выбрать *Фильтр…*. содержащем данные о высотах, и выбрать *Фильтр…*.
. Построить выражение выбирающие только данные с высотами, например, . Построить выражение выбирающие только данные с высотами, например,
`"CLNAME" ILIKE '%ГОРИЗОНТАЛИ ОСНОВ%'` и нажить *OK*. `"CLNAME" ILIKE '%ГОРИЗОНТАЛИ ОСНОВ%'` и нажить *OK*.
. На панели *Панель слоёв* правой кнопкой мыши щелкнуть на слое, . На панели *Панель слоёв* правой кнопкой мыши щёлкнуть на слое,
содержащем данные о высотах, и выбрать *Сохранить как…*. Появившийся содержащем данные о высотах, и выбрать *Сохранить как…*. Появившийся
новый слой *heights* следует удалить. новый слой *heights* следует удалить.
. В появившемся диалоговом окне выбрать имя выходного файла, например, . В появившемся диалоговом окне выбрать имя выходного файла, например,
@ -27,7 +27,7 @@ image:qgis-heights/2.png[Имя выходного файла]
. В каталоге `/home/a/work/map` выполнить команду, которая в файле . В каталоге `/home/a/work/map` выполнить команду, которая в файле
`heights.shp` из слоя `heights` берёт данные о высотах из поля `SC_4` и `heights.shp` из слоя `heights` берёт данные о высотах из поля `SC_4` и
генерирует матрицу высот размером 2000 на 2000 в формате BMP. Настойки генерирует матрицу высот размером 2000 на 2000 в формате BMP. Настойки
алгоритма посторения матрицы можно изменять с помощью параметра `-a`: алгоритма построения матрицы можно изменять с помощью параметра `-a`:
[source,sh] [source,sh]
---- ----

View File

@ -1 +0,0 @@
{"checksum":"81886ef1b8d31cdb2b865473bbeb2cf9","width":671,"height":550}

View File

@ -1 +0,0 @@
{"checksum":"e76d88ee3db613b3f806d8c773281fdc","width":685,"height":363}

View File

@ -1,4 +1,5 @@
= Git: автоматическое сохранение в репозиторий = Git: автоматическое сохранение в репозиторий
:title-separator: {sp}|
:category: Программирование :category: Программирование
:tags: программирование, git, :tags: программирование, git,

View File

@ -1,4 +1,5 @@
= Git: замена адреса подмодуля = Git: замена адреса подмодуля
:title-separator: {sp}|
:category: Программирование :category: Программирование
:tags: программирование, git, :tags: программирование, git,

View File

@ -1,6 +1,8 @@
= Git: основные команды = Git: основные команды
:title-separator: {sp}|
:category: Программирование :category: Программирование
:tags: программирование, git :tags: программирование, git
:toc:
== Ссылки == Ссылки
@ -19,7 +21,7 @@ sudo apt-get install git
== Термины == Термины
[width="100%",cols="16%,17%,67%",options="header",] [width="100%",cols="18%,20%,62%",options="header",]
|=== |===
|Термин |Англ |Определение |Термин |Англ |Определение
|Рабочий каталог |working tree, working directory |Набор файлов в |Рабочий каталог |working tree, working directory |Набор файлов в
@ -29,7 +31,7 @@ sudo apt-get install git
файлов проекта файлов проекта
|Индекс |index, staging area |Область между рабочим каталогом и |Индекс |index, staging area |Область между рабочим каталогом и
репозиторием, в которой осуществляется подготовка к фиксации репозиторием, в котором осуществляется подготовка к фиксации
|SHA-1 |SHA-1 |Уникальный идентификатор, отражающий информацию об |SHA-1 |SHA-1 |Уникальный идентификатор, отражающий информацию об
истории истории
@ -47,16 +49,23 @@ sudo apt-get install git
== Состояния == Состояния
Файлы в рабочем каталоге могут отслеживаться системой контроля версий Файлы в рабочем каталоге могут отслеживаться системой контроля версий
(tracked) или нет (untracked). Отслеживаемые файлы, которые на диаграмме (tracked) или нет (untracked). Отслеживаемые файлы, которые на
<<states,диаграмме>>
обозначены зелёным фоном, могут быть неизменёнными (unmodified), обозначены зелёным фоном, могут быть неизменёнными (unmodified),
изменёнными (modified) или подготовленными к фиксации (staged). изменёнными (modified) или подготовленными к фиксации (indexed).
[[states]]
[.text-center]
.Состояния
[plantuml] [plantuml]
---- ----
@startuml @startuml
skinparam padding 16
participant untracked as "Неотслеживамые\n(untracked)" participant untracked as "Неотслеживамые\n(untracked)"
box "Отслеживаемые" box "Отслеживаемые"
participant staged as "Подготовленные к фиксации\n(staged)" #55FF55 participant staged as "Подготовленные к фиксации\n(indexed)" #55FF55
participant unmodified as "Неизменённые\n(unmodified)" #99FF99 participant unmodified as "Неизменённые\n(unmodified)" #99FF99
participant modified as "Изменённые\n(modified)" #77FF77 participant modified as "Изменённые\n(modified)" #77FF77
end box end box
@ -72,12 +81,16 @@ staged -> untracked: git rm --cached
---- ----
Основные команды, осуществляющие взаимодействие между рабочим каталогом, Основные команды, осуществляющие взаимодействие между рабочим каталогом,
индексом, локальным и удалённым репозиторием, приведены на диаграмме индексом, локальным и удалённым репозиторием, приведены на <<commands,диаграмме>>.
ниже.
[[commands]]
[.text-center]
.Команды
[plantuml] [plantuml]
---- ----
@startuml @startuml
skinparam padding 16
participant workspace as "Рабочий каталог\n(working dir)" participant workspace as "Рабочий каталог\n(working dir)"
participant index as "Индекс\n(index)" #77FF77 participant index as "Индекс\n(index)" #77FF77
participant local as "Локальный репозиторий\n(local repository)" #FF7777 participant local as "Локальный репозиторий\n(local repository)" #FF7777
@ -104,9 +117,49 @@ index -[#blue]> workspace : git diff
@enduml @enduml
---- ----
Пример последовательности действий, выполняемых пользователем в совместном
проекте, приведён на <<workflow,диаграмме>>.
[[workflow]]
[.text-center]
.Последовательность действий
[plantuml]
----
@startuml
skinparam defaultFontSize 24
skinparam padding 16
participant workspace as "Рабочий каталог\n(working dir)"
participant index as "Индекс\n(index)" #77FF77
participant local as "Локальный репозиторий\n(local repository)" #FF7777
participant remote as "Удалённый репозиторий\n(remote repository)" #7777FF
[-> workspace : <font color=red>Начало работы</font>
activate workspace
remote -> local : <font color=red>Получение изменений с сервера</font>\n<b>git fetch</b>
remote -> local : <font color=red>Обновление подмодулей</font>\n<b>git submodule update --remote</b>
workspace <-> local : <font color=red>Просмотр информации</font>\n<b>git status</b>
workspace <-> local : <font color=red>Переход на ветку master</font>\n<b>git checkout master</b>
local -> workspace : <font color=red>Слияние с удалённой веткой</font>\n<b>git merge origin/master</b>
local <-> workspace : <font color=red>Создание новой ветки</font>\n<b>git branch temp</b>
local <-> workspace : <font color=red>Переход на новую ветку</font>\n<b>git checkout temp</b>
workspace ->o workspace : <font color=red>Редактирование</font>
workspace <-> local : <font color=red>Просмотр изменений</font>\n<b>git diff</b>
workspace -> index : <font color=red>Занесение файлов в индекс</font>\n<b>git add</b>
index -> local : <font color=red>Фиксация изменений</font>\n<b>git commit</b>
local ->o local : <font color=red>Присвоение ветки осмысленного названия</font>\n<b>git branch -m temp branch_name</b>
local ->o local : <font color=red>Переход на ветку</font>\n<b>git checkout branch_name</b>
remote -> local : <font color=red>Получение изменений с сервера</font>\n<b>git fetch</b>
local ->o local : <font color=red>Слияние изменений с сервера в текущую ветку (branch_name)</font>\n<b>git merge origin/master</b>
local -> remote : <font color=red>Отправка ветки на сервер</font>\n<b>git push origin branch_name</b>
remote ->] : <font color=red>Создание запроса на слияние</font>
deactivate workspace
@enduml
----
== Настройка == Настройка
[width="100%",cols="16%,38%,46%",options="header",] [width="100%",cols="15%,35%,50%",options="header",]
|=== |===
|Команда |Ключи |Описание |Команда |Ключи |Описание
|`git config` |`--global user.name "John Doe"` |Имя текущего |`git config` |`--global user.name "John Doe"` |Имя текущего
@ -122,7 +175,7 @@ index -[#blue]> workspace : git diff
== Инициализация == Инициализация
[width="100%",cols="19%,27%,54%",options="header",] [width="100%",cols="15%,35%,50%",options="header",]
|=== |===
|Команда |Ключи |Описание |Команда |Ключи |Описание
|`git init` |`<dir>` |Создать пустой репозиторий в каталоге `<dir>` |`git init` |`<dir>` |Создать пустой репозиторий в каталоге `<dir>`
@ -137,11 +190,11 @@ index -[#blue]> workspace : git diff
== Подмодули == Подмодули
[width="100%",cols="19%,27%,54%",options="header",] [width="100%",cols="15%,25%,60%",options="header",]
|=== |===
|Команда |Ключи |Описание |Команда |Ключи |Описание
|`git submodule` |`add <giturl> <dir>` |Добавить в каталог `<dir>` |`git submodule` |`add <giturl> <dir>` |Добавить в каталог `<dir>`
текущего рапозитория подмодуль, находящийся по адресу `<giturl>` текущего репозитория подмодуль, находящийся по адресу `<giturl>`
|`git submodule` |`update --recursive --remote` |Обновить подмодули |`git submodule` |`update --recursive --remote` |Обновить подмодули
@ -159,233 +212,135 @@ git rm <path/to/submodule>
== Фиксация == Фиксация
[width="100%",cols="19%,27%,54%",options="header",] [width="100%",cols="15%,20%,65%",options="header",]
|=== |===
|Команда |Ключи |Описание |Команда |Ключи |Описание
|`git add` |`<filename>` |Подготовить файл `<filename>` к фиксации |`git add` |`<filename>` |Подготовить файл `<filename>` к фиксации
|`git commit` | |Зафиксировать подготовленные файлы |`git commit` | |Зафиксировать подготовленные файлы
|`git commit` |`-a` |Зафиксировать все отслеживаемые файлы, которые были |`git commit` |`-a` |Зафиксировать все отслеживаемые файлы, которые были
изменены изменены
|===
== Удаление
[width="100%",cols="15%,20%,65%",options="header",]
|===
|Команда |Ключи |Описание
|`git rm` |`<filename>` |Удалить файл из индекса и рабочего каталога |`git rm` |`<filename>` |Удалить файл из индекса и рабочего каталога
|`git rm` |`-f <filename>` |Force deletion of files from disk |`git rm` |`-f <filename>` |Принудительное удаление файла
|`git rm` |`--cached <filename>` |Untrack file (without deleting) |`git rm` |`--cached <filename>` |Удаление файла из проекта, но не из
рабочего каталога
|=== |===
== Информация == Информация
[width="100%",cols="20%,20%,60%",options="header",] [width="100%",cols="15%,20%,65%",options="header",]
|=== |===
|Команда |Ключи |Описание |Команда |Ключи |Описание
|`git status` |`-s` |Вывод информации о рабочем каталоге в |`git status` |`-s` |Вывод информации о рабочем каталоге в краткой форме
краткой форме
|`git log` |`--oneline` |Вывод журнала изменений в краткой форме |`git log` |`--oneline` |Вывод журнала изменений в краткой форме
|`git ls-files` | |Вывод списка отслеживаемых и подготовленных файлов |`git ls-files` | |Вывод списка отслеживаемых и подготовленных файлов
|=== |===
== $push branches (see tags for pushing tags) == Удалённый репозиторий
[cols=",,",options="header",] [width="100%",cols="15%,20%,65%",options="header",]
|=== |===
|Команда |Ключи |Описание |Команда |Ключи |Описание
|`git push` |`<remotename> <branchname>` |Push branch to remote |`git remote` |`-v` |Список адресов удалённых репозиториев
|`git push` |`<remotename> --all` |Push all branches to remote
|`git push` |`--d <remotename> <branchname>` |`--delete` remote branch |`git branch` |`-r` |Список веток в удалённых репозиториях
|`git remote` |`add <name> <url>` |Создать ссылку `<name>` на удалённый
репозиторий, находящийся по адресу `<url>`
|`git remote` |`rename <old> <new>` |Переименовать ссылку `<old>` на
`<new>`
|`git remote` |`rm <name>` |Удалить ссылку `<name>`
|=== |===
== $remote * Обращение к удалённому репозиторию осуществляется по ссылке,
создаваемой командой `git remote`
* Команда `git clone` автоматически создаёт ссылку `origin`
* Remote connections are like bookmarks named after remote repos == Отправка изменений
* `git clone` automatically creates a remote connection usually called
`origin`
[width="100%",cols="36%,26%,38%",options="header",] [width="100%",cols="15%,20%,65%",options="header",]
|=== |===
|Команда |Ключи |Описание |Команда |Ключи |Описание
|`git remote` |`-v` |List remote repository endpoints |`git push` |`<remote> <branch>` |Отправить ветку `<branch>` в удалённый
репозиторий `<remote>`
|`git branch` |`-r` |List remote repository branches |`git push` |`<remote> --all` |Отправить все ветки в удалённый
репозиторий `<remote>`
|`git remote` |`add <name> <url>` |Create namespaced connection to a |`git push` |`--d <remote> <branch>` |Удалить ветку `<branch>` из
remote repository удалённого репозитория `<remote>`
|`git remote` |`rename <oldname> <newname>` |Rename connection
|`git remote` |`rm <name>` |Remove connection
|`git remote` |`add origin <url>` |Set remote origin
|=== |===
Reference: https://git-scm.com/docs/git-remote == Получение изменений
*Remove remote origin:* [width="100%",cols="15%,20%,65%",options="header",]
[source,shell]
----
# Remove `origin` settings from .git/config
git remote rm origin
# Remove `FETCH_HEAD` which still points to remote
git rm .git/FETCH_HEAD
----
== $fetch-pull
[cols=",,",options="header",]
|=== |===
|Команда |Ключи |Описание |Команда |Ключи |Описание
|`git fetch` |`<remote>` |Fetch all branches from remote (without merge) |`git fetch` |`<remote>` |Получить изменения из всех веток репозитория
|`git fetch` |`<remote> <branch>` |Fetch specific branch `<remote>`, но не выполнять слияние
|`git merge` |`<remote>/<branch>` |Merge fetched remote
|`git pull` |`<remote>` |Fetch and merge in one command |`git fetch` |`<remote> <branch>` |Получить изменения из ветки
`<branch>` репозитория `<remote>`, но не выполнять слияние
|`git merge` |`<remote>/<branch>` |Выполнить слияние с веткой `<branch>`
репозитория `<remote>`
|`git pull` |`<remote>` |Получение и слияние
|=== |===
Reference: https://git-scm.com/docs/git-fetch, == Ветки
https://git-scm.com/docs/git-pull
== $branch [width="100%",cols="15%,20%,65%",options="header",]
[cols=",,",options="header",]
|=== |===
|Команда |Ключи |Описание |Команда |Ключи |Описание
|`git branch` | |List branches |`git branch` |`-a` |Список локальных и удалённых веток
|`git branch` |`<branchname>` |Create new branch |`git branch` | |Список локальных веток
|`git checkout` |`<sha-1>` |Switch to branch, or commit |`git branch` |`<branch>` |Создать ветку `<branch>`
|`git branch` |`-m <branchname> <newname>` |Rename branch |`git checkout` |`<sha-1>` |Перейти к фиксации с идентификатором
`<sha-1>`
|`git merge` |`<branchname>` |Merge changes from `<branchname>` to |`git branch` |`-m <old> <new>` |Переименовать ветку `<old>` в `<new>`
current branch
|`git branch` |`-d <branchname>` |`--delete` branch |`git merge` |`<branch>` |Слить изменения из ветки `<branch>` в текущую
ветку
|`git branch` |`-d <branch>` |Удалить ветку `<branch>`
|=== |===
Reference: https://git-scm.com/docs/git-branch == Сравнение
== $diff [width="100%",cols="15%,20%,65%",options="header",]
[cols=",,",options="header",]
|=== |===
|Команда |Ключи |Описание |Команда |Ключи |Описание
|`git diff` | |Compare *`working directory`* and *`index`* |`git diff` | |Сравнить рабочий каталог и индекс
| |`-cached` |Compare *`index`* and *`latest commit`*
| |`HEAD` |Compare *`latest commit`* and *`working directory`* |`git diff` |`-cached` |Сравнить индекс и последнюю фиксацию
| |`--stat` |Optional short format
| |`<sha-1> <sha-1>` |2 points in time to compare |`git diff` |`HEAD` |Сравнить последнюю фиксацию и рабочий каталог
| |`<dir> | <file>` |Compare whole directory or limit to file
|`git diff` |`--stat` |Краткий вывод результатов
|`git diff` |`<sha-1> <sha-1>` |Сравнить две точки с указанными
идентификаторами
|`git diff` |`<dir>` `<file>` |Сравнивать только указанный каталог
`<dir>` или файл `<file>`
|`git difftool` | |Отобразить результаты сравнения в программе,
определяемой переменной `diff.tool`
|=== |===
Reference: https://git-scm.com/docs/git-diff
*Examples:*
[source,shell]
----
## compare changes made to README.md between working tree (default) and latest commit (HEAD)
$ git diff --stat HEAD ./path/README.md
## compare changes made to README.md between 2 specific points in time (e.g. 2 commits)
$ git diff --stat a649900 24bdd58 ./path/README.md
----
== $tag
[width="100%",cols="36%,26%,38%",options="header",]
|===
|Команда |Ключи |Описание
|`git tag` | |List tags
|`git tag` |`<v1.0.0>` |Create tag, from latest commit, lightweight
|`git tag` |`-a <v1.0.0> -m "<msg>"` |Create tag, with `--annotate`,
from latest commit
|`git tag` |`-a <v1.0.0> -m "<msg>" <SHA-1>` |Create tag, with
`--annotate`, from specific commit
|`git tag` |`-d <v1.1.0>` |`--delete` tag
|`git show` |`<v1.0.0>` |Show tag data and message
|`git checkout` |`<v1.0.0>` |Switch to specific point tag (not editable)
|`git push` |`<remote> <tag>` |Push specific tag to `<remote>`
(recommended)
|`git push` |`<remote> --tags` |Push all tags to `<remote>` (only if
necessary)
|===
Инициализация репозитория в каталоге `dir`:
[source,sh]
----
git init dir
----
Клонирование репозитория `repo`, принадлежащего пользователю `user`, с
сервера `gitlab.2` в каталог `dir`:
[source,sh]
----
git clone git@gitlab.2:user/repo.git dir
----
Просмотр состояния рабочего каталога и репозитория:
[source,sh]
----
git status
----
Краткая форма вывода состояния:
[source,sh]
----
git status -s
----
Добавление файла `README.md` под версионный контроль и подготовка к
фиксации:
[source,sh]
----
git add README.md
----
Удаление файла `README.md` из индекса репозитория:
[source,sh]
----
git rm --cached README.md
----
Зафиксировать файлы, подготовленные к фиксации:
[source,sh]
----
git commit
----
Зафиксировать все отслеживаемые файлы, которые были изменены:
[source,sh]
----
git commit -a
----
Отправить все ветки репозитория на сервер с меткой `origin`:
[source,sh]
----
git push origin
----

View File

@ -1,6 +1,8 @@
= Git: распаковка объекта = Git: распаковка объекта
:title-separator: {sp}|
:category: Программирование :category: Программирование
:tags: программирование, git, :tags: программирование, git,
:toc:
В случае повреждения репозитория можно восстановить отдельные объекты, В случае повреждения репозитория можно восстановить отдельные объекты,
которые сохраняются в формате zlib. Пример команды: которые сохраняются в формате zlib. Пример команды:

View File

@ -1,4 +1,5 @@
= Git: репозиторий на переносном устройстве = Git: репозиторий на переносном устройстве
:title-separator: {sp}|
:category: Программирование :category: Программирование
:tags: программирование, git, :tags: программирование, git,

View File

@ -1,4 +1,5 @@
= Git: частичная копия репозитория = Git: частичная копия репозитория
:title-separator: {sp}|
:category: Программирование :category: Программирование
:tags: программирование, git, :tags: программирование, git,

View File

@ -1,4 +1,5 @@
= GitLab: выполнение по расписанию = GitLab: выполнение по расписанию
:title-separator: {sp}|
:category: Программирование :category: Программирование
:tags: программирование, gitlab, git, :tags: программирование, gitlab, git,

View File

@ -0,0 +1,38 @@
= Qt: обмен бинарными данными с БД
:title-separator: {sp}|
:category: Программирование
:tags: программирование, qt, postgresql, бд
Таблица, с которой осуществляется обмен:
[source,sql]
----
CREATE TABLE example (
id INTEGER,
bin_data BYTEA
);
----
Запись данных:
[source,cpp]
----
const char cart[] = {0x04, 0x43, 0x00, 0x9A};
QByteArray binDataArray(QByteArray::fromRawData(cart, 4));
QSqlQuery query;
query.prepare(QString("INSERT INTO example (id, bin_data) VALUES(:id, :bin_data)");
query.bindValue(":id", 10, QSql::In);
query.bindValue(":bin_data", binDataArray, QSql::In | QSql::Binary);
query.exec();
----
Чтение данных:
[source,cpp]
----
QSqlQuery query;
query.exec("SELECT id, bin_data FROM example LIMIT 1");
query.next();
QByteArray binDataArray = query.value(query.record().indexOf("bin_data")).toByteArray();
----

View File

@ -19,7 +19,7 @@ https://ru.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms[BLAS]
* https://github.com/skystrife/cpptoml[cpptoml]: чтение * https://github.com/skystrife/cpptoml[cpptoml]: чтение
https://github.com/toml-lang/toml[TOML] https://github.com/toml-lang/toml[TOML]
* https://github.com/martinmoene/gsl-lite/[gsl-lite]: реализация * https://github.com/martinmoene/gsl-lite/[gsl-lite]: реализация
рекомедаций https://github.com/isocpp/CppCoreGuidelines[C++ Core рекомендаций https://github.com/isocpp/CppCoreGuidelines[C++ Core
Guidelines] Guidelines]
* http://www.holoborodko.com/pavel/mpfr[mpfrc++]: C++ интерфейс для * http://www.holoborodko.com/pavel/mpfr[mpfrc++]: C++ интерфейс для
https://www.mpfr.org/[MPFR] https://www.mpfr.org/[MPFR]

View File

@ -1,14 +1,12 @@
= Работа с датами и временем = Работа с датами и временем
:category: Программирование :category: Программирование
:tags: программирование, время, часы, дата, :tags: программирование, время, часы, дата
:toc: auto
:toc:
== Временные шкалы == Временные шкалы
В идеале системы учёта времени должны обладать тремя характеристиками: В идеале системы учёта времени должны обладать тремя характеристиками:
[arabic]
. _точность_ (время базируется на атомном стандарте, каждая секунда . _точность_ (время базируется на атомном стандарте, каждая секунда
отсчитывается как секунда в системе СИ, нет високосных секунд, переводов отсчитывается как секунда в системе СИ, нет високосных секунд, переводов
на зимнее или летнее время и т.п.); на зимнее или летнее время и т.п.);
@ -18,7 +16,6 @@
На практике есть возможность выбрать шкалу только с двумя На практике есть возможность выбрать шкалу только с двумя
характеристиками из трёх. характеристиками из трёх.
[arabic]
. точность и календарные дни. Примером такой шкалы является UTC, в . точность и календарные дни. Примером такой шкалы является UTC, в
которой отсчёт дней и секунд ведётся разными методами (секунды которой отсчёт дней и секунд ведётся разными методами (секунды
исчисляются по атомному стандарту, а дни по суточному вращению Земли), а исчисляются по атомному стандарту, а дни по суточному вращению Земли), а
@ -32,7 +29,6 @@ Std 1003.1-1988), в которой день всегда равен 86400 се
Время можно условно поделить на два класса: физическое и гражданское. Время можно условно поделить на два класса: физическое и гражданское.
[arabic]
. _Физическое_ время представляет собой точки на непрерывной шкале, . _Физическое_ время представляет собой точки на непрерывной шкале,
такую концепцию достаточно точно отражает UTC, если можно пренебречь такую концепцию достаточно точно отражает UTC, если можно пренебречь
_секундой координации_ (дополнительная секунда, добавляемая к UTC 30 _секундой координации_ (дополнительная секунда, добавляемая к UTC 30
@ -73,7 +69,6 @@ _секундой координации_ (дополнительная секу
Правила хранения и отображения времени: Правила хранения и отображения времени:
[arabic]
. Время всегда хранится в UTC. При необходимости дополнительно . Время всегда хранится в UTC. При необходимости дополнительно
сохраняется информация о временной зоне (смещение и/или название). сохраняется информация о временной зоне (смещение и/или название).
. Для вывода на экран время переводится в местное. . Для вывода на экран время переводится в местное.

View File

@ -1,4 +1,5 @@
= Vim: сравнение файлов = Vim: сравнение файлов
:title-separator: {sp}|
:category: Vim :category: Vim
:tags: Vim, команды Vim, :tags: Vim, команды Vim,

View File

@ -1,4 +1,5 @@
= Vim: замена выделенного блока = Vim: замена выделенного блока
:title-separator: {sp}|
:category: Vim :category: Vim
:tags: Vim, команды Vim, :tags: Vim, команды Vim,

View File

@ -1,4 +1,5 @@
= Vim: клавиши Leader и LocalLeader = Vim: клавиши Leader и LocalLeader
:title-separator: {sp}|
:category: Vim :category: Vim
:tags: Vim, команды Vim, :tags: Vim, команды Vim,

View File

@ -1,4 +1,5 @@
= Vim: клавиши PageUp и PageDown = Vim: клавиши PageUp и PageDown
:title-separator: {sp}|
:category: Vim :category: Vim
:tags: Vim, команды Vim, :tags: Vim, команды Vim,

View File

@ -1,4 +1,5 @@
= Vim: кодировка файла = Vim: кодировка файла
:title-separator: {sp}|
:category: Vim :category: Vim
:tags: Vim, :tags: Vim,

View File

@ -1,4 +1,5 @@
= Vim: комментирование кода = Vim: комментирование кода
:title-separator: {sp}|
:category: Vim :category: Vim
:tags: Vim, команды Vim, :tags: Vim, команды Vim,

View File

@ -1,4 +1,5 @@
= Vim: менеджер плагинов Plug = Vim: менеджер плагинов Plug
:title-separator: {sp}|
:category: Vim :category: Vim
:tags: Vim, плагины Vim, :tags: Vim, плагины Vim,
@ -14,7 +15,6 @@ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
Чтобы использовать Plug, нужно добавить в `$HOME/.vim/vimrc`: Чтобы использовать Plug, нужно добавить в `$HOME/.vim/vimrc`:
[arabic]
* Строку `call plug#begin('~/.vim/plugged')` * Строку `call plug#begin('~/.vim/plugged')`
* Список строк, начинающихся с команды `Plug`, для загрузки плагинов * Список строк, начинающихся с команды `Plug`, для загрузки плагинов
* Закончить список командой `call plug#end()` * Закончить список командой `call plug#end()`

View File

@ -1,4 +1,5 @@
= Vim: навигация по тексту с помощью easymotion = Vim: навигация по тексту с помощью easymotion
:title-separator: {sp}|
:category: Vim :category: Vim
:tags: Vim, команды Vim, :tags: Vim, команды Vim,

View File

@ -1,4 +1,5 @@
= Vim: навигация по буферам = Vim: навигация по буферам
:title-separator: {sp}|
:category: Vim :category: Vim
:tags: Vim, команды Vim, :tags: Vim, команды Vim,

View File

@ -1,4 +1,5 @@
= Vim: нумерация строк = Vim: нумерация строк
:title-separator: {sp}|
:category: Vim :category: Vim
:tags: Vim, команды Vim, :tags: Vim, команды Vim,

View File

@ -1,4 +1,5 @@
= Vim: проверка орфографии = Vim: проверка орфографии
:title-separator: {sp}|
:category: Vim :category: Vim
:tags: Vim, команды Vim, словарь, орфография, :tags: Vim, команды Vim, словарь, орфография,

View File

@ -1,4 +1,5 @@
= Vim: полезные ссылки = Vim: полезные ссылки
:title-separator: {sp}|
:category: Vim :category: Vim
:tags: Vim, :tags: Vim,

View File

@ -1,4 +1,5 @@
= Vim: управление окнами = Vim: управление окнами
:title-separator: {sp}|
:category: Vim :category: Vim
:tags: Vim, команды Vim, :tags: Vim, команды Vim,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB