Зачем программисту алгоритмы?
Многие компании, нанимающие программистов, требуют от них знания алгоритмов. Некоторые даже устраивают отдельное собеседование по алгоритмам, зачастую весьма нешуточное.
Однако сами программисты нередко удивляются, зачем всё это? Действительно, работа наших коллег часто заключается в поиске и устранении ошибок в залежах legacy кода. Какие уж там алгоритмы? Даже те, кому посчастливилось участвовать в новом проекте знают, что зачастую новый проект состоит на 80% из чужого, уже кем-то написанного и найденного на просторах гитхаба кода, а новый код - это, по сути, клей и обёртки, которые позволяют склеить эти уже готовые запчасти между собой, чтобы получить заданный продукт.
Сегодня я прочитал на Хабре статью о подготовке к алгоритмическому собеседованию в Яндексе. Видно, что ребята относятся к делу всерьёз. Однако на вопрос, зачем всё таки это нужно, статья отвечает в том духе, что алгоритмическая подготовка показывает полезную готовность кандидата поотжиматься (отмечу при этом, что это не мнение Яндекса, а личное мнение человека, получившего этот опыт с обеих сторон - и кандидата и интервьювера).
Однако всё же, действительно ли основная польза алгоритмической подготовки сводится к тому, чтобы продемонстрировать работодателю свою сообразительность и готовность потратить время жизни на подготовку к собеседованиям, а в целом она не слишком полезна для нормального рабочего процесса? Или всё же алгоритмы нужны?
Попробуем разобраться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.
Читать далееУченые всего мира продолжают обсуждать, может ли ИИ когда-нибудь, в отдаленном будущем, уничтожить Человечество. Давайте посмотрим на это под другим углом - может ли оно его спасти, причем - прямо сейчас?
Если посмотреть на коэффициенты рождаемости, цивилизованные страны вымирают. Простые прикидки показывают, что еще сотня-другая лет - и такие страны, как США, Россия и даже Китай могут полностью исчезнуть.
Проблема бесплодия - одна из самых актуальных проблем в мире. Более полутора сотен миллионов людей в мире - бесплодны. Если собрать всех этих людей вместе, то получится целая страна населением, сравнимым с населением России.
Сейчас таким людям помогают так называемые “вспомогательные репродуктивные технологии”, или коротко - ВРТ. В развитых странах на ВРТ приходится до 6% рождений. Эффективность ВРТ зависит от многих факторов: возраст партнера, причины бесплодия, качество эмбрионов, опыт клиники и т.д. Но в целом даже ВРТ не может дать 100% результат рождения ребенка.
В современном мире ИИ уже начал заменять людей в классических профессиях типа программистов и художников, может и размножением он будет заниматься вместо нас? Ну или по крайней мере, снизить человеческий фактор и количество ошибок, которые делают “специалисты”.
Примерно так и подумали исследователи из Conceivable Life Sciences. С помощью технологий компьютерного зрения и ИИ они позволили идентифицировать головку и хвост сперматозоида, положение инъекционной иглы, управлять инструментами…
Под катом - подробный отчет про исследование, включая пример практического использования ИИ, в результате которого родился живой человек.
Интересно. Читать далееИнтеллектуальный чат-бот с нейросетью GPT, подключаемый двумя строками
Chat Popup Widget — это автономный виджет чата, подключаемый к любому сайту всего двумя строками HTML-кода. Он предоставляет пользователю живое взаимодействие с нейросетью GPT, оформленное в виде плавающего окна, которое можно перемещать, масштабировать и кастомизировать.
Читать далееВот попалась статья про метод заметок Цеттелькастен: записывайте мини-заметки, организуйте их упорядоченное хранение - это позволит быстро находить нужную.
Вижу, что-то это мне напоминает...
Полез смотреть в интернете:
немецкий социолог Никлас Лумен, его "ящик-картотека", преимущества метода, возможная польза для IT-шников, программы ведения заметок, графы знаний, универсальные платформы, блаблабла...
Созданы целые системы, пользователи обсуждают их достоинства-недостатки, мечтают о возможности помещать туда не только тексты, но и картинки-аудио-видео...
Читать далееВсех приветствую, читатели Хабра! В сегодняшней статье я поделюсь некоторыми типами атак на веб-приложение DVWA и не только, и само собой разумеется покажу как устанавливать данную машину.
Сразу хочу сказать что данную машину можно поднять на докер (хотя я встречал и образ под virtualbox). Хотя если использовать дистрибутив Kali GNU/Linux то данная уязвимая машина присутствует в репозиториях дистрибутива и ее можно установить на дистрибутив, без поиска в сети образа для докер или виртуал бокс.
Но я объясню как ее возможно запустить с докера, и установить + запустить из репозитория (для Kali Linux).
Читать далееПолучилось, что последние месяцы я начал активнее писать на Хабр. В прошлом месяце попал в ТОП-25 авторов. При том, что меня нельзя подпускать к клавиатуре без спеллчекера. Команда Хабра меня заметила и позвала на фан-встречу встречу авторов, которую организовала у себя в офисе.
Ниже — как я попал на встречу и что нового узнал.
Читать далееРазговорный интеллект (Conversational Intelligence) — это больше, чем просто мониторинг звонков. Эта технология на основе ИИ и NLP позволяет компаниям по-новому взглянуть на развитие сотрудников, контроль качества и эффективность бизнес-процессов. В статье подробно разбирается, как анализ всех взаимодействий с клиентами в реальном времени помогает выявлять пробелы в навыках, улучшать обучение, повышать вовлечённость и снижать издержки, а также как внедрять такие решения последовательно и с максимальной отдачей.
Читать далееНа работе была поставлена задача: в главное веб-приложение нашей фирмы добавить метод формирования бланка в формате PDF «как вот в том микросервисе».
Форма бланка регулярно изменяется, и копировать её в веб-приложение означало нарушить принцип DRY («Не повторяйся») и обречь себя на постоянную двойную работу. Поэтому я решил оставить генерацию бланка в «том микросервисе».
«Тот микросервис» написан на PHP с использованием фреймворка Laravel, содержит большое число доменных объектов, экземпляры которых хранятся в БД MySQL, и имеет развитую систему API для обращения к своему функционалу.
И можно было добавить в него ещё одну точку доступа API, которая бы получала данные и на их основе формировала и возвращала бланк.
Проблема возникла из-за «неприлично» высокой связанности объектов в «том микросервисе». Так, в шаблоне, на основе которого строился бланк, использовались не просто примитивные типы данных, а объект-форма. И шаблон обращался к методам-геттерам этого объекта. А объект, в свою очередь, использовал другой доменный объект в своём конструкторе для заполнения полей.
Читать далееВ прошлой статье я писал хайлевелно о том, как пришёл к разработке своего арбитражного бота на Solana.
В этой статье хочу копнуть чуть глубже в механику ценообразования в децентрализованных пулах.
Всем привет! В этой статье мы разберем одну из важнейших тем при разработке любого веб‑сайта — доступность.
Она позволяет сделать наш сайт или веб‑приложение доступным максимальному количеству пользователей. И под максимальным количеством имеются ввиду не только пользователи со слабыми устройствами или интернетом, для которых мы должны предоставить максимально оптимизированное решение, но и пользователи с ограниченными (постоянными или временными) возможностями: люди без слуха, зрения, без возможности использовать мышь или клавиатуру для взаимодействия с контентом веб‑сайта.
Для чего же нам нужно работать над доступностью? Ответ напрашивается сам собой – расширение аудитории и привлечение новых клиентов (если вы оказываете услуги). По данным AccessiCart, при улучшенной доступности мы увеличиваем потенциальную аудиторию до 25%. (Ссылка на статью)
Помимо расширения аудитории, улучшение доступности положительно влияет на органический трафик (переходы на сайт из поисковых систем). Исследование, проведенное Semrush, показало, что 73,4% сайтов, внедривших решения по доступности, зафиксировали рост органического трафика, при этом 66,1% из них отметили увеличение трафика от 1% до 50%. (Ссылка на статью)
Здесь мы рассмотрим как улучшить доступность с двух сторон: оптимизации и взаимодействия с контентом. Добиться этого можно с помощью самых базовых технологий разработки: HTML & CSS & JS.
Читать далееНа свете есть много всяких дремучих мракобесов: антиваксеры, плоскоземельцы, любители кошек, евроскептики и проч. Я вот, например, нейроскептик. Может тут особенно и гордиться‑то нечем, но уж какой есть. Последовательный и упорный. Но честный и научно‑добросовестный. Поэтому, заметив нездоровую истерию в недружественной прессе по поводу грядущего (почти завтра) AGI полез разбираться, чего ж там такого ужасного натворили с chatGPT за последнее время. И таки да, временами действительно это выглядело пугающе, но все таки еще не все потеряно....
Читать далее12 апреля 2025 года в конференц-зале Высшей Школы Бизнеса НИУ ВШЭ собрались игровые разработчики и инвесторы для обмена опытом и новыми идеями.
В статье рассказали, о чём говорили спикеры и поделились записями выступлений!
Читать далееВ эрланге (и эликсире) мне всегда недоставало способа организовать «потоковый» обмен сообщениями, наподобие того, который обеспечивает какой-нибудь Message Broker. Нормальные разработчики смиряются с ограничениями, которые им задают их фреймворки: в Финиксе есть PubSub, в OTP — :gen_event, в эликсире — депрекейтнутый еще до рождения GenEvent.
Так родилась библиотека Antenna, которая предоставляет все те возможности, которые обычно обеспечиваются посредством вкрячивания дополнительной зависимости от брокера сообщений. Требования, которые я к ней предъявлял, были следующими:
узнать, какими именноЭто не новость, но вопрос всплывает достаточно часто, поэтому я считаю, что проблему нужно объяснить кратко. Люди, и я в том числе, обычно говорят, что время POSIX, также известное как время Unix — это количество of секунд, прошедших с эпохи Unix, то есть с 00:00:00 1970-01-01.
Но это не так. Точнее, не так в смысле, подразумеваемом большинством. Например, сейчас у меня на часах 2024-12-25, 18:51:26 UTC. Время POSIX равно 1735152686. Прошло 1735152713 секунд с эпохи POSIX. Число времени POSIX на двадцать семь секунд меньше.
Причина в том, что время POSIX вычисляется в IEEE 1003.1 из Coordinated Universal Time. Стандарт предполагает, что каждый день — это ровно 86400 секунд. Цитата:
Читать далееВ 2024 году я заработал первый миллион, продавая ассеты на UE Marketplace, а в 2025 проверяю их актуальность в эпоху ИИ. Зовут Меня Хамзат, в UE с 2019 года.
ДЛЯ ДЕЕСПОСОБНЫХЧтение книги The Technological Republic за авторством генерального директора компании Palantir Technologies Алекса Карпа сподвигло меня на следующие размышления.
Читать далее«Альт СП» - сертифицированная ФСТЭК России операционная система. Приобрести лицензию могут только юридические лица, государственные и муниципальные органы.
Если вам нужна актуальная версия «Альт СП» для тестирования, отправьте запрос на официальном бланке организации с указанием ИНН в электронном виде (PDF) на почту sales@basealt.ru на имя генерального директора «Базальт СПО».
Что указать в запросе:
Читать далееЯ живу в киберпанке: у меня виртуальная работа, за которую я получаю виртуальные деньги, моя личность рассыпана по интернету, я разговариваю с роботами про жизнь, а они веселят меня своими анекдотами.
Читать далее