Sublime Text 3 — мой любимый текстовый редактор

txt блокнот из Windows7Приветствую, дорогие читатели и посетители моего блога! Мой любимый текстовый редактор это, конечно же, блокнот! Шутка. Блокно очень хорош, прост, быстр и без лишних наворотов, но иногда его не хватает. Часто хочется подсветки синтаксиса и автодополнений, а еще, чтобы были закладки, вызов консоли из редактора. Похоже на IDE, правда? Точнее, на текстовый редактор, встроенный в любую уважающую себя среду разработки.

Проблема в том, что слишком накладно получается запускать IDE ради текстового редактора, особенно это касается Visual Studio. Я не знаю сред разработки тяжелее, чем вижуалка. Именно для этого дела и придумали многофункциональные текстовые редакторы с огромным набором функций. Сейчас я расскажу, какой редактор остался в моей душе навсегда. И какой я использую сейчас, на системе Linux Ubuntu. Лучше найти не смог и уже наверное не смогу. Поехали!

читать далее «Sublime Text 3 — мой любимый текстовый редактор»

Генерация случайных чисел на C/C++ с помощью rand()

Приветствую всех, кто заскочил. В это короткой заметке будет пара слов о генерации псевдослучайных чисел на C/C++. В частности о том, как работать с самой простой функцией генерации — rand().

Функция rand()

Находится в стандартной библиотеке С++(stdlib.h). Генерирует и возвращает псевдослучайное число в диапазоне от 0 до RAND_MAX. Эта константа может отличаться в зависимости от компилятора или архитектуры процессора, в основном, это максимальное значение типа данных unsigned int. Параметров не принимает и никогда не принимала.

Для того, чтобы генерация свершилась, нужно выставить семя(seed) с помощью вспомогательной функции из той же библиотеки — srand(). Она принимает число и ставит его в качестве отправной точки в генерации случайного числа. Если семя не выставить, то при каждом запуске программы, мы будет получать одинаковые случайные числа. Самым очевидным решением является отправить туда текущее системное время. Сделать это можно с помощью функции time(NULL). Эта функция находится в библиотеке time.h.

С теорией разобрались, нашли все функции для генерации случайных чисел, теперь давайте погенерируем.

Пример использования функции генерации случайных чисел rand()

#include <ctime>
#include <iostream>
#include <cstdlib>

using namespace std;

int main() {
    srand(time(NULL));

    for(int i = 0; i < 10; i++) {
        cout << rand() << endl;
    }

    return 0;
}

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

Выставить границы диапазона для rand()

Чтобы сгенерировать число в диапазоне от A до B включительно, нужно написать так:

A + rand() % ((B + 1) - A);

Значения границ могут быть в том числе и отрицательными, что позволяет генерировать отрицательное случайное число, посмотрим пример.

#include <ctime>
#include <iostream>
#include <cstdlib>

using namespace std;

int main() {
    srand(time(NULL));

    int A = -2;
    int B = 8;

    for(int i = 0; i < 100; i++) {
        cout << A + rand() % ((B + 1) - A) << endl;
    }

    return 0;
}

Реализация и взлом шифра Цезаря

Лицо ЦезаряДоброго времени суток, дорогие читатели и посетители! Сегодня небольшое погружение в мир криптографии и шифрования. Для меня эта область представляет некоторый интерес. А в целом, знать об этом нужно!  В нашем цифровом веке без шифрования все уже давно бы рухнуло, ваша почта шифруется, ваши фото шифруются(в России вряд ли, но все же), ваши переписки тоже шифруются. В идеальном интернете шифроваться должно вообще все, особенно любая финансовая информация. Финансы защищены даже лучше, чем личная жизнь. В любом случае, сегодня полезно хотя бы примерно знать, как это все работает. Для начала, предлагаю посмотреть на мою реализацию самого простого из шифров. А там и до RSA доберемся, поехали!

Шифр простого сдвига

Так же известен под названием «Шифр Цезаря». Это шифр простой подстановки, при шифровании каждый символ текста заменяется символом, находящимся на некотором постоянном расстоянии левее или правее в алфавите. Наглядно на картинке из вики:

Действие шифра Цезаря

читать далее «Реализация и взлом шифра Цезаря»

Что изучает студент первого курса компьютерной безопасности

Доброго времени суток! На дворе сентябрь 2016 года, скоро выборы, агитаторы суетятся, но не об этом хочу рассказать. На данный момент я являюсь студентом четвертого курса специальности «Компьютерная безопасность». В начале учебного года на меня нахлынули воспоминания о том, как же хорошо(или плохо) было на младших курсах. Если вы собираетесь поступать на эту специальность или уже поступили, послушайте мои размышления об учебе. Естественно, в разных городах и ВУЗ`ах программа обучения может разниться, и даже у текущего первого курса названия предметов изменились. Но в целом суть я постараюсь отразить. Поехали!

Первый семестр

Предметы:
— математический анализ;
— геометрия;
— алгебра;
— информатика;
— история;
— физика;
— иностранный язык;
— физкультура.

читать далее «Что изучает студент первого курса компьютерной безопасности»

Мой скрипт для очистки системы Linux Ubuntu 16.04

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

На Windows для этой задачи пришлось бы установить какой нибудь CCleaner, или ему подобную программу. Кроме того, винда засоряется во много раз быстрее, реестр можно чистить хоть каждый день. Утром проснулся и пошел чистить. А программу очистки системы Linux можно заменить всего тремя командами в консоли. Для простоты и удобства я объединил их в один bash-скрипт, который запускаю раз в две-три недели и живу спокойно.

Создаем новый документ и пишем туда три волшебные команды.

#!/bin/bash

sudo apt-get install -f
sudo apt-get autoclean
sudo apt-get autoremove

Они почистят нам все оборванные зависимости и очистят кеш.

Делаем его исполняемым следующей командой

chmod +x fileName

Где «fileName» соответственно имя файла со скриптом.

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