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

Все потоки

Сначала показывать
Порог рейтинга
Уровень сложности

Пиши простой код

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

И это решит 95% проблем типичного стартапа. Как-то так повелось, что по всему СНГ и его окрестностям на работу набирают зумеров с колоссальным опытом в три года, и они начинают создавать идеальные архитектуры. Да, каждый из вас, как только получает возможность взять на себя хоть малейшую ответственность, сразу вспоминает все прочитанные и не прочитанные книги и пилит свою уникальную архитектуру, непохожую ни на что.

Читать далее

Вайб-кодинг: революция для стартаперов или ловушка для программистов?

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

Привет, чемпион! В этой статье я Никита и мой биг бро Алерон  мы вместе окунёмся в одну из самых хайповых тем года — vibe-coding решения. Почему это "болото"? Сейчас расскажем!

Вроде бы сначала всё выглядит просто: красиво, удобно, даже соблазнительно. Но спустя неделю ты уже перестаёшь писать код и просто таскаешь блоки, задаваясь вопросом: "А зачем я JS учил?". И это не шутка! Многие после первого успеха с vibe-coding начинают по-другому смотреть на разработку и сроки реализации. Но GitHub удалять рано — у всего есть оборотная сторона.

🔥vibe-coding — это проклятие или подарок Прометея? Давай разбираться.

Читать далее

Еще раз про Di-контейнеры в golang

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

В предыдущей статье я попросил — «Расскажите, зачем вам DI‑контейнер в golang». Большое спасибо всем, кто оставил коммент и проголосовал. Общий вывод такой: используем контейнер, потому что с ним удобно писать тесты. Тесты — весомый аргумент, особенно в контексте того, что тест — это часть кода. Получается, мы все таки «тащим» Di‑контейнер в проект. Ну, хорошо....

Вероятно, это будет uber‑fx, ведь у него хорошая документация, самое простое и понятное API по сравнению с другими..., или нет — не «тащим»?

Мой ответ — нет, uber‑fx не «тащим», потому что можно еще проще и понятнее.

Делаем...

Как быть писателем, когда всем скучно читать книги | Как я делала визуальную новеллу

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

Что делать писателям в современном жестоком мире, где никто не хочет читать книги?

Рассказываю о том, как я сделала игру на основе своей повести, чтобы её хоть кто-то прочитал.

А как всё было и зачем?

Истории

Первоапрельская теория (не)вероятностей

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

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

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

Два века назад Н.И. Лобачевский исключил одну из аксиом из евклидовой геометрии, и создал новую геометрическую теорию. Мы решили пойти по стопам великого математика и поэкспериментировать с другой важной математической теорией – теорией вероятностей, а именно: поменять один из ее постулатов и посмотреть на результат.

Читать далее

Не доверяйте groupby().first()

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

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

В этой статье рассмотрим, почему groupby().first() в pandas — не такая уж безопасная и очевидная штука, как может показаться. Особенно когда нужно достать первую строку группы в точности, как она была в датафрейме — с NaN, с порядком, без сюрпризов.

Но для начала рассмотрим отличия first от других подобных методов.

Читать далее

Обзор выставки-конференции по корпоративному обучению «GAME & LEARN». HR тренды-2025, внедрение ИИ, обучение лидеров

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

15 апреля в Москве прошла специализированная выставка-конференция по корпоративному обучению «GAME & LEARN». В статье я поделюсь личным впечатлением и мнением (исключительно субъективным) об этой выставке и выводами, которые тоже будут пристрастными.

Путеводитель к статье:

I. Для чего и почему? С какой целью я отправилась на данное мероприятие?

II. Описание мероприятия, заявленное организаторами.

III. Чем можно было заняться на выставке и организационное устройство мероприятия. Взгляд со стороны.

IV. Краткое описание выступлений избранных мной спикеров.

V. Субъективные выводы.

Читать далее

Зачем программисту алгоритмы?

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

Зачем программисту алгоритмы?

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

Однако сами программисты нередко удивляются, зачем всё это? Действительно, работа наших коллег часто заключается в поиске и устранении ошибок в залежах legacy кода. Какие уж там алгоритмы? Даже те, кому посчастливилось участвовать в новом проекте знают, что зачастую новый проект состоит на 80% из чужого, уже кем-то написанного и найденного на просторах гитхаба кода, а новый код - это, по сути, клей и обёртки, которые позволяют склеить эти уже готовые запчасти между собой, чтобы получить заданный продукт.

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

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

Попробуем разобраться

Как XTLS Reality обходит whitelist? Анализ исходного кода Reality

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

XTLS/Xray-core - инструмент для обхода цензуры с открытым исходным кодом. Он хорошо известен в Китае своими новыми и практичными концептуальными технологиями, а также создателем RPRX, который однажды исчез и, как считалось, сбежал. К таким технологиям относятся VLESS, XTLS-Vision, XUDP... О какой-то из них вы точно слышали или использовали.

