Форум программистов, компьютерный форум, киберфорум
Loafer
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
Старый
Рейтинг: 5.00. Голосов: 1.
Настройки VS Code
Запись от Loafer размещена 13.04.2026 в 19:18
Показов 3317 Комментарии 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
Показов 5225 Комментарии 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
Показов 4274 Комментарии 0
Метки c++, ccache, sccache

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

Алгоритм работы этих приложений можно отобразить картинкой:...
Аватар для Loafer
Старый
Настройка MTProxy
Запись от Loafer размещена 11.06.2025 в 10:55
Показов 4875 Комментарии 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
Показов 3504 Комментарии 21
Метки programming

Прочитал наконец-то большую книгу по программированию за долгое время - Crafting Interpreters. Если вкратце, то книга про то, как создаются языки программирования. По факту, в книге реализуется язык программирования, который автор назвал Lox, двумя способами - интерпретируемый язык на основе AST, и управляемый язык на основе виртуальной машины. Особенностью книги является то, что ЯП реализуется полностью с нуля, не прибегая ко всякого рода внешним утилитам, вроде yacc или lex. Она очень...
Аватар для Loafer
Старый
Настройка NFS
Запись от Loafer размещена 18.04.2022 в 19:51
Показов 1330 Комментарии 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
Показов 3246 Комментарии 0
Метки snmp

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

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

ТерминологияNetfilter - файрвол/брандмауэр ядра Linux.
iptables - утилита для управления Netfilter.
На абстрактном уровне iptables состоит из таблиц (tables). Каждая таблица состоит из цепочек (chains). Каждая цепочка состоит из правил (rules). Надо понимать тот факт, что таблицей по умолчанию является таблица Filter. В этой таблице записываются правила, согласно которым фильтруется входящий/исходящий трафик. За входящий трафик отвечает цепочка INPUT, за исходящий трафик - OUTPUT. Соответственно,
...
Аватар для Loafer
Старый
Преобразование строки в число
Запись от Loafer размещена 02.10.2020 в 14:42
Показов 2142 Комментарии 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
Показов 3128 Комментарии 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
Показов 1160 Комментарии 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
Показов 3014 Комментарии 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
Показов 2683 Комментарии 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
Показов 2796 Комментарии 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
Показов 2720 Комментарии 5

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

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

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

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

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

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

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

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

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

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

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

Нажмите на изображение для увеличения
Название: continents2.jpg
Просмотров: 456
Размер:	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
Показов 2059 Комментарии 0
Метки c++, interview

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

Нажмите на изображение для увеличения
Название: tree_next2.jpg
Просмотров: 1168
Размер:	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
Показов 3667 Комментарии 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
Показов 2796 Комментарии 2
Метки c++, interview

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

Начнем с первой задачи. Задача звучит следующим образом: реализовать LRU-кэш. Что такое LRU-кэш можно прочитать здесь. Если вкратце, то это такая структура данных, которая:
  1. вставляет элемент в начало и удаляет с конца, если кэш полон;
  2. если к
...
Аватар для Loafer
Старый
Debug символы и прочее
Запись от Loafer размещена 01.05.2018 в 15:07
Показов 3523 Комментарии 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
Показов 2660 Комментарии 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
Показов 2645 Комментарии 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
Показов 5612 Комментарии 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
Показов 6046 Комментарии 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
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru