Pull to refresh
0
0
Send message

Уроки, которые я вынес из десяти лет работы над проектом с открытым кодом

Level of difficultyEasy
Reading time13 min
Views15K
Последние десять лет я занимался разработкой OSINT-инструмента под названием SpiderFoot; он используется для автоматизации сбора и анализа общедоступных данных с целью сократить поверхность атаки и выявить возможные угрозы. Это проект с открытым кодом, он написан на Python и занимает первые строки во многих из тех категорий GitHub, где фигурирует. На момент написания статьи у него около 7000 звезд. Пару лет назад я сделал SaaS-версию SpiderFoot под названием SpiderFoot HX, но это тема для отдельной статьи (а то и серия статей), которую мы отложим на потом. Сегодня я хочу рассказать, чему научился в процессе.

Вы будете правы, если предположите, что за эти десять лет SpiderFoot стал довольно большой частью моей жизни. Я проводил большую часть свободного утреннего и вечернего времени за «работой» над ним и часто вел беседы о нем с женой, детьми и друзьями. Он принес мне много радости, хотя подчас и действовал на нервы.

Поэтому сейчас, как представляется, наступил удачный момент для того, чтобы оглянуться назад, поразмышлять и сформулировать те уроки, которые я вынес из опыта и впитал в себя за это время. Эту статью я пишу отчасти для собственной пользы, но также и с надеждой, что она пригодится другим людям, которые или пошли похожим путем, создав свой проект с открытым кодом, или подумывают об этом, но еще не решились.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments1

Пишем игру от первого лица в 2КБ на Rust

Level of difficultyMedium
Reading time21 min
Views14K

Введение


Поначалу кажется, что создать игру от первого лица без движка или графического API практические невозможно. В этом посте я расскажу, как это сделать при помощи алгоритма под названием ray casting.

Моя цель — показать, что сложную задачу можно разбить на более простые части, и если я всё сделаю правильно, то у вас появится ощущение, что вы сами открыли, как работает игра.

Для начала разберёмся, как работает алгоритм, а затем построчно напишем его. Затем мы пересмотрим код, добавим несколько возможностей и оптимизируем его размер. Я постарался сделать пост максимально доступным и дружелюбным, но вам поможет приличное знание программирования, Rust и основ геометрии.
Читать дальше →
Total votes 61: ↑60 and ↓1+76
Comments10

Rust и C++ при создании астродинамической библиотеки

Level of difficultyMedium
Reading time6 min
Views7.1K

Моя прошлая статья заканчивалась тем, что у меня возникла проблема выбора на чем писать и я говорил, что в следующей части продолжу свое изложение как сравнение Rust и C++.  Но проблема на тот момент заключалось в том, что с первым из них я был знаком шапочно, и чтобы нести ахинею нужно было узнать его поглубже. И как оказалось этот процесс не очень простой.

Изначально я планировал еще привести сравнение производительности, но сейчас понимаю, что будет это не совсем корректно. «Почему?» – спросите Вы меня. Давайте разбираться вместе. Да, пока не начали, оговорюсь сразу, что в данной статье я решил не рассказывать о смысле приводимого кода, т.к. это сразу усложнит восприятие.

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments125

Information

Rating
Does not participate
Registered
Activity

Specialization

Test Automation Engineer, Software Performance Engineer
Lead
Python