С момента как в Китае началось внедрение новой системы цензурирование: белый список SNI (Server name indication), все инструменты обхода на основе TLS до появления REALITY и ShadowTLS, подключаемые напрямую или через транзит или CDN, стали недоступны.

Ранее широкое внимание привлек инструмент обхода ShadowTLS. Однако в то время ShadowTLS все еще находился в версии v1 с неполной кодовой базой и слабой устойчивостью к цензуре. Позже в Reality появилась возможность обходить цензуру на основе белого списка SNI, и он был интегрирован со зрелым инструментом обхода Xray-core.

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

Что такое белый список SNI? В чем связь между SNI и TLS?

Вы, возможно, знаете, что широко используемый протокол безопасности прикладного уровня, основа HTTPS, протокол TLS, имеет свой собственный «процесс рукопожатия» при инициировании соединения.

TLS был «гибридной системой шифрования» с момента разработки его первой версии. Это означает, что TLS использует как асимметричные, так и симметричные алгоритмы шифрования. Симметричные алгоритмы шифрования требуют, чтобы обе стороны имели абсолютно одинаковый ключ, а накладные расходы на шифрование и дешифрование низкие. В то время как асимметричное шифрование требует только обмена открытым ключом в своих соответствующих парах ключей, но требует проверки того, что открытый ключ не был заменен или подделан при обмене ключами, что привело к появлению механизма цифрового сертификата. Кроме того, накладные расходы на асимметричное шифрование и дешифрование высоки. Поэтому TLS использует асимметричное шифрование для передачи ключа, используемого для симметричного шифрования, и для того, чтобы обменять открытый ключ, используемый для асимметричного шифрования, родился механизм рукопожатия TLS.

Читать далее

Человек, которого выбрал ИИ

Время на прочтение17 мин
Количество просмотров987

Ученые всего мира продолжают обсуждать, может ли ИИ когда-нибудь, в отдаленном будущем, уничтожить Человечество. Давайте посмотрим на это под другим углом - может ли оно его спасти, причем - прямо сейчас?

Если посмотреть на коэффициенты рождаемости, цивилизованные страны вымирают. Простые прикидки показывают, что еще сотня-другая лет - и такие страны, как США, Россия и даже Китай могут полностью исчезнуть.

Проблема бесплодия - одна из самых актуальных проблем в мире. Более полутора сотен миллионов людей в мире - бесплодны. Если собрать всех этих людей вместе, то получится целая страна населением, сравнимым с населением России.

Сейчас таким людям помогают так называемые “вспомогательные репродуктивные технологии”, или коротко - ВРТ. В развитых странах на ВРТ приходится до 6% рождений. Эффективность ВРТ зависит от многих факторов: возраст партнера, причины бесплодия, качество эмбрионов, опыт клиники и т.д. Но в целом даже ВРТ не может дать 100% результат рождения ребенка.

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

Примерно так и подумали исследователи из Conceivable Life Sciences. С помощью технологий компьютерного зрения и ИИ они позволили идентифицировать головку и хвост сперматозоида, положение инъекционной иглы, управлять инструментами…

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

Интересно. Читать далее

«Если вы не можете ничего запомнить — записывайте, как я!» (с)

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

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

Полез смотреть в интернете:
немецкий социолог Никлас Лумен, его "ящик-картотека", преимущества метода, возможная польза для IT-шников, программы ведения заметок, графы знаний, универсальные платформы, блаблабла...

Созданы целые системы, пользователи обсуждают их достоинства-недостатки, мечтают о возможности помещать туда не только тексты, но и картинки-аудио-видео...

Читать далее

Некоторые базовые примеры атаки на уязвимую машину DVWA

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

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

Сразу хочу сказать что данную машину можно поднять на докер (хотя я встречал и образ под virtualbox). Хотя если использовать дистрибутив Kali GNU/Linux то данная уязвимая машина присутствует в репозиториях дистрибутива и ее можно установить на дистрибутив, без поиска в сети образа для докер или виртуал бокс.

Но я объясню как ее возможно запустить с докера, и установить + запустить из репозитория (для Kali Linux).

Читать далее

Короткая заметка, как я попал на встречу авторов Хабра

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

Получилось, что последние месяцы я начал активнее писать на Хабр. В прошлом месяце попал в ТОП-25 авторов. При том, что меня нельзя подпускать к клавиатуре без спеллчекера. Команда Хабра меня заметила и позвала на фан-встречу встречу авторов, которую организовала у себя в офисе.

Ниже — как я попал на встречу и что нового узнал.

Читать далее

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
14 мая
LinkMeetup
Москва
5 июня
Конференция TechRec AI&HR 2025
МоскваОнлайн
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область

Как повысить эффективность сотрудников с помощью технологии разговорного интеллекта

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

