четверг, 9 декабря 2021 г.

Установка FreeBSD

Виртуальная машина: Oracle VM VirtualBox
Используемый образ: FreeBSD13.iso

Если на компьютере или ноутбуке мало аппаратных ресурсов, используем установку ОС только в терминальном режиме, используем образ freebsd i386 (ОЗУ выделяем 512 Мб).

Если на компьютере или ноутбуке под работу виртуальной машины можно выделить 2 Гб ОЗУ и более 1 ядра процессора, используем образ freebsd amd64.

Во время установки обязательно создаем одного пользователя

После установки:
###################################################################
#                                                                 #
# Этап 1. После установки ОС, запрашиваем необходимые обновления. #
#                                                                 #
###################################################################

# Определяем обновляемые элементы ОС
freebsd-update fetch

# Выполняем обновление
freebsd-update install

# Обновляем информацию о доступных пакетах
pkg update

# Обновляем установленные пакеты
pkg upgrade

# Просматриваем информацию о системе
uname -rm

##############################################
#                                            #
# Этап 2. Устанавливаем средства разработки. #
#                                            #
##############################################

# Отображаем доступные для установки компиляторы gcc
pkg serach lang/gcc

# Устанавливаем компилятор gcc
pkg install -y lang/gcc

# Проверяем версию установленного компилятора gcc
gcc --version

# Отображаем доступные версии языка Python
pkg search python

# Устанавливаем Python
pkg install -y python

# Устанавливаем файловый менеджер (аналогичного Far Manager)
pkg install -y mc

# Запускаем файловый менеджер
mc

# Дополнительно устанавливаем nano (текстовый редактор)
pkg install -y nano

# как IDE для программирования будем использовать emacs
pkg install -y emacs

# для редактирования файлов можно также установить vim
pkg install -y vim

#
#
# Далее для работы в многооконном режиме минимально по ресурсам
pkg install -y xorg

# для запуска используем (интерфейс не очень удобен похож на Win3.1)
startx

Черновик. #####################################
#
# В качестве пользовательской графической оболочки
# будем используем xfce4, автоматически его запускать не будем,
# только с командной строки
#
# Устанавливаем Slim (х.з. что такое, видимо темы для оформления)
# pkg install -y slim slim-themes
#
# Устанавливаем саму оболочку xfce4
# pkg install -y xfce4
#
# Запускаем xfce4 с командной строки
startxfce4
#
#- - - - - - - - - - - - - - - - - - - - - - - -
#
# В случае, если графическую оболочке xfce4 хочите запускать
# автоматически при загрузке сервера, то в файл /etc/rc.conf, 
# прописываем следующие строки
# slim_enable=yes
# dbus_enable=yes
#
# для пользователя root создаем файл "/root/.xinitrc"
# и для созданного пользователя создаем
# файл /home/<username>/.xinitrc.
# Оба файла со следующим содержанием:
# exec /usr/local/bin/xfce4-session
###############################################

воскресенье, 7 ноября 2021 г.

TcpIpSocket класс, для приема/передачи байт-последовательностей

Пример использования:
---------------------

private void button1_Click(object sender, EventArgs e)
{
    Thread _thr = new Thread(_thr_process);
    _thr.IsBackground = false;
    _thr.Start();
}

CustomSocket socket;

private void event_socket_rx_data(byte[] msg)
{
    log.log_rx(msg);
}

private void event_socket_tx_data(byte[] msg)
{
    log.log_tx(msg);
}

private void event_socket_connect(string msg)
{
    log.log_msg(msg);
}


private void event_socket_noconnect(string msg)
{
    log.log_err(msg);
}

private void event_socket_close_connect(string msg)
{
    log.log_msg(msg);
}

private void _thr_process()
{
    socket = new CustomSocket();
    socket.event_rx = event_socket_rx_data;
    socket.event_tx = event_socket_tx_data;
    socket.event_close_connection = event_socket_close_connect;
    socket.event_connection = event_socket_connect;
    socket.event_noconnection = event_socket_noconnect;
    
    if (!socket.doConnect("192.168.0.209", 5205))
        return;

    socket.Send(new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05 }));

    rx_bytes = new byte[1024];
    socket.Receive(ref rx_bytes, 0, 1024, 2000);

    socket.CloseConnection();
}

Скачать класс: CustomSocket.cs

четверг, 4 ноября 2021 г.

Класс для логирования программы (RichTextBox)

Пример использования:
---------------------
...

using proj_namespace.Framework;

...

class Class_Name {

    RichTextBoxLogClass log;

    public Class_Name() {
        log = new RichTextBoxLogClass(rtbLog);
    }
    
    ...

    public void button_click(...) {
        log.log_msg("Начало выполнения операции.");
        log.log_err("Ошибка выполнения операции");
        log.log_tx("ASCII CMD SEND TEXT");
        log.log_rx("ASCII CMD RECIVED TEXT");
        log.log_tx(new byte [] {0x01, 0x20, 0x44, 0x55});
        log.log_rx(new byte [] {0x01, 0x20, 0x44, 0x55});
    }
}

Настраиваемые параметры:
------------------------
    log.col_msg - цвет текста сообщения, например, Color.Gray;
    log.col_err - цвет текста сообщения об ошибке, например, Color.Black;
    log.col_tx - цвет текста отправляемых данных, например,  Color.Red;
    log.col_rx - цвет текста принимаемых данных, например, Color.Blue;

    log.timestampFormat - формат вывода времени, например, "HH:mm:ss.ff";

    log.bytes_in_line - количество байт в строке, например, 16;
    log.hex_to_ascii_space - расст между hex и ascii строк, напр. 8;

Скачать: RichTextBoxLogClass.cs

вторник, 13 апреля 2021 г.

c# прозрачность Windows Forms

private void InitComponent()

{

         SetStyle(ControlStyles.UserPaint, true);

         SetStyle(ControlStyles.OptimizedDoubleBuffer, true);

         SetStyle(ControlStyles.SupportsTransparentBackColor, true);

         this.BackColor = Color.Transparent;

         this.TransparencyKey = BackColor;

}

среда, 7 апреля 2021 г.

C# language specification

C# language specification (version 6.0) - eng Скачать

C# language specification (version 5.0) - eng [2012] Скачать

C# language specification (version 5.0) - rus [2012] Скачать

C# language specification (version 4.0) - eng [2010] Скачать

C# language specification (version 3.0) - eng [2007] Скачать

C# language specification (version 2.0) - eng [2005] Скачать

C# language specification (version 1.2) - eng [2003] Скачать

C# language specification (version 1.0) - eng [2002] Скачать

вторник, 16 февраля 2021 г.

C# расчет MD5 по RFC 1321

Расчет MD5 хэша по следующему алгоритму:
1. Расчитывается MD5-хэш пароля;
2. Рассчитать MD5-хэш для команды CMD_LOGIN в следующем порядке:
- seed, полученный в ответ на команду CMD_GET_SEED;
- имя пользователя;
- MD5-хэш пароля.

Пример использования:

private void button1_Click(object sender, EventArgs e)
{
    // аргумент 1 - SEED
    // аргумент 2 - LOGIN
    // аргумент 3 - PASSWORD

    string hash = MD5CE.GetMagicHash(
                     "22B8B138A075315B43C0194DD0034527", 
                     "UserName", 
                     "Password");
}

Библиотека для C# (Visual Express 2010): md5ce.zip

Docker. Первые контейнеры

Источник:  php.dragomano.ru Структура каталогов: ~/develop/web/project/                  nginx/      - сервис web-сервера                php...