Подробностями разработки онлайн-платформы выполнения и компиляции кода более чем на 40 языках делимся к старту курса по Frontend-разработке. Автор этого материала — основатель TailwindMasterKit.
Open source *
Открытое программное обеспечение
Open source, собственные серверы и экспертиза: доступный межсетевой экран для инфраструктуры в Selectel
Современную инфраструктуру любого масштаба сложно представить без межсетевого экрана. Он позволяет сегментировать сети и избавиться от избыточной сетевой доступности, что повышает уровень безопасности. На рынке существуют программно-аппаратные и программные МЭ, которые позволяют реализовать обширный функционал безопасности сети. Но не все на данный момент подходят клиентам в России.
Чтобы учесть потребности бизнеса, мы в Selectel решили создать собственный межсетевой экран, который не зависит от крупных вендоров. Взяли open source, собственную инфраструктуру и компетенции специалистов компании. Под катом рассказываем, как мы реализовали выгодный по цене и функционалу МЭ на выделенных серверах Selectel.
DIY. Книги для всех, даром
Upd. 11.06.2022 Многие заинтересовались генерацией изображений нейросетями. Вот Colab (интерактивная среда для запуска кода) для рисования картинок в стиле pixel art по текстовому описанию. Просто запускайте, ближе к концу увидете ячейку для ввода текста. Примеры картинок из Colab'а в комментариях.
Два года назад я начал делать небольшой проект, связанный с обработкой текстов на иностранных языках. Он постепенно развивался и стал использоваться лингвистами в НКРЯ, а энтузиасты сохранения малых языков используют его для расширения своих параллельных корпусов.
Сегодня же я расскажу как при помощи него создать полноценную параллельную книгу на разных языках. Книга будет красиво сверстана в PDF, иметь содержание, обложку и две выровненные по смыслу колонки текста. Такие книги служат отличным подспорьем при изучении иностранного языка. Найти их, однако, не так просто, и скорее всего это будут книги для детей или избранная классика. Полный пример готовой книги можно посмотреть здесь. Под капотом у приложения NLP модели, поддерживаемых языков более ста.
Проект открытый и любой может в нем поучаствовать. Во многом благодаря сообществу и вашему участию он за несколько лет дошел до сегодняшнего дня. В общем штука годная, давайте уже посмотрим, что к чему.
Tree-sitter: обзор инкрементального парсера
Некоторые IDE и текстовые редакторы парсят исходный файл целиком при каждом изменении, что может тормозить на больших файлах, а некоторые делают это построчно с помощью регулярных выражений, что тоже тормозит и не даёт качественной подсветки кода, т.к. теряется контекст. Для решения этих проблем в недрах GitHub был создан tree-sitter - инкрементальный парсер, который используют всё больше и больше проектов. Давайте разбираться зачем и почему.
Истории
Как без боли сделать мультиплеер на Godot, который будет работать в браузере
Представьте, что вы пишете свою десктопную мультиплеерную игру мечты, а потом вам захотелось, чтобы ваш проект также работал и в вебе. К сожалению, в интернете можно найти кучу гайдов по созданию только десктопного мультиплеера на Godot, но не браузерного мультиплеера, даже официальная документация самого движка никак не поможет и не предоставит простых примеров. У вас быстро опустятся руки и вы забьёте на эту затею, потому что ваш проект так и не заработает в браузере.
К счастью, эта проблема легко решается!
Вам может сказочно повезти, если поисковик выдаст этот пост на Reddit. Мне вот повезло, поэтому спешу рассказать и другим. Моя статья будет не столько переводом этого поста (и материалов, на которые она ссылается) на русский язык, сколько пересказом от моего лица с имеющимся опытом разработки + дополнительно поведаю о некоторых вещах, что не были упомянуты в посте.
Интеграция FreeIPA с Active Directory
В IT-инфраструктуре HOSTKEY для хранения учетных данных и контроля доступа традиционно использовался FreeIPA. Когда появилась необходимость управлять офисными компьютерами с Windows и оборудованием Cisco Systems, пришлось задуматься об интеграции с Active Directory. Рассказываем, как она была реализована в нашей локальной сети.
VintageOffice: Интеллектуальная защита
В статье описано решение для защиты авторов документов от самих себя.
Как часто испытываем разочарование, увидев в важном документе досадную ошибку, после отправки электронного письма?
Как часто забываем в спешке удалить из документа правки, прочие артефакты, потенциально ослабляющие позицию на ближайшей встрече с контрагентом?
Книга «Open Source. Разработка программ с открытым исходным кодом»
Разработка навыка для «Алисы» на основе Google Keep заметок
На данный момент я активно пользуюсь приложением Google Keep для управления заметками на смартфоне. Для покупок в магазине достаточно удобно пользоваться заметками вида "чеклист", о которых и пойдет речь ниже.
Как правило для покупок в магазине используется один и тот же набор наименований. Если заполнить такой список, то в последующем при добавлении новых пунктов будут отображаться подсказки по уже добавленным, что достаточно удобно.
Казалось бы причем тут Алиса... так вот еще удобнее было бы добавлять такие пункты покупок в список, используя голосовой помощник от Яндекса.
Насколько естественен естественный язык? Представляем датасет RuCoLA
В последние годы в области NLP произошла настоящая революция: огромные нейросети, предобученные на сотнях гигабайт текстов, бьют все известные рекорды качества. Но обладают ли такие нейросети чутьём на «естественность» текста, которое есть у носителей языка? Оценка предложения по внутреннему чутью в лингвистике получила название приемлемости; умение давать подобную оценку — ещё один шаг на пути к общему пониманию языка. Чтобы узнать, насколько хорошо нейросети для русского языка справляются с этой задачей, мы публикуем RuCoLA (Russian Corpus of Linguistic Acceptability) — датасет русскоязычных предложений, размеченных по бинарной шкале приемлемости. Это совместный труд команды исследователей и NLP-разработчиков из SberDevices, ABBYY, Yandex Research, Huawei Noah’s Ark Lab и Факультета компьютерных наук ВШЭ. Также мы открываем лидерборд на данных RuCoLA, чтобы любой желающий мог проверить способности своих моделей или поучаствовать в развитии методов для оценки приемлемости.
Апдейт, еще апдейт: представлен релиз ядра Linux 5.18
С момента выхода ядра Linux 5.17 прошло всего лишь около пары месяцев, и сейчас готов новый релиз, уже Linux 5.18. Несмотря на относительно небольшой временной промежуток между двумя релизами, изменений, дополнений и исправлений весьма солидное количество.
Так, в новой версии насчитывается 16206 исправлений от 2127 разработчиков. Общий размер патча составляет 108 МБ, при этом изменениями были затронуты 14235 файлов, добавлено 1340982 строк кода, удалено 593836 строк. Подробнее о новом релизе — под катом.
OSINT самолетов, пароходов и поездов
Водный транспорт
MarineTraffic
Открытый проект, основанный на сообществе, предоставляющий (почти) в режиме реального времени информацию о передвижении судов и их местонахождении в гаванях и портах.
Rust 1.61.0: пользовательские коды возврата в main, расширение возможностей const fn и изменение IO-блокировок
Команда Rust рада сообщить о новой версии языка — 1.61.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если у вас есть предыдущая версия Rust, установленная через rustup
, то для обновления до версии 1.61.0 вам достаточно выполнить команду:
rustup update stable
Если у вас ещё нет rustup
, то можете установить его со страницы на нашем веб-сайте, а также ознакомиться с подробным описанием выпуска 1.60.0 на GitHub.
Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать beta (rustup default beta
) или nightly (rustup default nightly
) канал. Пожалуйста, сообщайте обо всех встреченных вами ошибках.
Ближайшие события
Язык-головоломка Marthue
Предлагаю читателям Хабра "эзотерический" язык программирования, обобщающий нормальные алгоритмы Маркова (НАМ) и полусистемы Акселя Туэ (semi-Thue systems). В языке есть возможность интерактивного ввода и вывода, выбора поиска замены подстрок с начала, конца строки или случайным образом, условного рекурсивного вызова одного блока подстановок из другого, а также условного перехода между блоками. Это позволяет совмещать подстановку строк с элементами императивного и даже функционального программирования, а также исследовать недетерминированные алгоритмы.
Интерпретатор написан под Линуксом на языке Common Lisp, который я считаю одним из самых мощных и удобных, в том числе для экспериментальногого программирования. При желании большого труда не составит переписать его на любом популярном языке: например, сделать онлайновую версию в Javascript. Просто для запуска программ Лисп знать практически не нужно: достаточно инсталлировать любую версию Common Lisp и ввести нужный файл парой простых функций. Скачать репозиторий интерпретатора Marthue можно здесь.
SingleA: доменный SSO своими руками
SingleA — это набор Symfony бандлов, которые позволяют развернуть свой PHP’шный SSO, реализующий фреймворк SingleAuth. Тот, в свою очередь, позволяет пользователям веб-приложений, живущих на общем домене (2 уровня и выше) перестать повторно ходить на SSO после того, как они один раз уже залогинились (даже ради простого редиректа).
Всё это призвано кардинально изменить подход к разработке проектов на базе SOA и микросервисов, упростив получение пользовательских данных на стороне приложений без утомительных интеграций.
Запуск облачного стека мониторинга с использованием нескольких ЦОДов
Когда я общаюсь с клиентами, они рассказывают мне о том, что их приложения работают в двух центрах обработки данных, но при более детальном изучении оказывается, что их стек наблюдения доступен только в одном из них.
Это знание, как откровение, снизошло на многих в марте 2021 года. Один из крупнейших европейских провайдеров облачных услуг (OVHcloud) пережил масштабный пожар в одном из своих дата-центров, что вызвало серьезные перебои в работе даже таких крупных клиентов, как правительство Франции.
На следующий день после инцидента мой коллега, отвечающий за управление качеством, спросил меня, сможем ли мы выдержать подобную катастрофу. Это побудило меня задуматься о превращении нашего единого стека мониторинга в стек высокой доступности, работающего на базе нескольких центров обработки данных.
К счастью, используемые нами инструменты, такие, как Grafana Tempo (для трассировки) и Grafana Loki для логирования, способны реплицироваться посредством микросервисов. Но сможем ли мы запустить несколько экземпляров их в нескольких разных ЦОДах? И в состоянии ли мы «безопасно» потерять компонент или целую площадку (другими словами, сохранится ли у нас при этом возможность просматривать, что происходит в наших приложениях)?
Новые возможности werf: CI/CD на основе werf и Argo CD
В этой статье мы рассмотрим новый экспериментальный режим совместной работы Open Source-утилиты werf и инструмента для непрерывной доставки Argo CD, объединяющий в себе возможности и удобства обоих проектов в рамках одного CI/CD-процесса. Сейчас идет активная разработка этих возможностей werf, но в первом приближении функционал уже доступен и готов к использованию.
Totum — open source, self hosted база данных для непрограммистов
Инструмент для цифровизации бизнеса в момент, когда он вырос из XLS-таблиц
Универсальный UI, логика на основе простых кодов, автоматические действия, права доступа, логирование, API и куча всего остального 👍
На вашем сервере, легко изучаемая и масштабируемая вместе с ростом бизнеса 🎉
Вместо целой команды проект могут вести 1-2 специалиста ✌️
Минимальные требования к стартовой квалификации специалиста — вы можете научить разрабатывать на Totum вашего сисадмина, тестировщика, продакта, проджекта, инженера, юриста или финансиста. Или научиться сами.
Лицензия: MIT (бесплатно)
Как обеспечить безопасность сборки ПО: управляем внешними зависимостями
Привет! Проблема управления безопасностью зависимостей — supply chain security — в настоящее время как никогда актуальна. В качестве примера можно привести историю компании SolarWinds: исходный код разрабатываемой ею утилиты был скомпрометирован и среди клиентов компании распространилось вредоносное ПО. Также возникла тенденция по внедрению деструктивного кода разработчиками open-source проектов, широко используемых коммерческими компаниями.
Чем заменить телевизор
После определенных событий, произошедших за последние несколько месяцев, начал задумываться о замене телевидения себе и своим близким. Очевидно самый простой вариант это покупка ТВ приставки с Android на борту, однако взглянув на цены и предлагаемое железо, идея отпала.
Вклад авторов
alizar 11846.6Jeditobe 5045.8SvyatoslavMC 2206.0Andrey2008 2138.9Seleditor 1539.2m1rko 1437.2dalerank 1291.0shurup 1120.2Gim6626 1019.6ru_vds 980.6