Форум программистов, компьютерный форум, киберфорум
Loafer
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
Старый
Рейтинг: 5.00. Голосов: 1.
Настройки VS Code
Запись от Loafer размещена 13.04.2026 в 19:18
Показов 3196 Комментарии 0

JSON
1
2
3
4
5
6
7
8
9
10
{
    "cmake.configureOnOpen": false,
    "diffEditor.ignoreTrimWhitespace": true,
    "editor.guides.bracketPairs": "active",
    "extensions.ignoreRecommendations": true,
    "files.trimTrailingWhitespace": true,
    "git.blame.editorDecoration.enabled": true,
    "git.confirmSync": false,
    "git.inputValidation": true,
    "git.openRepositoryInParentFolders":
...
Аватар для Loafer
Старый
Рейтинг: 1.00. Голосов: 1.
Шпаргалка по WSL
Запись от Loafer размещена 08.08.2025 в 22:39
Показов 5103 Комментарии 0
Метки linux, ubuntu, windows, wsl

Обнаружил в WSL два очень не приятных момента.

Оказалось, что WSL периодически падает и генерирует core dump'ы, которые занимают крайне ощутимое количество памяти на диске. Чтобы отключить накопление этих файлов, надо в файле %USERPROFILE%\.wslconfig прописать:
Code
1
2
[wsl2]
MaxCrashDumpCount=-1
Также оказалось, что WSL не уменьшает автоматически место, занимаемое WSL-дистрибутивом...
Аватар для Loafer
Старый
Работа с ccache/sccache в рамках C++
Запись от Loafer размещена 11.06.2025 в 12:00
Показов 4207 Комментарии 0
Метки c++, ccache, sccache

Утилиты ccache и sccache занимаются тем, что кешируют промежуточные результаты компиляции, таким образом ускоряя последующие компиляции проекта. Это означает, что если проект будет компилироваться еще раз и в кеше будет обнаружен уже объект компиляции, то будет браться этот объект, вместо полноценной компиляции. Как работает само кеширование, например для sccache, можно посмотреть тут.

Алгоритм работы этих приложений можно отобразить картинкой:...
Аватар для Loafer
Старый
Настройка MTProxy
Запись от Loafer размещена 11.06.2025 в 10:55
Показов 4799 Комментарии 0
Метки mtproxy, telegram

Дополнительная информация к инструкции по настройке MTProxy:
  1. Перед сборкой проекта необходимо добавить флаг -fcommon в конец переменной CFLAGS в Makefile.
  2. Через crontab -e добавить задачу:
    Code
    1
    
    0 3 * * * curl -s https://core.telegram.org/getProxyConfig -o /root/.mtproxy/proxy-multi.conf
  3. Через crontab -e добавить задачу:
    Code
    1
    
    0 4 * * * systemctl restart MTProxy.service
Аватар для Loafer
Старый
Рейтинг: 5.00. Голосов: 3.
Crafting Interpreters
Запись от Loafer размещена 30.03.2024 в 18:14
Показов 3437 Комментарии 21
Метки programming

Прочитал наконец-то большую книгу по программированию за долгое время - Crafting Interpreters. Если вкратце, то книга про то, как создаются языки программирования. По факту, в книге реализуется язык программирования, который автор назвал Lox, двумя способами - интерпретируемый язык на основе AST, и управляемый язык на основе виртуальной машины. Особенностью книги является то, что ЯП реализуется полностью с нуля, не прибегая ко всякого рода внешним утилитам, вроде yacc или lex. Она очень...
Аватар для Loafer
Старый
Настройка NFS
Запись от Loafer размещена 18.04.2022 в 19:51
Показов 1263 Комментарии 2
Метки linux, nfs

Установка пакета:
Bash
1
yum install nfs-utils
Прописываем в файле /etc/nfs.conf:
Code
1
2
3
4
5
6
vers2=n
vers3=y
vers4=n
vers4.0=n
vers4.1=n
vers4.2=n
Прописываем в файле /etc/exports:
Code
1
/root/temp *(ro,root_squash)
Набираем следующие команды:
Bash
1
2
3
exportfs -a
exportfs -r
systemctl restart nfs-server.service
Смонтировать...
Аватар для Loafer
Старый
Шпаргалка по SNMP
Запись от Loafer размещена 26.08.2021 в 18:50
Показов 3216 Комментарии 0
Метки snmp

SNMP - это такой сетевой протокол, предназначенный для передачи некоторых сведений об устройстве. Например, количество CPU на машине, uptime машины и т. д. Чтобы разобраться, какая схема взаимодействия в данном протоколе, необходимо ввести несколько терминов.
ТерминологияSNMP-агент - это то самое приложение, которое крутится на том самом устройстве, сведения о котором нам нужны.
SNMP-менеджер - это приложение, которое опрашивает SNMP-агент, чтобы SNMP-агент предоставил SNMP-менеджеру
...
Аватар для Loafer
Старый
Знакомство с fanotify
Запись от Loafer размещена 16.08.2021 в 13:51
Показов 7449 Комментарии 0

В ядре Linux есть подсистема, которая называется fanotify. Данная подсистема позволяет ставить под мониторинг файловые операции в операционной системе (ОС) над определенными объектами файловой системы: файлы, директории и точки монтирования. Основным объектом в данной подсистеме является внутренний объект ядра, который называется fanotify notification group или просто fanotify group (FG). FG представляет собой список объектов файловой системы, которые
...
Аватар для Loafer
Старый
Рейтинг: 4.50. Голосов: 2.
Шпаргалка по iptables
Запись от Loafer размещена 12.04.2021 в 13:54
Показов 2805 Комментарии 0
Метки centos

ТерминологияNetfilter - файрвол/брандмауэр ядра Linux.
iptables - утилита для управления Netfilter.
На абстрактном уровне iptables состоит из таблиц (tables). Каждая таблица состоит из цепочек (chains). Каждая цепочка состоит из правил (rules). Надо понимать тот факт, что таблицей по умолчанию является таблица Filter. В этой таблице записываются правила, согласно которым фильтруется входящий/исходящий трафик. За входящий трафик отвечает цепочка INPUT, за исходящий трафик - OUTPUT. Соответственно,
...
Аватар для Loafer
Старый
Преобразование строки в число
Запись от Loafer размещена 02.10.2020 в 14:42
Показов 2126 Комментарии 5
Метки c++

Функция, проверяющая, что входная строка содержит корректное для заданного целочисленного типа значение в пределах допустимых значений. На вход передается строка, а необходимый целочисленный тип задается как параметр шаблона.
C++
1
2
3
4
5
6
template <typename T, typename = std::enable_if_t<std::is_integral<T>::value>>
bool check_is_integral(const std::string& str) {
  // Случай str == ''
  if (str.empty()) {
    return false;
  }
...
Аватар для Loafer
Старый
Потокобезопасная очередь
Запись от Loafer размещена 10.08.2020 в 16:51
Показов 3108 Комментарии 11
Метки c++

Оставляю здесь кусок кода, который возможно мне понадобится в будущем.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#pragma once
 
// Очередь реализуется согласано книге Anthony Williams -
// "C++ Concurrency in Action: Practical Multithreading".
// Смотреть главу 6, раздел 6.2
 
#include <condition_variable>
#include <memory>
#include <mutex>
 
template <typename T>
class
...
Аватар для Loafer
Старый
Intervals problem
Запись от Loafer размещена 25.03.2020 в 16:42
Показов 1150 Комментарии 0
Метки c#

Поиск общих интервалов между массивами интервалов.

C#
1
2
3
4
5
6
7
8
9
10
11
using System;
using System.Collections.Generic;
 
namespace intervals
{
    public class Program
    {
        public static List<int> CommonManyIntervals(List<List<int>> vectors)
        {
            List<int> result = CommonTwoIntervals(vectors[0], vectors[1]);
            for (int i = 2; i < vectors.Count; ++i)
...
Аватар для Loafer
Старый
Concurrency problem
Запись от Loafer размещена 23.03.2020 в 14:40
Показов 2976 Комментарии 20
Метки c++, concurrency

Асинхронный запуск переданных лямбда-функций в том порядке, в котором они переданы.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <atomic>
#include <condition_variable>
#include <functional>
#include <iostream>
#include <list>
#include <mutex>
#include <thread>
#include <vector>
 
class Executor
{
public:
  Executor(): _firstExec{true}, _isStop{false}
  {}
...
Аватар для Loafer
Старый
Еще одна задача
Запись от Loafer размещена 15.02.2020 в 16:49
Показов 2666 Комментарии 0

Еще одна задачка, которую мне пришлось решать по тем или иным обстоятельствам. Оставлю ее здесь на память. Приведу ее текст на английском, ибо переводить мне лень.

Yet another taskYou are given two arrays A and B consisting of N integers each.

Index K is named fair if the four sums (A[0] + ... + A[K - 1]), (A[K] + ... + A[N - 1]), (B[0] + ... + B[K - 1]) and (B[K] + ... + B[N - 1]) are all equal. In other words, K is the index where the two arrays, A and B, can be split (into two non-empty
...
Аватар для Loafer
Старый
Ключи Valgrind
Запись от Loafer размещена 19.11.2019 в 18:31
Показов 2769 Комментарии 0

Запись в блоге, чтобы быстро найти необходимые ключи для отладки утечек памяти с помощью Valgrind.

Проверить на наличие Debug-символов:
Bash
1
objdump --syms <executable> | grep debug -i
Запустить Valgrind:
Bash
1
valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose --log-file=valgrind-out.txt <executable>
Аватар для Loafer
Старый
Рейтинг: 5.00. Голосов: 1.
Разбиение диска с помощью Logical Volume Manager
Запись от Loafer размещена 15.04.2019 в 14:41
Показов 2702 Комментарии 5

Возникала у меня следующая проблема. После установки системы RHEL на машину с SSD-диском, у меня остались два HDD-диска, которые "висят в воздухе" и никак не монтированы в систему. Жалко терять целый терабайт памяти просто так. Для монтирования их в систему и дальнейшего использования я решил воспользоваться функционалом, который называется Logical Volume Manager. LVM предоставляет дополнительный слой абстракции над железом. Например,
...
Аватар для Loafer
Старый
Шпаргалка по openssl
Запись от Loafer размещена 21.03.2019 в 14:38
Показов 41085 Комментарии 3

OpenSSL - это инструмент, который позволяет проводить большинство криптографических операций, в числе которых шифрование, цифровая подпись, генерация сертификатов и т. д. Данный инструмент имеет непосредственно саму утилиту openssl и API, которое представлено в библиотеках libcrypto, которая содержит реализации общих криптографических операций, и libssl, которая содержит реализацию протоколов SSL/TLS.

В данной записи я напишу те команды утилиты openssl, которые на данный...
Аватар для Loafer
Старый
Первые шаги на C#
Запись от Loafer размещена 24.01.2019 в 17:55
Показов 2592 Комментарии 4
Метки c#

С недавнего времени решил изучить такой замечательный язык программирования, как C#. После C++ и мучений с системами сборки и с зависимостями C# кажется просто идеальным. Как известно, лучше всего что-то учить, применяя это на практике, решая реальные задачи.

Недавно мне понадобилась утилита для анализа звуковых файлов в формате wav. Утилита просто выводит содержимое заголовка wav-файла в стандартный поток вывода. Для разработки я также использовал NuGet-пакет CommandLineParser.Оставляю...
Аватар для Loafer
Старый
Рейтинг: 5.00. Голосов: 1.
API для работы с ВКонтакте
Запись от Loafer размещена 12.10.2018 в 16:38
Показов 2897 Комментарии 5

Очередной говно-скрипт на Python'е, выложенный здесь, чтобы он не потерялся. В теории, можно было бы выкладывать код на GitHub'е, но я считаю, что там надо выкладывать только что-то стоящее и то, что будет поддерживаться и иметь жизненный цикл.

Скрипт нужен, чтобы сгруппировать друзей заданного пользователя по городам. Также, скрипт выводит друзей друзей из определенного города, если они есть в списке заданного пользователя.
Python
1
2
import getpass
import pprint
...
Аватар для Loafer
Старый
Знакомство с FUSE
Запись от Loafer размещена 30.09.2018 в 18:06
Показов 3106 Комментарии 2

FUSE - это свободный модуль для ядер UNIX-подобных операционных систем, позволяющий разработчикам создавать новые типы файловых систем, доступные для монтирования пользователями без привилегий (в первую очередь - создание виртуальных файловых систем). Более подробно можно почитать здесь и здесь.

Сам я не стал очень глубоко погружаться в изучение данной темы. Просто стало интересно, как можно реализовывать...
Аватар для Loafer
Старый
Рейтинг: 5.00. Голосов: 1.
Перехват сетевого трафика
Запись от Loafer размещена 23.09.2018 в 12:48
Показов 4826 Комментарии 6

В связи с некоторой направленностью деятельности моего нового места работы, мне пришлось разбираться в вещах, в которых я бы сам себя разбираться никогда бы не заставил. Речь идет о перехвате сетевого трафика и о стеке протоколов TCP/IP.
В одной из своих прошлых заметок я приводил код для работы с epoll в Linux на примере реализации супер простого TCP-сервера. Для меня самым непонятным было то, как связаны интерфейс сокетов и перехват
...
Аватар для Loafer
Старый
Задача с собеседования №3
Запись от Loafer размещена 02.09.2018 в 18:19
Показов 3247 Комментарии 14
Метки c++, interview

Третья задача с собеседования. Задача звучит следующим образом. Дано дерево (не обязательно бинарное). На вход функции подаются два узла дерева. Необходимо определить, имеют ли они общего родителя, который не является корнем дерева (возвращается true). Если же общий предок только корень дерева, то возвращается false.

Нажмите на изображение для увеличения
Название: continents2.jpg
Просмотров: 439
Размер:	90.2 Кб
ID:	5022

C++
1
2
3
4
5
6
#include <iostream>
#include <vector>
 
struct Node
{
  Node(int level_, struct
...
Аватар для Loafer
Старый
Задача с собеседования №2
Запись от Loafer размещена 01.09.2018 в 16:52
Показов 2040 Комментарии 0
Метки c++, interview

Вторая задача с собеседования. Задача звучит следующим образом. Дано бинарное дерево. В каждом узле дерева есть указатель next, в котором хранится адрес узла справа. Если узла справа нет, то ссылка равна NULL. Необходимо правильным образом заполнить указатели next в каждом узле.

Нажмите на изображение для увеличения
Название: tree_next2.jpg
Просмотров: 1142
Размер:	80.2 Кб
ID:	5021

C++
1
2
3
4
5
6
7
8
#include <iostream>
#include <string>
 
struct Node
{
  Node(int _value):
  value(_value),
  left(nullptr),
...
Аватар для Loafer
Старый
Использование epoll в Linux
Запись от Loafer размещена 22.08.2018 в 15:27
Показов 3625 Комментарии 0
Метки c++, interview

Программный интерфейс epoll - это API мультиплексированного ввода-вывода, предоставляемого Linux для приложений. Более подробно можно прочитать здесь, либо в справочных man-страницах. Здесь приведен пример работы с epoll, чтобы в дальнейшем можно было быстро вспомнить, как его использовать.
C++
1
2
3
4
5
6
7
8
// for sqrt
#include <cmath>
// for printf
#include <cstdio>
// for memset
#include <cstring>
// for gnu_get_libc_version
#include
...
Аватар для Loafer
Старый
Задача с собеседования №1
Запись от Loafer размещена 12.08.2018 в 19:00
Показов 2749 Комментарии 2
Метки c++, interview

Проходил я собеседование в одну из крупных компаний России. Целью была проверка уровня своих знаний. В этом блоге я хочу выложить свои решения ко всем задачам, которые мне были выданы.

Начнем с первой задачи. Задача звучит следующим образом: реализовать LRU-кэш. Что такое LRU-кэш можно прочитать здесь. Если вкратце, то это такая структура данных, которая:
  1. вставляет элемент в начало и удаляет с конца, если кэш полон;
  2. если к
...
Аватар для Loafer
Старый
Debug символы и прочее
Запись от Loafer размещена 01.05.2018 в 15:07
Показов 3510 Комментарии 0

Компиляция программы с добавлением отладочной информации в запускаемый файл (debug символы):
Bash
1
g++ gcc-debug.cpp -g -Og -o gcc-debug
По умолчанию на Linux-системах отладочная информация хранится в формате DWARF версии 4.
Разделение отладочной информации от остальной информации в ELF-файле происходит следующим образом:
Bash
1
2
3
objcopy --only-keep-debug ./gcc-debug ./gcc-debug.dbg
strip --strip-debug ./gcc-debug
objcopy --add-gnu-debuglink=./gcc-debug.dbg
...
Аватар для Loafer
Старый
From Oracle to MySQL
Запись от Loafer размещена 24.04.2018 в 17:25
Показов 2645 Комментарии 2

Установка пакета:
Bash
1
pip3 install python-docx
Наговнокодил на Python'е:
Python
1
2
3
4
5
6
7
8
9
10
11
12
import docx
import re
import sys
 
def column_0(cell_text):
  sys.stdout.write("  `{}` ".format(cell_text.lower()))
 
def column_1(cell_text):
  if cell_text == "DATE":
    sys.stdout.write("TIMESTAMP ")
  # Поиск NUMBER
  result = re.search(r'NUMBER\((.*)\)', cell_text)
...
Аватар для Loafer
Старый
Работа с гибридной графикой
Запись от Loafer размещена 01.10.2017 в 20:24
Показов 2632 Комментарии 0

Есть ноутбук с наличием интегрированной карты Intel и дискретной карты NVIDIA. Можно организовать совместную работу данных карт с помощью пакета Bumblebee.
Установим необходимые пакеты (драйверы для видеокарт, реализацию OpenGL Mesa и сам пакет Bumblebee):
Bash
1
sudo pacman -S bumblebee bbswitch mesa nvidia xf86-video-intel
Добавим пользователя loafer (как пример) в группу bumblebee:
Bash
1
sudo gpasswd -a loafer bumblebee
Включим запуск...
Аватар для Loafer
Старый
Рейтинг: 2.67. Голосов: 6.
Настройка FTP сервера vsftpd
Запись от Loafer размещена 25.06.2017 в 14:24
Показов 5567 Комментарии 2
Метки ftp

Установка пакета:
Bash
1
sudo pacman -S vsftpd
Прописываем в файле /etc/vsftpd.conf:
Bash
1
2
anonymous_enable=NO
local_enable=YES
Автоматический запуск сервера:
Bash
1
sudo systemctl enable vsftpd.service
Аватар для Loafer
Старый
Рейтинг: 3.00. Голосов: 5.
Настройка ReadyMedia (MiniDLNA)
Запись от Loafer размещена 25.06.2017 в 14:12
Показов 6040 Комментарии 0

Установка пакета:
Bash
1
sudo pacman -S minidlna
Отредактировать файл /etc/minidlna.conf:
Bash
1
2
3
4
5
6
7
user=loafer
media_dir=V,/home/loafer/torrents
friendly_name=Loafer DLNA Server
db_dir=/home/loafer/.config/minidlna/cache
log_dir=/home/loafer/.config/minidlna
inotify=yes
presentation_url=http://192.168.0.101:8200/
Провести следующие действия:
Bash
1
install -Dm644 /etc/minidlna.conf ~/.config/minidlna/minidlna.conf
...
Аватар для Loafer
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru