Как стать автором
Обновить
1
0

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

Отправить сообщение

Хочу стать тимлидом: как выбрать свой путь от специалиста в руководители

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров2.9K

Когда я работал программистом, мне было интересно не только написание кода. Я всегда любил анализировать, как в целом происходит работа в нашем отделе. Практически с самого начала карьеры мне казалось, что «изнутри» я вижу слабые места процессов и понимаю, как можно их улучшить и сделать проще. Шло время, опыт увеличивался, а желание влиять на происходящее постепенно становилось всё больше.

И вот, в какой-то момент мне захотелось попробовать себя в роли руководителя, но возникла проблема: я не знал, как им стать. Ответа на вопрос: «Что нужно делать, чтобы занять свою первую управленческую должность?» не было. Точнее, он был, но лишь в теории.

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

Мы поговорим о том, какой путь выбрал я сам, и по какому шли мои коллеги. В конце постараемся вместе ответить на вопрос: «Как выбрать путь, подходящий для вас?». На тот момент я бы очень хотел прочесть такой гайд, но его ещё никто не написал. Это и побудило меня к созданию этой статьи:)

Читать далее
Всего голосов 12: ↑11 и ↓1+12
Комментарии0

Реверс-инжиниринг нативно скомпилированных .NET-приложений

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров4.9K


Изучение внутреннего устройства приложений, созданных с использованием нативной опережающей компиляции (AOT).


На платформе .NET 7 впервые была представлена новая модель развертывания: опережающая нативная компиляция. Когда приложение .NET компилируется нативно по методу AOT, оно превращается в автономный нативный исполняемый файл, оснащённый собственной минимальной средой исполнения для управления выполнением кода.
Читать дальше →
Всего голосов 29: ↑26 и ↓3+37
Комментарии4

HackBat: мощная DIY альтернатива Flipper Zero на базе открытого исходного кода

Время на прочтение4 мин
Количество просмотров25K

Встречайте HackBat: DIY (сделай сам) устройство, основанное на открытом исходном коде и аппаратном обеспечении, разработанное Пабло Трухильо Хуаном как мощная альтернатива Flipper Zero. Оно пропагандирует свободу разработки и модификации, обеспечивая пользователям возможность сами создавать и настраивать свои устройства. В отличие от Flipper Zero, HackBat позволяет пользователям самим программировать MCU и взаимодействовать с Wi-Fi и RF-трансиверами, что обеспечивает большую гибкость и возможности для настройки.

Самое интересное в этом небольшом проекте — это то, насколько много общего у него с Flipper Zero. Hackbat также позиционируется в качестве "швейцарского армейского ножа" для проведения тестов на проникновение и использует некоторые из тех же функций, что и NFC. Однако, в отличие от Flipper Zero, Hackbat является открытым проектом и стоит дешевле, чем его родственник с ценником в $169. Фактически, после недавнего исчезновения Flipper One, люди, которые такие устройства, могут обнаружить, что Hackbat является подходящей заменой.

Пабло Трухильо опубликовал проект на Hackster, где подробно рассказал о проекте. Основной идеей Hackbat является создание устройств для тестирования на проникновение, доступных для всех.

Читать далее
Всего голосов 57: ↑43 и ↓14+51
Комментарии33

Ответ на «Коротко о том, почему Rust лучше C/C++» или меня не бомбит

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров26K

Собственно ответка на указанную статью.

Решил ответить на претензии автора. А так же рассказать, почему С\С++ именно такой какой есть. Почему приняты такие решения при его создании и развитии. Указать на явные недостатки Rust'а и его инфраструктуры. Язык не может существовать сам по себе. Он должен иметь не только токсичное сообщество, но и быть нужным работодателю.

Поехали
Всего голосов 84: ↑59 и ↓25+52
Комментарии294

Похоже, я придумал свой алгоритм поиска кратчайшего пути (upd: меня опередили...)

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров36K

Всем привет! Я реализовал, похоже, собственный алгоритм поиска кратчайшего пути с отрицательными ребрами графа.

Почему собственный? Я искал подобное решение, но не нашел, возможно, оно уже было реализовано, просто плохо поискал. Жду Нобелевскую премию =)

Додумался я до него путем модификации классического Дейкстры. Прошу адекватно отнестись к содержимому, ибо это моя первая статья, и, возможно, я ничего не придумывал и, вообще, этот алгоритм не работает вовсе (но по многочисленным тестам он работает правильно).

Читать далее
Всего голосов 102: ↑94 и ↓8+102
Комментарии111

Я скучаю по механикам из старых игр

Время на прочтение13 мин
Количество просмотров75K

