habrahabr
Простые инструменты для пайплайнов: sqlite, pandas, gnuplot и другие

Почему мой любимый API — это zip-файл на сайте Европейского центрального банка?Когда доллар был самым высоким по отношению к евро?Вот небольшая программа, которая это вычисляет:curl -s https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist.zip \ | gunzip \ | sqlite3 -csv ':memory:' '.import /dev/stdin stdin' \ "select Date from stdin order by USD asc limit 1;"Вывод: 26.10.2000. (Попробуйте запустить его самостоятельно.)Как это работает:сurl загружает официальные ист…

  • четверг, 21 сентября 2023 г. в 00:00:38
habrahabr
Вышла Java 21

Вышла общедоступная версия Java 21. В этот релиз попало около 2500 закрытых задач и 15 JEP'ов. Release Notes можно посмотреть здесь. Изменения API – здесь. Java 21 является LTS-релизом, а значит у него будут выходить обновления как минимум 5 лет с момента выхода. Скачать JDK 21 можно по этим ссылкам: Oracle JDK (лицензия NFTC) OpenJDK (лицензия GPLv2 with Classpath Exception) Вот список JEP'ов, которые попали в Java 21. Язык Pattern Matching for switch (JEP 441) Паттерн-матчинг дл…

  • четверг, 21 сентября 2023 г. в 00:00:37
habrahabr
Существование треугольника Шарыгина — это настоящее математическое чудо

Сегодня я хочу рассказать об удивительном геометрическом объекте, впервые рассмотренным советским математиком Игорем Федоровичем Шарыгиным. Оригинал задачи (доступно через WebArchive) - здесьДля начала посмотрите на рисунок ниже. Что Вы на нём видите? Объясняю: слева заштрихован треугольник, вершины которого образованы основаниями медиан (делят сторону пополам), а справа - основаниями высот. Если большие треугольники не являются равнобедренными, то и заштрихованные равнобедренными быть не мо…

  • четверг, 21 сентября 2023 г. в 00:00:36
golang
В Go меняется фундаментальная вещь — цикл

Если раньше в циклах были проблемы с замыканиями, так как переменная цикла имела скоуп всего цикла, а не одной его итерации, то в 1.22 это поведение поменяют. проще показать на примере: funcs := []func(){} for i := 0; i < 5; i++ { funcs = append(funcs, func() { fmt.Println(i) }) } funcs[0]() Последняя строка примера напечатает 5 в go 1.21, но в go 1.22 будет уже интуитивно понятный 0. С одной стороны, это нарушение обратной совместимости, но зато не надо писать пугающее новичко…

  • четверг, 21 сентября 2023 г. в 00:00:34
javascript
JavaScript. WebRTC. Соединение браузеров напрямую без сервера, peer-to-peer

Рис 1. Одновременная работа в редакторе блок схем с помощью WebRTCWebRTC позволяет браузерам обмениваться информацией напрямую без сервера. Можно передавать видео, звук и данные.Для соединения браузеры должны обменяться параметрами соединения: SDP и ICECandidate-ами SDP описывает требования к соединению - т.е. что будет передаваться: видео/аудио/текст, какие кодеки поддерживаются. ICECandidate-ы это адреса, куда можно посылать пакеты.Для WebRTC соединения нужно:Обменяться требованиями к соеди…

  • четверг, 21 сентября 2023 г. в 00:00:32
javascript
Создаем мини-игру с капельным эффектом и движущимися кружками. Часть 2. Финал

Привет, уважаемые участники Хабр!Сегодня продолжим создание мини-игры с движущимися кружочками и интересным капельным эффектом. В первой части было сделано базовое перемещение кружочков по странице. А в сегодняшнем уроке мы сделаем анимацию “взрыва” и поглощения кружочков. Финальное демо второй части урока:Давайте начинать!Генерация кружочков Для того, чтобы сделать “деление” одного кружка на несколько в класс Substance добавим новую функцию splitting, которая в цикле будет создавать заданн…

  • четверг, 21 сентября 2023 г. в 00:00:31
javascript
Web Accessibility в рассказе «A11Y от 0 до NaN»

Немного обо мнеЯ занимаюсь frontend уже 8 лет и с самого начала карьерного пути наблюдал как наш продукт рос и развивался (и я вместе с ним), формировалось frontend-сообщество, мировые web-стандарты получали второе дыхание и быстрое развитие, а accessibility приходило в наши дома. За это время я успел достаточно глубоко проникнуться идеями доступности, поскольку ранее и сам уделял внимание клавиатурному вводу в личном пользовании интернетом. Полагаю, все знакомы со стандартным паттерном аутент…

  • четверг, 21 сентября 2023 г. в 00:00:30
javascript
Создание конвертера JSON в Typescript с помощью React, NodeJS и ChatGPT

Любой программист, часто работающий с API, может сэкономить массу времени, если использует ChatGPT для автоматизации преобразования JSON в интерфейсы Typescript. Зачем это нужноAPI — удобный и универсальный способ наладить взаимодействие с сайтом или другим веб-приложением. Основная проблема при написании кода обычно заключается в том, он должен быть уведомлен об ответе. Но в результате обращения к API вы не получаете завершения.У этой проблемы есть два основных варианта решения:Отправить запр…

  • четверг, 21 сентября 2023 г. в 00:00:30
github
duckduckgo / tracker-radar

Data set of top third party web domains with rich metadata about themDuckDuckGo Tracker Radar This is not a block list, but a data set of the most common third party domains on the web with information about their behavior, classification and ownership. It allows for easy custom solutions with the significant metadata it has for each domain: parent entity, prevalence, use of fingerprinting, cookies, privacy policy, and performance. The data on individual domains can be found in the domains dire…

  • четверг, 21 сентября 2023 г. в 00:00:19