И это решит 95% проблем типичного стартапа. Как-то так повелось, что по всему СНГ и его окрестностям на работу набирают зумеров с колоссальным опытом в три года, и они начинают создавать идеальные архитектуры. Да, каждый из вас, как только получает возможность взять на себя хоть малейшую ответственность, сразу вспоминает все прочитанные и не прочитанные книги и пилит свою уникальную архитектуру, непохожую ни на что.
Читать далееПривет, чемпион! В этой статье я Никита и мой биг бро Алерон мы вместе окунёмся в одну из самых хайповых тем года — no-code решения (он же vibe-coding, от которого даже CI/CD не спасёт). Почему это "болото"? Сейчас расскажем!
Вроде бы сначала всё выглядит просто: красиво, удобно, даже соблазнительно. Но спустя неделю ты уже перестаёшь писать код и просто таскаешь блоки, задаваясь вопросом: "А зачем я JS учил?". И это не шутка! Многие после первого успеха с no-code начинают по-другому смотреть на разработку и сроки реализации. Но GitHub удалять рано — у всего есть оборотная сторона.
В предыдущей статье я попросил — «Расскажите, зачем вам DI‑контейнер в golang». Большое спасибо всем, кто оставил коммент и проголосовал. Общий вывод такой: используем контейнер, потому что с ним удобно писать тесты. Тесты — весомый аргумент, особенно в контексте того, что тест — это часть кода. Получается, мы все таки «тащим» Di‑контейнер в проект. Ну, хорошо....
Вероятно, это будет uber‑fx, ведь у него хорошая документация, самое простое и понятное API по сравнению с другими..., или нет — не «тащим»?
Мой ответ — нет, uber‑fx не «тащим», потому что можно еще проще и понятнее.
Делаем...Что делать писателям в современном жестоком мире, где никто не хочет читать книги?
Рассказываю о том, как я сделала игру на основе своей повести, чтобы её хоть кто-то прочитал.
А как всё было и зачем?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.
Читать далееДисклеймер: идея написания этой статьи появилась у нас в преддверии 1 апреля (что и отражено в названии). Поэтому все, что написано в данной статье, является всего лишь первоапрельской шуткой.
По роду своей деятельности мы часто имеет дело с задачами в области теории вероятностей и матстатистики. Зачастую это сложные теоремы и большие формулы. Но сегодня, 1 апреля, мы решили добавить креативный подход и юмор в строгую теорию и посмотреть, что из этого получится. Итак, начинаем.
Два века назад Н.И. Лобачевский исключил одну из аксиом из евклидовой геометрии, и создал новую геометрическую теорию. Мы решили пойти по стопам великого математика и поэкспериментировать с другой важной математической теорией – теорией вероятностей, а именно: поменять один из ее постулатов и посмотреть на результат.
Привет, Хабр!
В этой статье рассмотрим, почему groupby().first() в pandas — не такая уж безопасная и очевидная штука, как может показаться. Особенно когда нужно достать первую строку группы в точности, как она была в датафрейме — с NaN, с порядком, без сюрпризов.
Но для начала рассмотрим отличия first от других подобных методов.
Читать далее15 апреля в Москве прошла специализированная выставка-конференция по корпоративному обучению «GAME & LEARN». В статье я поделюсь личным впечатлением и мнением (исключительно субъективным) об этой выставке и выводами, которые тоже будут пристрастными.
Путеводитель к статье:
I. Для чего и почему? С какой целью я отправилась на данное мероприятие?
II. Описание мероприятия, заявленное организаторами.
III. Чем можно было заняться на выставке и организационное устройство мероприятия. Взгляд со стороны.
IV. Краткое описание выступлений избранных мной спикеров.
V. Субъективные выводы.
Читать далееЗачем программисту алгоритмы?
Многие компании, нанимающие программистов, требуют от них знания алгоритмов. Некоторые даже устраивают отдельное собеседование по алгоритмам, зачастую весьма нешуточное.
Однако сами программисты нередко удивляются, зачем всё это? Действительно, работа наших коллег часто заключается в поиске и устранении ошибок в залежах 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 за последнее время. И таки да, временами действительно это выглядело пугающе, но все таки еще не все потеряно....
Читать далее