Так себе программист
98 subscribers
185 photos
7 videos
1 file
183 links
Меня зовут Александр Троценко. Разработчик, преподаватель, к.т.н. Пишу о программировании и профессии.

10 лет в разработке desktop на C/С++

Контент: https://taplink.cc/atrotsenko
Download Telegram
Выше дан код на С++. Какой ожидаете вывод программы? (в постах можно найти подсказку)
Anonymous Quiz
8%
Первая строка "12345", вторая строка "12345"
0%
Одна строка "1234512345"
25%
Первая строка "1234", вторая строка "12345"
67%
Неопределенное поведение
Зачем нужна ротация логов

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

Вопрос логичный, если бы не некоторые “но”. Когда мы не используем ротацию, то:

1. Рискуем потерять весь файл логов при ошибке записи (например, при внезапном отключении питания).

2. Рискуем заполнить логами всё дисковое пространство.

3. Рискуем снизить производительность своего софта (что проявится у клиента, когда файл логов “разжирнеет”).

4. Делаем практически невозможным бэкап логов.

5. Усложняем запрос логов у клиента (164 гигабайта?! 😳 У меня нет такой флешки… Сейчас спрошу в отделе матобеспечения…)

6. Усложняем анализ логов (тут есть и техническая сторона, и психологическая).
👍1
void func1()
{
// ...
}

void func2() {
// ...
}

void func3()
{
// ...
}
Выше дан код на C++. У какой функции вариант постановки фигурных скобок правильный?
Anonymous Quiz
55%
У всех правильный
18%
func1
18%
func1 и func2
9%
func3
Как провести DOS-атаку

DOS-атака - это воздействие на вычислительную систему с целью доведения ее до отказа. Провести атаку можно с помощью утилиты hping3, завалив целевой хост кучей TCP-пакетов.

Команда может быть такой:
hping3 -S -a 192.168.2.10 --flood -p 5201 192.168.1.10


где :
-S - SYN-флаг (запрос на установку соединения),
-a 192.168.2.10 - адрес источника пакета,
--flood - отправка пакетов без ожидания ответа с максимальной скоростью (режим флуда),
-p - порт назначения,
192.168.1.10 - атакуемый адрес.

Таким образом hping3 задудосит SYN-запросами целевой хост, игнорируя все ответы от него (а хост будет отвечать, пытаясь добросовестно подтвердить соединение).

Используйте инструмент, чтобы исследовать собственные системы и выстраивать стратегии защиты.

DOS АТАКА С HPING3
#сети #безопасность
❤1🤯1
Воистину, так себе программист

Пошел к коллегам с проблемой: "не собирается проект из песочницы, ничего не могу сделать, помогите!".

Конечно же народ откликнулся, накидали варианты. Исключительное участие и сочувствие. Но увы, не помогает. Уже в другую команду написал письмо...

И тут, спустя 3 часа, заметил, что неправильно ввожу команду.
Надо так:
> schroot -c debian9.amd64.buildd -- make

А я вот так:
> schroot -c debian9.amd64.buildd make


🤦‍♂️ чёрточки...

#факап
🤯5
Этот паттерн наиболее полно соблюдает принцип открытости/закрытости и предпочитает композицию вместо наследования. О чем речь?
Anonymous Quiz
6%
Одиночка
6%
Шаблонный метод
61%
Декоратор
28%
Фабрика
Дайте оценку. В какой из указанных диапазонов попадает максимальная зафиксированная масса синего кита?
Anonymous Quiz
13%
50 - 100 тонн
25%
100 - 200 тонн
38%
200 - 250 тонн
25%
250 - 350 тонн
Практика оценивания. С чего начать?

Для отработки навыка оценивания я, например, заводил табличку, где собирал данные по своим задачам.

Для каждой задачи фиксировал:
- оптимистичную оценку (если все пойдет хорошо);
- пессимистичную оценку (если все пойдет плохо);
- фактические трудозатраты;
- фактические отклонения от оценок;
- фактические календарные дни (для справки).

Оптимистичное и пессимистичное значения определяют диапазон оценки. Хорошей считается оценка, если в конечном итоге фактические трудозатраты оказываются в этом диапазоне.

Таким образом не только отрабатывался навык оценивания, но и накапливались исторические данные, по которым можно было уточнять свои новые оценки.
👍3
Как интересно человек работает на гитхабе. Контрибьютит в основном только по вторникам.

И так с 2019 года, почти 6 лет!

Вот это я понимаю расписание. Сложно представить какая там вообще может быть нагрузка.
🔥5
О поддержке документации

На одном из проектов надо было принять решение о комплектности поставки. Ну то есть какие библиотеки и программы надо подложить к основному продукту.

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

На первый взгляд.

Конечно же позже выяснилось, что Python необходим. Без него не работает перезагрузка конфигурации.

Дьявол в деталях. Неточность в документации привела к ошибке в принятии решений.

Пропускать этот момент я не стал и поправил ребятам доки. Кому-то сэкономлю время.

#опенсорс #сети
👍2🔥1
О рентгеновских лучах доходчиво

Попался интереснейший диафильм 1973 года о рентгеновских лучах. Кратко, наглядно, понятно. Подаче материала можно только поучиться.

Обратил внимание, что помимо медицины затронута инженерная тема - дефектоскопия рентгеном (слайд 31), которая и сегодня вполне себе используется.

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

Крайне рекомендую просмотреть весь диафильм. Там минут на 5.

#КнижнаяПолка #презентация #стараяшкола #медицина
👍2🔥2
Unix is user-friendly—it’s just choosy about who its friends are.


А ты дружишь с Unix? 😁
🥰2😢2
В этом полугодии по оценкам компании я молодец на 6 пунктов из 10 возможных! 💪

А в прошлом полугодии был молодец на 7 пунктов.

"Все нормально, падаю!"
🔥5👍2
Сколько аргументов должно быть у функции

Если коротко, то чем меньше, тем лучше.

Средствами языков этот параметр не ограничивается. Точнее пределы есть, но они неадекватно далеки.

Обычно этот вопрос пытаются закрыть стайл-гайдом, исходя из следующих убеждений:
- код должен быть простым для чтения;
- и простым для поддержки.

Я ориентируюсь на потолок в 4-5 аргументов. При превышении есть повод задуматься о разделении функции или выделении объекта.

Еще мнения можно почитать здесь.
👍4
Что в языке С++ обеспечивает полиморфизм времени компиляции?
Anonymous Quiz
37%
Виртуальные функции
26%
Шаблоны
21%
Статический анализатор
16%
Переопределение с final
🤯4