За время существования индустрии разработки игр формул разных механик, способных развлечь нас, придумали не одну сотню. Что-то умерло засветившись в паре игр, что-то ушло со временем, какие-то существуют до сих пор. Есть и такие, которые не просто выжили, но стали мейнстримом, хотя только портят нервы игрокам. Игровой дизайн большинства старых игр, от второго фолыча до первого FarCry и пятью активными перками, пусть и не был вершиной искусства - затягивал не хуже современных песочниц с миллионом активностей. Редкую игру захочется пройти второй раз, а как вспомню, что на прохождение можно потратить под сотню и больше часов - думаю, а оно мне действительно было надо? Можно же было заняться чем-то более интересным. Я знаю, чем закончился второй фолыч, знаю это уже четвертый раз, но каждый раз игра удивляет меня чем-то новым. А вот нового "Аватара" бросил на половине, слишком много всего и все недоделанное, и прозрачные стены... просто бич игры. И тут вопрос, чего-то не хватает в этой раздутой, перекачанной сотней механик игре? Только задумайтесь - в аватаре больше сотни основных механик, которые влияют на окружение. Может в играх что-то потерялось? Хотя "потерялось" - звучит странно - за столько лет индустрия только создала просто море всего нового. Статья ориентирована на "побурчать", так что не ждите каких-то великих секретов и тонкостей мастерства.

Раньше и флешки квадратнее были...
Всего голосов 135: ↑130 и ↓5+150
Комментарии457

CPU планировщики в Linux

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров11K

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

Читать далее
Всего голосов 25: ↑25 и ↓0+29
Комментарии0

Динамическая JIT компиляция C++

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров5.9K


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


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


Так, на днях искал материалы про JIT компиляцию C++ в рантайме с помощью clang/llvm и поиск мне выдал мою же собственную статью трехгодичной давности: Динамическая JIT компиляция С/С++ в LLVM с помощью Clang / Хабр. В результате появилась уже эта новая статья про JIT компиляцию C/С++.

Читать дальше →
Всего голосов 7: ↑6 и ↓1+9
Комментарии4

Кратко про экосистему RAPIDS для работы с данными на GPU

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.3K

Привет, Хабр!

RAPIDS — это open source библиотека экосистема, состоящая из нескольких библиотек, разработанная NVIDIA, которая предоставляет набор инструментов для выполнения всего цикла обработки данных и аналитики на GPU. RAPIDS была создана с целью того, чтобы ускорить анализ данных и работу в ML, используя всю мощь GPU, и делает это, предоставляя в целом привычный интерфейс, похожий на тот, к которому привыкли в Pandas, Scikit-learn и т.д.

RAPIDS основан на CUDA, архитектуре параллельных вычислений от NVIDIA. Операции, которые когда-то занимали минуты или часы на CPU, теперь могут быть выполнены за секунды на GPU, благодаря параллелизму и высокой пропускной способности памяти GPU.

Читать далее
Всего голосов 7: ↑6 и ↓1+7
Комментарии0

Выявление ошибок в работе с памятью в C и C++: Сравниваем Sanitizers и Valgrind

Время на прочтение24 мин
Количество просмотров7.1K

В этой статье вашему вниманию представлено сравнение двух инструментов для поиска ошибок в работе с памятью в программах, написанных на memory-unsafe (небезопасных при работе с памятью) языках — Sanitizers и Valgrind. Эти два инструмента работают совершенно по-разному. Поэтому, хоть Sanitizers (разработанный инженерами Google) имеет ряд преимуществ перед Valgrind, у каждого из них есть свои сильные и слабые стороны. Следует сразу отметить, что проект Sanitizers имеет название во множественном числе, потому что он состоит из нескольких инструментов, которые мы рассмотрим в этой статье в совокупности.

Читать далее
Всего голосов 9: ↑8 и ↓1+9
Комментарии3

Уходящий в историю стандарт. Запускаем базовую станцию 3G (UMTS)

Уровень сложностиСложный
Время на прочтение11 мин
Количество просмотров9.9K
Приветствую всех!

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



Итак, в сегодняшней статье разберёмся с тем, как собрать и заставить работать софт для поднятия сотовой сети типа UMTS. Узнаем, как устроены и работают такие сети. Традиционно будет много интересного.
Читать дальше →
Всего голосов 62: ↑62 и ↓0+62
Комментарии46

В поисках самой мощной видеокарты! Тестируем А100 и А6000 Ada на большой языковой модели

Время на прочтение11 мин
Количество просмотров6.9K

Большие языковые модели (LLM) произвели настоящую революцию в мире ML. Все больше компаний стремятся так или иначе извлечь из них пользу. Например, в Selectel мы оцениваем рациональность развертывания частной LLM для помощи сотрудникам техподдержки в поиске ответов на вопросы клиентов. Эту задачу мы решили совместить с тестом нового железа — видеокарты Ada с 48 ГБ RAM. В соперники ей выбрали А100 на 40 ГБ.