Разговорный интеллект (Conversational Intelligence) — это больше, чем просто мониторинг звонков. Эта технология на основе ИИ и NLP позволяет компаниям по-новому взглянуть на развитие сотрудников, контроль качества и эффективность бизнес-процессов. В статье подробно разбирается, как анализ всех взаимодействий с клиентами в реальном времени помогает выявлять пробелы в навыках, улучшать обучение, повышать вовлечённость и снижать издержки, а также как внедрять такие решения последовательно и с максимальной отдачей.

Читать далее

Mock-объект в рабочем коде, или как тестовый двойник помог решить проблему излишне связанного кода

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

На работе была поставлена задача: в главное веб-приложение нашей фирмы добавить метод формирования бланка в формате PDF «как вот в том микросервисе».

Форма бланка регулярно изменяется, и копировать её в веб-приложение означало нарушить принцип DRY («Не повторяйся») и обречь себя на постоянную двойную работу. Поэтому я решил оставить генерацию бланка в «том микросервисе».

«Тот микросервис» написан на PHP с использованием фреймворка Laravel, содержит большое число доменных объектов, экземпляры которых хранятся в БД MySQL, и имеет развитую систему API для обращения к своему функционалу.

И можно было добавить в него ещё одну точку доступа API, которая бы получала данные и на их основе формировала и возвращала бланк.

Проблема возникла из-за «неприлично» высокой связанности объектов в «том микросервисе». Так, в шаблоне, на основе которого строился бланк, использовались не просто примитивные типы данных, а объект-форма. И шаблон обращался к методам-геттерам этого объекта. А объект, в свою очередь, использовал другой доменный объект в своём конструкторе для заполнения полей.

Читать далее

Ценообразование крипты в DEX-пулах. Заглянем под капот Raydium, Meteora, Orca

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

В прошлой статье я писал хайлевелно о том, как пришёл к разработке своего арбитражного бота на Solana.

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

👉 Как формируется цена на DEX

👉 Кто её двигает, и почему ты получаешь меньше, чем ожидал?

Без воды и эзотерики — просто разложил механику ценообразования в AMM на примерах и цифрах. Если слиппедж — это для тебя пока “что-то плохое или непонятное”, то эта статья для тебя.

Читать далее

Доступная вёрстка: как сделать сайт удобным для всех пользователей

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

Всем привет! В этой статье мы разберем одну из важнейших тем при разработке любого веб‑сайта — доступность.

Она позволяет сделать наш сайт или веб‑приложение доступным максимальному количеству пользователей. И под максимальным количеством имеются ввиду не только пользователи со слабыми устройствами или интернетом, для которых мы должны предоставить максимально оптимизированное решение, но и пользователи с ограниченными (постоянными или временными) возможностями: люди без слуха, зрения, без возможности использовать мышь или клавиатуру для взаимодействия с контентом веб‑сайта.

Для чего же нам нужно работать над доступностью? Ответ напрашивается сам собой – расширение аудитории и привлечение новых клиентов (если вы оказываете услуги). По данным AccessiCart, при улучшенной доступности мы увеличиваем потенциальную аудиторию до 25%. (Ссылка на статью)

Помимо расширения аудитории, улучшение доступности положительно влияет на органический трафик (переходы на сайт из поисковых систем). Исследование, проведенное Semrush, показало, что 73,4% сайтов, внедривших решения по доступности, зафиксировали рост органического трафика, при этом 66,1% из них отметили увеличение трафика от 1% до 50%. (Ссылка на статью)

Здесь мы рассмотрим как улучшить доступность с двух сторон: оптимизации и взаимодействия с контентом. Добиться этого можно с помощью самых базовых технологий разработки: HTML & CSS & JS.

Читать далее

Рептилоиды победили… но это не точно

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

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

Читать далее

Прошло одно из интересных событий отечественной индустрии разработки игр в ВШБ

Время на прочтение3 мин
Количество просмотров766

12 апреля 2025 года в конференц-зале Высшей Школы Бизнеса НИУ ВШЭ собрались игровые разработчики и инвесторы для обмена опытом и новыми идеями.

В статье рассказали, о чём говорили спикеры и поделились записями выступлений!

Читать далее

Брокер сообщений своими руками

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

В эрланге (и эликсире) мне всегда недоставало способа организовать «потоковый» обмен сообщениями, наподобие того, который обеспечивает какой-нибудь Message Broker. Нормальные разработчики смиряются с ограничениями, которые им задают их фреймворки: в Финиксе есть PubSub, в OTP — :gen_event, в эликсире — депрекейтнутый еще до рождения GenEvent.

Так родилась библиотека Antenna, которая предоставляет все те возможности, которые обычно обеспечиваются посредством вкрячивания дополнительной зависимости от брокера сообщений. Требования, которые я к ней предъявлял, были следующими:

узнать, какими именно