Search
Write a publication
Pull to refresh
4
0

Пользователь

Send message

Улучшаем приложение для хранения заметок

Reading time12 min
Views5.1K

В предыдущей статье мы написали простое приложение для хранения заметок в памяти. В данной статье мы доработаем его. Теперь приложение будет хранить заметки в файле. Попутно разберёмся со следующими концепциями:

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

Читать далее

Есть ли жизнь без RTTI: пишем свой dynamic_cast

Reading time14 min
Views11K

В современном С++ осталось не так много вещей, которые не подходят под парадигму "Не плати за то, что не используешь". Одна из них – dynamic_cast. В рамках данной статьи мы разберёмся, что с ним не так, а когда поймём – попробуем предложить альтернативу.

Читать далее

Подробный разбор простого приложения на Rust

Reading time8 min
Views16K

В данной статье рассмотрим функции, переменные, типы данных, а также некоторые другие базовые элементы синтаксиса языка Rust на примере написания простого приложения для хранения заметок. Люди, знакомые с данным языком, вряд ли найдут для себя что-то интересное под катом. Для тех же, кто только начинает знакомиться с Rust или с разработкой ПО, статья может оказаться полезной. В частности, продемонстрировать, как идею простого приложения можно выразить, используя базовые элементы языка программирования.

Читать далее

Excel очень крут

Reading time4 min
Views24K
Статья Хилла Уейна, автора почтовой рассылки «Компьютерные штучки», которая посвящена формальным методам и применению математики в программировании, истории и культуре программного обеспечения, философии и теории программирования, а также всяким экзотическим штукам и нишевым темам. В общем, рекомендуем.

В прошлом выпуске рассылки Уейн игрался с языком программирования J, который работает как арифметический калькулятор в консоли, и пошутил по ходу дела:

Я столько времени трачу на интерактивные вычисления, что даже не мог оторваться от этих функций… Может, мне просто хорошенько освоить Excel?

Пошутив про офисную программу, Хилл Уейн решил действительно посмотреть на неё поближе… и был поражён увиденным: «Это как найти сундук с сокровищами у себя на чердаке», — пишет он. И перечисляет некоторые новые функции современного Excel, о которых мало кто знает.
Читать дальше →

150+ хакерских поисковых систем и инструментов

Reading time11 min
Views113K

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

Пост состоит из 8 объемных разделов:

1. метапоисковики и поисковые комбайны;

2. инструменты для работы с дорками;

3. поиск по электронной почте и логинам;

4. поиск по номерам телефонов;

5. поиск в сети TOR;

6. поиск по интернету вещей, IP, доменам и поддоменам;

7. поиск данных об уязвимостях и индикаторов компрометации;

8. поиск по исходному коду.

В этом списке собраны инструменты, которые члены нашей команды используют в работе. И все же, эта подборка пригодится не только пентестерам, но и разработчикам, журналистам, HR, маркетологам и всем, кто много ищет в интернете. Знания — это сила. Используйте их во благо.

Читать далее

Упрощаем код с помощью if constexpr и концептов C++17/C++20

Reading time14 min
Views19K

До C++17 у нас было несколько довольно неэлегантных способов написать static if (if, который работает во время компиляции). Например, мы можем использовать статическую диспетчеризацию или SFINAE. К счастью, ситуация изменилась к лучшему, ведь теперь мы можем воспользоваться для этого if constexpr  и концептами C++20!

Ну что ж, давайте разберемся, как мы можем использовать это в качестве замены std::enable_if кода!

Читать далее

Перевод книги Эндрю Ына «Страсть к машинному обучению» Главы 1 — 14

Reading time24 min
Views63K

Некоторое время назад в моей ленте в фейсбуке всплыла ссылка на книгу Эндрю Ына (Andrew Ng) "Machine Learning Yearning", которую можно перевести, как "Страсть к машинному обучению" или "Жажда машинного обучения".


image<img src="<img src="https://habrastorage.org/webt/ds/rc/ct/dsrcctfottkedkf7o1hxbqsoamq.png" />" alt="image"/>


Людям, интересующимся машинным обучением или работающим в этой сфере представлять Эндрю не нужно. Для непосвященных достаточно сказать, что он является звездой мировой величины в области искусственного интеллекта. Ученый, инженер, предприниматель, один из основателей Coursera. Автор отличного курса по введению в машинное обучение и курсов, составляющих специализацию "Глубокое обучение" (Deep Learning).

Читать дальше →

Структуры данных для самых маленьких

Reading time22 min
Views346K
James Kyle как-то раз взял и написал пост про структуры данных, добавив их реализацию на JavaScript. А я взял и перевёл.

Дисклеймер: в посте много ascii-графики. Не стоит его читать с мобильного устройства — вас разочарует форматирование текста.


Читать дальше →

Как защититься от сканирования портов и Shodan?

Reading time5 min
Views21K

Серверы в опасности!

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

Это может быть перебор портов с целью найти открытые от какой-то компании, которая позиционирует себя борцом за безопасность, но которая собирает статистику открытых портов на будущее по всем доступным IP (например Censys).

Может быть Shodan, который тоже собирает базу о том, где какие порты открыты, и отдаёт эту информацию любому заплатившему. И могут быть менее известные компании, которые работают в тени. Представьте, кто-то ходит по всем домам и переписывает модели замков входных дверей, дергает за дверь и выкладывает это в публичный доступ. Дичь! Но тоже самое происходит в интернете тысячи раз в секунду.
Кроме компаний могут быть бот-сети, перебирающие порты для поиска чего-то конкретного или для подготовки к целевым атакам.

Ну и собственно целевые атаки, во время которых ваши серверы в первую очередь тестируются на наличие открытых портов, а затем производятся атаки на найденные сервисы. Это может быть подбор эксплоитов для использования известных дыр или пока неизвестных 0-day, как и обычный DDoS.

Во всех этих сценариях используется предварительный перебор открытых портов. Скорее всего применение nmap или подобных утилит в каких-то скриптах.
Как защитить сервер от сканирования портов без CloudFlare и подобных прослоек?

Как стать невидимым для Shodan, Censys?

Программируем Arduino Uno на Rust: настраиваем среду и моргаем светодиодом

Level of difficultyMedium
Reading time8 min
Views19K

Кто-то из вас наверняка задавался вопросом: а нельзя ли программировать Arduino на чём-то более современном и удобном? Вот и я задавался. И нашёл Rust (не то, чтобы я о нём не знал). И на нём можно программировать микроконтроллеры AVR и платы Arduino, построенные на них. И здесь я расскажу о том, как настроить среду разработчика на Rust в Linux, GNU Emacs и Visual Studio Code и как запрограммировать Arduino Uno на моргание светодиодом.


#![no_std]
#![no_main]

use ruduino::Pin;
use ruduino::cores::current::{port};

#[no_mangle]
pub extern fn main() {
    port::B5::set_output();

    loop {
        port::B5::set_high();
        ruduino::delay::delay_ms(1000);
        port::B5::set_low();
        ruduino::delay::delay_ms(1000);
    }
}
Читать дальше →

Linux за 2$/100 рублей: Какой UMPC можно получить, покопавшись на барахолках?

Reading time6 min
Views21K

Всем привет! Вот и подошла следующая часть из моего цикла статей очень дешевых девайсов, которым я всегда стараюсь найти применение. И на этот раз, я хочу вам показать еще одну классную сторону онлайн-барахолок(дабы не было рекламой - названия не упоминаю, но вы и сами догадались). Китайцы многое делают, чтобы сделать рынок UMPC как можно более дешевым и доступным - Lctech выпустили свою высокоинтегрированную плату Pi Zero на бутербродном AllWinner F1C100S - в который уже встроено 32/64мб ОЗУ, и цена которого - около 900руб на AliExpress. Я же предлагаю собрать UMPC за 100-500 рублей, и без единого кликбейта, на гораздо более мощном железе и с встроенным Wi-Fi, иногда 3G, полным USB стеком и встроенной NAND памятью 4-8гб. Интересно? Добро пожаловать под кат!

Окунуться в мир UMPC

Еще один пересказ «туториала» Джека Креншоу

Reading time5 min
Views3.7K
Иногда более-менее не тривиальную задачку приятно решить с чувством легкого базиса под ногами. Базис как бы уже есть, и мы как нечто среднее между художником и архитектором, ловим себя (в данный момент времени) на перекладывании пустого в порожнее, готовя нечто яркое и крепкое (почти как красное полусухое ?. Яркое — потому что без йоты красоты легко сойти на полпути, а крепкое — профессия обязывает. Чтобы было еще ярче, призовем в помощь замечательные серии Jack Crenshaw compilers.iecc.com/crenshaw (non-technical introduction to compiler construction) и начнем, пожалуй, с построения маленького, но вполне достойного линтера en.wikipedia.org/wiki/Lint_(software) (Честно говоря, так как ниже будет имплементен разбор яваскрипт кода, вполне допустимо, но только временно, переименовать линтер в парсер и думать дальше в новых терминах)

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

Хеш-таблицы

Reading time9 min
Views289K

Предисловие


Я много раз заглядывал на просторы интернета, нашел много интересных статей о хеш-таблицах, но вразумительного и полного описания того, как они реализованы, так и не нашел. В связи с этим мне просто нетерпелось написать пост на данную, столь интересную, тему.


Возможно, она не столь полезна для опытных программистов, но будет интересна для студентов технических ВУЗов и начинающих программистов-самоучек.


image

Читать дальше →

А может, это логика? Занимательные задачки о лжецах и честных людях

Reading time3 min
Views10K

Заголовок оригинальной статьи “Could it be logic?” отсылает к названию песни Take That «Could it be magic?»
Участники группы: Гэри Барлоу, Ховард Дональд, Марк Оуэн, Робби Уильямс, Джейсон Орандж.


Если вы зашли сюда, чтобы почитать о британском бойз-бэнде Take That, автор приносит вам свои извинения. Ему постоянно приходится придумывать смешные заголовки со словом «логика».

Сегодняшние задачки решаются с применением логики. Первую вы могли уже встречать, и всё равно она представляет собой прекрасный пример элегантной загадки на логику.
Читать дальше →

Просто о сложном — пишем тесты с Google C++ Testing Framework (GTest, GMock)

Reading time9 min
Views75K

Всем привет. Недавно по работе возникла потребность разобраться с созданием новых тестов на GTest/GMock. Конкретно мой вопрос был связан с его конструкциями типа EXPECT_CALL и моками - что это за магические штуки и как они работают. Однако, по мере изучения выяснились и другие интересные вещи, с которыми хотел бы поделиться.

Читать далее

Знакомимся с дата-ориентированным проектированием на примере Rust

Reading time13 min
Views12K
image

James McMurray


В этом посте мы исследуем основные концепции «Data-Oriented Design» (далее «дата-ориентированное проектирование» на языке Rust.
Весь исходный код для этого поста выложен на Github.
Читать дальше →

Руководство по CMake для разработчиков C++ библиотек

Reading time18 min
Views109K

Данное руководство позволит читателю составить полную картину того, как организовать сборку C++ библиотек с использованием современных возможностей CMake. Предполагается, что читатель имеет представление о базовых понятиях из мира CMake и динамических/статических C++ библиотек, так как в руководстве они могут не объясняться.

Читать далее

Есть ещё выдающиеся программисты, кроме Торвальдса, Беллара и Дина? Знакомьтесь — Джастин Танни

Level of difficultyEasy
Reading time6 min
Views46K
Программистам не дают Нобелевские премии. Хотя некоторые заслуживают. В нашей отрасли есть настоящие герои с выдающимися достижениями. Эти люди не строят карьеру, перепрыгивая с одной должности на другую, прокачивая зарплату. Создаётся впечатление, что им карьера вообще не важна. В силу высокого интеллекта, врождённой любознательности и особого характера эти люди не способны выполнять скучные, рядовые задания. Только интересные или важные. И только по своей воле, не по указанию сверху.

На Хабре рассказывали про «чак норрисов» от программирования, таких как Линус Торвальдс, Фабрис Беллар и Джефф Дин. Конечно, есть и другие феноменальные таланты, их много. Зачастую эти люди далеки от публичности, никогда не давали интервью и известны только по никам. Но их объединяет одно — выдающиеся индивидуальные разработки, которые разрывают шаблон и выделяются из общей массы.

Мы собирали этот список несколько лет. Начнём с последних строчек своебразного хит-парада… Знакомьтесь — Джастин Танни (Justine Tunney), хакерша и гений системного программирования.
Читать дальше →

Шахматы на C++

Reading time68 min
Views53K

Не так давно я захотел написать свой шахматный движок. На удивление в Интернете нашлось не так много хороших статей на эту тему. Были статьи с довольно слабыми программами, многие из которых даже умудрялись пропускать некоторые важные правила. А были статьи с хорошими программами (некоторые из них были даже чуть лучше чем получилось у меня в итоге), но там авторы рассказывали лишь основные идеи, пропуская подробности, из-за чего написать что-то свое по таким статьям было проблематично. Поэтому после написания своей программы, я решил написать статью, дабы облегчить жизнь интересующимся в данной теме. Я не претендую на лучшую шахматную программу или на чистейший код, но эта статья будет хорошим и легким началом для тех, кто хочет написать что-то свое.

Читать далее

Как я написал telegram бота на Rust для отслеживания рейтинга при поступлении в вуз

Reading time8 min
Views11K

Привет, меня зовут Илья, я сейчас сдаю вступительные экзамены в магистратуру. Столкнулся при поступлении с проблемой, что результаты экзаменов в рейтинговом списке появляются не сразу, а постоянно его открывать и находить себя на странице - после раза двадцатого надоело. После исследования devtools я захотел написать приложение для отслеживания изменений рейтинга, а уведомления отправлять в телеграм. А Rust был выбран по простой причине - он мне понравился, ну и есть удобные штуки всякие.

Здравствуй, модератор! Извини, не знаю, где можно еще оставить такое сообщение. У меня есть сомнения по поводу того, нормально ли я наполнил статью, потому что вроде есть код, но пояснений к нему не прям чтобы очень много, не знаю, нормально ли это, или вообще ничего не понятно? Может стоит как то дополнить. И/или может еще что не так? И да, желательно чтобы этот абзац не попал в публикацию :sweet_smile:

Читать далее

Information

Rating
7,553-rd
Registered
Activity