Сразу оговоримся, что нормально обучить LLM на одной GPU практически невозможно, но в качестве теста производительности такая задача вполне подходит. Под катом рассказываем, как мы проводили тест-драйв двух GPU и к каким выводам пришли.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+35
Комментарии13

Как написать свою маленькую ОС

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров43K


Большое начинается с малого. Например, ядро Linux 0.0.1 состояло всего из 10 239 строк кода, из них 20% комментарии. Такой проект вполне может осилить студент в качестве курсовой или дипломной работы, программируя по вечерам на домашнем ПК (собственно, Линус и написал его во время учёбы в университете, когда вернулся из армии).

Если один студент смог это сделать тогда, то почему нельзя повторить? И действительно, в интернете есть даже специальные обучающие ресурсы для написания новых ОС и целые сообщества энтузиастов, которые помогают друг другу в этом непростом деле.
Читать дальше →
Всего голосов 83: ↑78 и ↓5+98
Комментарии25

Создание генетического алгоритма для нейросети и нейроcети для графических игр и видеоигр с помощью Python и NumPy

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров6.5K

Привет, Хабр!

Сегодня я расскажу и покажу, как сделать Genetic Algorithm(GA) для нейросети, чтобы с помощью него она смогла проходить разные игры. Я его испробовал на игре Pong и Flappy bird. Он себя показал очень хорошо. Советую прочитать, если вы не читали первую статью: "Создание простого и работоспособного генетического алгоритма для нейросети с Python и NumPy" , так как я доработал свой код который, был показан в той статье.

Я разделил код на две скрипта, в одной нейросеть играет в какую-то игру, в другой обучается и принимает решения(сам генетический алгоритм). Код с игрой представляет из себя функцию которая возвращает фитнес функцию (она нужна для сортировки нейросетей, например, сколько времени она продержалась, сколько очков заработала и т.п.). Поэтому код с играми(их две) будет в конце статьи. Генетический алгоритм для нейросети для игры Pong и игры Flappy Bird различаются лишь параметрами.

Используя скрипт, который я написал и описал в предыдущей статье, я создал сильно изменённый код генетического алгоритма для игры Pong, который я и буду описывать больше всего, так как именно на него я опирался, когда я уже создавал GA для Flappy Bird.

Вначале нам потребуется импортировать модули, списки и переменные:

Читать далее
Всего голосов 11: ↑9 и ↓2+11
Комментарии4

Корутины C++ для чайников: пишем асинхронный веб-клиент

Уровень сложностиСредний
Время на прочтение24 мин
Количество просмотров25K

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

Читать далее
Всего голосов 55: ↑53 и ↓2+64
Комментарии34

Первый опыт работы с EventBus шиной событий | Автоматизация тестирования на Java

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.6K

Всем привет! Относительно недавно, мне повезло столкнуться с задачей автоматизации, связанной с шиной событий EventBus. Задача довольно интересная, поэтому хочу поделиться своим решением, вдруг помогу кому-нибудь)

Читать далее
Всего голосов 3: ↑1 и ↓2+1
Комментарии0

Переворачивающиеся при умножении числа

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров21K

Здравствуйте!

Расскажу о серии задач, которая случайно возникла в процессе решения другой задачи. Мне на глаза попалось равенство:

81 * 27 = 2187

– Интересно, – подумал я. – А бывают ли ещё такие числа, чтобы цифры слева и справа повторялись?

Читать далее
Всего голосов 71: ↑71 и ↓0+71
Комментарии52

ВКПа. Введение, ч.2. Копирование автоматов и начала имитационного моделирования

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.6K

Данный цикл статей - не техническая документация, не подробное описание научных идей. Это краткое, обобщенное описание возможностей среды ВКПа на простом примере. Демонстрация процессов и принципов работы в ней. Идеи - проверенная временем часть. Они описаны в статьях, ссылки на основные из них приведены в  первой части [1]. Без понимания этого материала невозможно разобраться, зачем вообще нужна подобная среда. Ведь, существует и другое автоматное программирование. Но только идеи, положенные в их основу, другие.

Отличие идей - это главное, чем объясняется необходимость среды ВКПа. Другой такой просто нет, как нет по большому счету и таких идей. И,  вообще, без понимания основ теории автоматов невозможно объяснить необходимость данной модели вычислений. Ведь, без автоматов программисты когда-то вполне обходились, а большая часть без них обходится и до сих пор.

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

Читать далее
Всего голосов 5: ↑4 и ↓1+4
Комментарии17

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

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров4.9K

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

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии5

Оценка эффективности программ обучения

Время на прочтение10 мин
Количество просмотров2.6K

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

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

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

Читать далее
Всего голосов 13: ↑9 и ↓4+5
Комментарии3
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность