Социальные сети Рунета
Суббота, 31 июля 2021

GSoC 2019: Проверка графов на двудольность и трансформеры монад Прошлым летом я участвовал в Google Summer of Code — программе для студентов от компании Google. Ежегодно организаторы отбирают несколько Open Source-проектов, в том числе от таких известных организаций, как Boost.org и The Linux Foundation. Для работы над этими проектами Go...

Слияние списков на python Сравнение различных методов слияния двух отсортированных списков Пусть у нас есть два списка (для простоты из целых чисел), каждый из которых отсортирован. Хотим объединить их в один список, который тоже должен быть отсортирован. Эта задача наверняка всем знакома, использует...

Почему в iPhone до сих пор стоят 12 Мп камеры? Заметили, что мегапикселей стало как-то очень много? В Samsung готовят матрицы разрешением 600 Мп, уже есть — 108 Мп, а вот в iPhone, по-прежнему, 12 Мп. Почему так? Вы наверное думаете, что всё дело в Deep Fusion и других волшебных алгоритмах. Отчасти, да. Но дело не тольк...

Кватернионы, матрицы поворота и перепроецирование векторов между системами координат Пришлось это мне в последнее время поработать с задачами, где нужно было оперировать кватернионами и заниматься перепроецированием векторов в разные системы координат (это еще называется заменой базиса). Сначала по чужим формулам — причем с опечатками и даже, как выяснилось,...

[Перевод] Почему стоит использовать тег <picture> вместо <img> Использование изображений и анимаций в интерфейсах пользователя стало распространённой практикой в современных веб-приложениях. Хотя эти примеры современного дизайна делают упор на повышение удобства работы с приложениями, если изображения не адаптируются ко всем устройства...

AirPods Pro, Apple TV+ и много денег: почему акции Apple достигли рекордной цены После наступления нового года на американских биржах возобновились торги. В ходе одной из первых торговых сессий акции Apple достигли рекордной цены в $300 за штуку. В итоге капитализация производителя iPhone выросла до $1,33 трлн, что позволило обойти извечных сопернико...

Как писать хорошие библиотеки под Angular Веб — наполненная фичами среда. Мы можем перемещаться по виртуальной реальности с помощью геймпада, играть на синтезаторе с MIDI-клавиатуры, покупать товары одним касанием пальца. Все эти впечатляющие возможности предоставляют нативные API, которые, как и их функциональность...

Как мы в «Активе» пишем пользовательскую документацию. Почему это важно Что пользователь хочет видеть в пользовательской документации? Что его в ней раздражает? Эти вопросы задаёт себе каждый, кто пишет такую документацию, но далеко не каждый правильно отвечает на них. Совсем небольшой процент пользователей читает документацию. Давайте разберём...

Доступность — это не так просто Привет, Хабр! В предыдущей статье я рассказывал о простых случаях проблем с доступностью, исправив которые можно сделать свой сайт или web-приложение гораздо доступнее. Я упоминал о правиле 80/20 и писал о проблемах, которые при наименьших затратах дают наибольший результа...

Мы Опубликовали Качественный, Простой, Доступный и Быстрый Синтез Речи Вокруг темы синтеза речи сейчас много движения: на рынке есть огромное число тулкитов для синтеза, большое число закрытых коммерческих решений за АПИ (как на современных технологиях, так и на более старых, т.е. "говорилки") от условных GAFA компаний, большое колич...

[Из песочницы] Способы реализации API-сервера на Golang с автогенерацией кода и документации Я бы хотел в этой статье рассказать вам о том как можно быстро и просто сделать веб сервер на языке Golang с документацией к нему. И о том какие есть подходы и инструменты для их реализации Сегодня мы разберем эти готовые инструменты: swagger-api/swagger-codegen go-swagger/...

[Перевод] Как управлять состоянием React приложения без сторонних библиотек Реакт это все что вам нужно для управления состоянием вашего приложения. Управление состоянием это одна из сложнейших задач при разработки приложения. Вот почему каждый день появляются все новые и новые библиотеки для управления состоянием, их становиться все больше и больш...

Микросервисы — не способ масштабироваться В большом количестве статей, источников микросервисы, помимо всего прочего, представляются как способ построить масштабируемое решение. Рассмотрим на примерах, почему это не так. А так же попытаемся внести свою лепту в извечный вопрос: "Что лучше: монолит или микросервис?" Ч...

Еще одни часы на wemos d1 mini и светодиодной матрице При утренней суете вызванной сборами на работу, в школу, универ и т.п. у многих людей существует  необходимость всегда иметь перед глазами текущее время. Я тоже отношусь к их числу. В связи с чем было принято решение сделать часы с достаточно большими цифрами. Для изготовлен...

Taiga UI — библиотека компонентов под Angular, которую вам стоит попробовать Привет!Саша Инкин и я регулярно пишем на Хабр статьи по Angular. Почти все они основаны на нашем опыте разработки большой библиотеки компонентов.Эту библиотеку мы развиваем, перерабатываем и дополняем уже несколько лет, а свои идеи проверяем на нескольких десятках проектов Т...

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

[Перевод] Почему так важно сообщать соискателю, что пошло не так на собеседовании (и как это сделать правильно) Одна из самых отстойных вещей в технических собеседованиях — то, что это чёрный ящик. Кандидатам сообщают лишь то, прошли ли они на следующий этап без каких-либо подробностей, почему так вышло. Отсутствие обратной связи или конструктивной обратной связи не просто фрустрируе...

[Перевод] Используем GPU для повышения производительности JavaScript Мы, разработчики, всегда стремимся искать возможности повышения производительности приложений. Когда речь идёт о веб-приложениях, то улучшения обычно вносятся только в код. Но думали ли вы об использовании мощи GPU для повышения производительности веб-приложений? В этой с...

FSTB – работа с файлами в Node.js без боли Когда я работаю с файлами в Node.js, меня не оставляет мысль, что я пишу очень много однотипного кода. Создание, чтение и запись, перемещение, удаление, обход файлов и подкаталогов, всё это обрастает неимоверным количеством бойлерплейта, который еще усугубляется странными на...

Как я на спор развернул двусвязный список за O(1) Как-то раз я случайно увидел, как мой коллега решает джуниорскую задачку разворачивания двусвязного списка на C++. И в тот момент странным мне показалось не то, что он лид и давно перерос подобное, а само решение. Вернее, не так. Решение было стандартным: тот же линейны...

[Перевод] Три способа создания клякс с помощью CSS и SVG Кляксы (Blob) - это гладкие, аморфные, желеобразные формы, обычно  причудливые и забавные. Их можно использовать в качестве элементов иллюстраций и фоновых эффектов в сети.Итак, как же они устроены? Разумеется, можно открыть какой-то графический редактор и сделайте их, ...

[Перевод] 5 библиотек для Vue.js, без которых мне не обойтись Опытные разработчики знают о том, что иногда, пытаясь сэкономить время и решить какие-то задачи своего проекта с помощью пакета, созданного кем-то другим, можно, в итоге, потратить больше времени, чем было сэкономлено. Библиотеки, жёстко регламентирующие реализацию неких мех...

[Перевод] Что такое однократный инженер? Кто такой «1х-инженер»? Возможно, вы слышали о «десятикратных» инженерах. Они очень производительны, эффективны, работают буквально за десятерых. Если есть такие, то наверняка должны быть и однократные инженеры? Конечно, такие есть. Давайте попробуем составить список качес...

XSL-трансформация на MS SQL без CLR Иногда очень удобно отправлять письма прямо изнутри БД, например, оповещения об успешности/неуспешности каких-то действий, информацию о состоянии системы, логи действий пользователей итд. Это может показаться дикостью, чудовищным велосипедом, кривым-косым решением, итд — но ...

[Перевод] Мягкие частицы в WebGL и OpenGL ES Системы частиц это одни из самых простых способов сделать 3D сцену визуально богаче. В одном из наших Android приложений 3D Buddha Live Wallpaper достаточно простая сцена, которой было бы неплохо добавить чуть больше деталей. И когда мы думали как добавить разнообразия изобр...

Улучшаем биндинги в CSharpForMarkup Недавно мне пришлось разбираться с Xamarin Forms и на глаза попалась такая штука как CSharpForMarkup. Она показалась очень интересной, поскольку позволяет использовать стандарный C# вместо XAML, тем самым нивелируякучу неудобств связаных с XAML. Но реализация биндингов мне п...

Продажи мертвы. Что делать дальше? С некоторых пор — возможно, вы заметили, в бизнесе, в мире что-то стало по-другому. Да, кто-то этого еще не заметил, но многие уже в курсе, хотя и не все смогли это точно сформулировать. И вот что изменилось: продажи мертвы. Я не пишу очередную статью о 37 самых верных спос...

Как создать виджет для iOS 14 (и не удалить его у пользователей при обновлении) Одно из нововведений в iOS 14 — виджеты. Мы стали готовиться к этому событию задолго до официального релиза, чтобы они появились у пользователей приложения Яндекс уже на старте. В этом посте я расскажу об опыте разработки виджетов в условиях нестабильного бета-окружения, не...

Swagger в RBK.money — про наши внешние API Хочешь сделать что-то полезное и рабочее — сделай его так, чтобы другие люди могли этим полноценно пользоваться, нормально это ревьювить, да и вообще вспоминать тебя добрым словом, а не темной стороной своего словарного запаса. Для этого, кроме того, чтобы просто хорошо дела...

[Из песочницы] Логистика. Введение. Просто о сложном Все мы любим мечтать, в особенности когда это связано с посещением новых мест или возвращением в любимые места. Ничто так не воодушевляет, как чувство предвкушения планируемого события и омрачает его лишь наличие организационных моментов, в частности, выбор и покупка билетов...

[Из песочницы] Модальные окна, которые мы заслужили Начнем В разных критериях и манифестах качества есть такой пункт, как блокировка скролла страницы, когда открыто модальное окно. Модальное окно подразумевает под собой взаимодействие только с ним. Многие зададут вопрос: «Почему не использовать готовые решения?». Проблема в...

[Перевод] Как сделать интерактивную карту с помощью Python и open source библиотек Сегодня делимся с вами пошаговым руководством создания интерактивных карт для веб-приложения или блога. Просто сохраните эту статью в закладках. Хоть и существует, например, библиотека d3.js, которая может создавать пользовательские карты, есть несколько инструментов еще пр...

iPhone 12 Pro Max не рекомендуют к покупке из-за продолжающейся пандемии На сайте Neowin опубликовали обзор флагманского смартфона iPhone 12 Pro Max, автор которого не может рекомендовать его к приобретению из-за, как минимум, одной вещи — отсутствия сканера отпечатков пальцев. Редактор издания Рич Вудс (Rich Woods) заявил, что iPhone ...

[Перевод] EOF — это не символ Недавно я читал книгу «Компьютерные системы: архитектура и программирование. Взгляд программиста». Там, в главе про систему ввода-вывода Unix, авторы упомянули о том, что в конце файла нет особого символа EOF. Если вы читали о системе ввода-вывода Unix/Linux, или эксперим...

Снять всё: лучшие камерафоны Каждый выбирает себе смартфон с учётом различных критериев, но если для вас определяющим является качество фотографий и видео, которые можно сделать на гаджет, рекомендуем сначала познакомиться с тем, на что действительно стоит обращать внимание в камере. ...

Прорывы #DeepPavlov в 2019 году: обзор и итоги года Когда еще один плодотворный год подходит к концу, хочется оглянуться назад, подвести итоги и показать, что мы смогли сделать за это время. Библиотеке #DeepPavlov, на минуточку, уже два года, и мы рады, что наше сообщество с каждым днем растет. За год работы над библиотекой...

Можно ли писать скрипты на C++? Недавно пришлось мне опять/снова погрузиться в чудесный мир программирования Linux скриптов. В принципе, дело не очень хитрое, но поскольку мне попадаются такие задачи не часто, то каждый раз изучаю заново. Знаю точно, что завтра многое забуду и через месяц опять буду гугл...

52 системы управления проектами для командной работы в разных сферах Привет, Хабр! Вам приходила мысль сделать свою систему управления проектами и задачами? Нам да! И мы делаем YouGile. Знаете, в чем самая большая сложность? Выбрать и сфокусироваться на одном востребованном направлении продукта. Вообще такая задача есть везде, но тут она...

Использование библиотеки LLVM для генерации кода регулярных выражений Введение Регулярные выражения — широко используемый способ задания конечных автоматов для поиска текста. Применяются они с давних времён и повсеместно. Они удобны тем, что их запись весьма краткая и лаконичная. Но обратной стороной их удобства является достаточно низкая прои...

[Перевод] Запуск Camunda BPM в Kubernetes Используете Kubernetes? Готовы переместить свои экземпляры Camunda BPM с виртуальных машин, а может просто попробовать запустить их на Kubernetes? Давайте рассмотрим некоторые распространенные конфигурации и отдельные элементы, которые можно адаптировать к вашим конкретным ...

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

realme представила флагман X3 SuperZoom за вменяемые деньги, а также умные часы realme обрадовала любителей бренда и просто тех, кто не готов платить космические деньги за флагманы, собственными альтернативами, которые пока что продают по вменяемым ценам в отличие от множества других явно обнаглевших китайцев. На рынок поступает смартфон realme X3 Sup...

[Перевод] Корутины C++20 в примерах Одним из наиболее важных нововведений C++20 являются корутины. Корутина — это функция, которая может быть приостановлена ​​и после этого возобновлена. Функция становится корутиной, если она используете что-либо из следующего: - оператор co_await, чтобы приостановить выполнен...

Не дай теплу пропасть: как и для чего дата-центры используют «мусорное» тепло Оборудование, установленное в дата-центрах, выделяет большое количество тепла, которое нужно куда-то отводить. Способов сделать это немало. Чаще всего тепловая энергия просто «выбрасывается», ее никак не используют. При этом дата-центры, по разным данным, потребляют 3-5% о...

Игры от Илона Маска для детей 8-14 лет (играем всем Хабром в комментах) Илон Маск сделал школу Ad Astra «для своих», а недавно команда этой школы стартовала онлайн-школу за $7500 (занятия онлайн раз в неделю). Там я нашел несколько игр, которые показались мне очень интересными. А давайте всем Хабром поиграем? Пишите свои ответы в опросах и ...

Улучшаем производительность сайта с помощью PageSpeed от Google Всех приветствую! Присаживайтесь поудобнее, налейте вкусного чаю и давайте обсудим довольно популярную и животрепещущую тему: оптимизацию производительности сайта. Одним из инструментов для анализа качества и usability страницы с составлением отчёта является PageSpeed Ins...

Как глубоко CTO должен разбираться в технологиях проекта? Мы спросили людей из 5 компаний Можно ли хоть в чем-то разбираться, когда у тебя 20-40 команд с зоопарком из PHP, Go, Angular, React’а и не только? Кто умеет сделать запрос к базе данных, а кто потерял этот навык? Кто и сколько лет уже не писал продакшн-код? Читать дальше →

Зачем вам чужие ошибки? Исправляем уязвимости в сторонних библиотеках Любое ПО содержит уязвимости, причем они появляются на разных этапах его жизненного цикла. Полностью избавиться от уязвимостей в коде достаточно сложно, но можно, как минимум, сократить их количество. Для этого используются средства SAST, DAST и IAST – статический, динамичес...

Xbox Game Pass пополнится новыми играми для Android в декабре: Control, Doom Eternal, Rage 2 Вчера Microsoft объявила, что библиотека Xbox Game Pass пополнится новыми играми уже в этом месяце. Сюда входит достаточное количество AAA-проектов. И если у вас есть сомнения по поводу стоимости ежемесячной подписки, то корпорация решила помочь с решением — начиная с 3-го д...

jsqry — лучше, чем jq В своей прошлой статье на Хабре я писал про библиотеку Jsqry, которая предоставляет простой и удобный язык запросов (DSL) к объектам JSON. С тех пор прошло много времени и библиотека тоже получила свое развитие. Отдельный повод для гордости — библиотека имеет 98% покрытие ко...

Проблема подключения или неверный код MMI. Способы решения Многие пользователи, которые хотя бы время от времени обращаются к USSD-запросам, сталкивались с распространенной проблемой, следствием которой является невозможность выполнить нужную команду. Такие запросы обычно используются для проверки баланса, подключения/отключения ус...

Декомпилируем приложение xiaomi сканер и забираем результат сканирования У коллеги возникло предложение: «Напиши мне за банку чипсов распознавалку штрих-кодов на андроид, чтобы просто в файлики результаты писать и время, брату надо» В итоге оказалось не брату, да и не надо, и вообще банка чипсов это дорого Из интереса пробежался по готовым решени...

Уходим с Mercurial на Git Кадр из фильма «Красный шар». Режиссер Альбер Ламорис. 1956 год Так уж случилось, что у меня остался ряд репозиториев на Mercurial, которые захостил на Bitbucket много лет назад. Проекты перешли в полуархивное состояние, поэтому заглядывал в них не так уж и часто. И тут я р...

[Из песочницы] Бот для сборов. Собираемся на футбол с новыми технологиями Введение Всем привет. В этой статье я опишу своего чат-бота для сервиса обмена сообщениями telegram и социальной сети VK с использованием NodeJS. На этом месте у многих читателей должно вырваться что-то вроде: "Доколе!" или "Что, опять ?!". Да, похожие публикации уже были и ...

Приключение чисел в ASCII-ландии. Часть 0x01u. Беззнаковые целые числа Думаю, с переводом чисел в ASCII строки в своей жизни сталкивался каждый программист. В свое время для меня было удивительно узнать, что перевод десятичной цифры в равнозначный ASCII символ – операция сложения. С этим знанием я ложился спать, и с этим же знанием я бодро пр...

Реализация эффекта газетной фотографии на примере Quake Около двух лет назад вышла игра Return of the Obra Dinn за авторством Лукаса Поупа. В ней была весьма интересная стилизация графики трёхмерного мира под графику старых монохромных компьютеров. На Хабре даже выходил перевод поста автора данной игры, где он описывает, как р...

Маршалинг и анмаршалинг нестандартных форматов дат в Go Думаю, многие согласятся, что работа с датами практически в любом языке программирования это невероятная головная боль. Дата и время не десятичны, часовые пояса — господи, почему они не могут быть просто целыми — ну и конечно бесчисленное множество форматов даты и времени. М...

Исследование качества кода Open XML SDK от Microsoft Моё знакомство с Open XML SDK началось с того, что мне понадобилась библиотека для создания документов Word с некоторой отчётностью. После работы с Word API более 7 лет, захотелось попробовать что-нибудь новое и более удобное. Так я узнал, что у Microsoft есть альтернативно...

Новая функциональность в RESTinio и опять с помощью C++ных шаблонов Увидело свет очередное обновление небольшой библиотеки для встраивания асинхронного HTTP-сервера в C++ приложения: RESTinio-0.6.12. Хороший повод рассказать о том, как в этой версии с помощью C++ных шаблонов был реализован принцип "не платишь за то, что не используешь&q...

[recovery mode] Как я участвовал в IOCCC-'19 (и проиграл). Часть 1: «Крестики-нолики» Нас с детства учили, что хороший, качественный код должен хорошо читаться, быть семантически и алгоритмически понятным. Все ругают программистов, которые пишут непонятный или переусложенный код. Но что, если провести конкурс, в котором критерий «хорошести» кода будет переве...

Grafana дашборды для pgSCV Неделю назад я делал анонс про pgSCV новом экспортере метрик для PostgreSQL. После анонса мне ожидаемо стали писать читатели с намеком что неплохо бы и дашборды сделать. Эта задача есть у меня в списке и этот запрос не оказался для меня сюрпризом. Оно и понятно, метрик ого-г...

[Из песочницы] Изобретаем велосипед или пишем персептрон на С++. Часть 1 и 2 Изобретаем велосипед или пишем персептрон на C++. Часть 1 Напишем простую библиотеку для реализации персептрона на C++ Читать дальше →

[Перевод] Почините бесплатный AWS, пока никто не пострадал Я стараюсь не писать тексты для рассылки на эмоциях. И сейчас тоже пытаюсь не скатиться в эмоции. В конце концов, про неполадки с программой Free Tier у AWS разговоры идут уже целое десятилетие. Это едва ли можно назвать неотложной проблемой. Но я целый день хожу под впечат...

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

[Перевод] Java: свертывание многострочных логов в однострочный лог с помощью Spirng и логгера Logback или Log4j2 Logback и Log4j2 – одни из самых известных фреймворков логирования в JAVA. Фреймворк Logback используется только совместно с библиотекой SLF4J, которая представляет собой интерфейс для систем протоколирования событий. Log4j2 представляет собой вторую, улучшенную версию логге...

[Перевод] Решение Fizzbuzz при помощи теоремы Эйлера FizzBuzz — это известная задачка на программирование, которую обычно дают в технической части собеседований. Она формулируется примерно так: Напишите функцию, выводящую список целых чисел от 1 до 100, но вместо каждого числа, кратного 3, она должна выводить «Fizz», а вмест...

Сколько информации за жизнь воспринимает человек Книги, ТВ, Интернет … – нас окружает информация, «тонны» информации. Вы когда-нибудь задумывались над тем, сколько информации мы воспринимаем за свою жизнь? Мне этот вопрос показался очень интересным, и я решил его прогуглить. Как и ожидалось, вменяемого ответа найти не ...

Секция Frontend на DUMP2020: вангуем, что снова будет аншлаг. Топ докладов прошлого года и темы этого Кто согласен, что современный фронтенд — это сложно, поднимите руки! Ради чего мы мучаемся с настройкой Webpack? Почему реализация SSR требует писать столько кода, и нужен ли он нам вообще такой ценой? Кто виноват и что мы, как разработчики, можем сделать? Мы стараемся отве...

Тинькофф, Я вас люблю и ненавижу… В 21 веке, кто-то боится экосистем, кто-то их ненавидит, кто-то боготворит. Каждому предстоит самому делать выбор готов ли он жертвовать безопасностью ради удобства, складывая все яйца в одну корзину. Я пользуюсь Тинькофф уже несколько лет. Начал со счёта для ИП, как андроид...

Как я писал полудецентрализованную криптовалюту на PHP. (Часть 1 — Сбор библиотек) Предисловие Вы наверно помните прошлую статью, в которой я разрабатывал централизованную криптовалюту. Идея была, как Вы знаете, плохой. Я решил перезапустить линейку этих туториалов, но уже более менее нормальной, чем было в прошлые разы. В этой линейке постараемся «пережев...

[Из песочницы] Выбор генератора форм для Vue.js Уважаемый хабрачитатель, хочу поделиться с тобой опытом в выборе и использовании генераторов форм для Vue.js. Введение Пожалуй, известно каждому, что любой выбор начинается с фиксации целей, постановки задач и формирования списка требований к объектам выбора. Данная статья ...

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

Тест-драйв робота-пылесоса ECOVACS DEEBOT OZMO 900 Так вышло, что этот обзор мы начинаем с огромного спойлера. Если бы мне пришлось писать текст на тему «5 вещей, которые должны быть у каждого мужчины», я в этот список непременно включил бы робот-пылесос. Но с некоторой оговоркой, тем самым мелким шрифтом под звёздочкой, п...

[Перевод] Заметки о Unix: небольшая странность семейства вызовов exec*() Я недавно писал об опции -exec команды find и ненароком упомянул о «семействе системных вызовов exec()». Это — странное выражение, обычно о Unix-вызовах так не говорят, так как они, как правило, не объединяются в некие «семейства». Но в данном случае речь идёт о целом наборе...

Введение в Redux & React-redux Оглавление Введение 1. Установка и начало работы 2. Redux ....2.1 createStore ....2.2 reducer() ....2.3 dispatch() ....2.4 actionCreator() ....2.5 Actions ....2.6 getState() ....2.7 subscribe() ....2.8 combineReducers() ....2.9 initialState 3. React-redux ....3.1 Provider ...

Почему гну перешла через реку? Маленькая упрощённая иллюстрация про разные уровни экосистемы. Итак, 19 сентября 2020 антилопы собрались вот в такую формацию: И пошли через реку. Для нормальных людей это просто стадо до горизонта, но вообще это одно из самых впечатляющих зрелищ на планете. Дуглас-Гамиль...

[Из песочницы] Использование Enum + Associated Values при навигации и передаче данных между экранами в IOS приложениях В этом посте мне бы хотелось затронуть извечный вопрос об организации навигации и передачи данных между экранами в IOS приложениях. В первую очередь, я хотел бы донести концепт своего подхода, а не убедить вас использовать его как волшебную таблетку. Тут не будут рассматрива...

Как я сделал себе менеджер паролей Пароли — древнейший способ аутентификации в информационных технологиях, повсеместно использующийся и сегодня. Увы, просто невозможно держать в памяти пароли для всех Интернет-ресурсов при условии, что все они будут разными и сложными! Тут на помощь человеку приходят менеджер...

[Перевод] Как создать свою собственную библиотеку AutoML в Python с нуля Библиотеки и сервисы AutoML вошли в мир машинного обучения. Для дата-сайентиста это очень полезные инструменты, но иногда они должны быть адаптированы к потребностям бизнес-контекста, в котором работает дата-сайентист. Вот почему вам нужно создать свою собственную библиотеку...

[Перевод] Автоматизируем обработку изображений с помощью Jupyter и Python Вряд ли вам захочется разбираться с обработкой изображений в графических редакторах, если вы знаете, как сделать это с помощью открытых библиотек для Python. Читать дальше →

C++17. Функция стандартной библиотеки std::launder и задача девиртуализации В этой статье мы попробуем разобраться с одним из самых неоднозначных и непонятных нововведений стандарта C++17 — функцией стандартной библиотеки std::launder. Мы посмотрим на std::launder с другой стороны, посмотрим на источник. Разберем что лежит в основе функции на пример...

Navigation Component-дзюцу, vol. 2 – вложенные графы навигации Каждое большое приложение содержит множество способов навигации между экранами. А хорошая библиотека навигации должна помогать разработчику их реализовывать. Именно с такой мыслью я подошёл к исследованию кейсов со вложенными графами навигации. Это вторая из трёх статей про...

Пишем юзабельную оболочку для FFMPEG на Powershell Нормальный вывод для ffmpeg Наверное, вы, как и я, слышали про ffmpeg, но боялись его использовать. Респект таким парням, программа целиком выполнена на C ( си, без # и ++ ). Несмотря на исключительно высокий функционал программы, ужасный, гигантский вербоуз, неудобные ар...

Вы не знаете как должны работать модальные окна Уверен, многие хоть раз создавали всплывающее модальное окно. Но задумывались ли вы об определении этого компонента? Как он должен работать? В этом материале я постарался собрать максимально полный свод правил, рекомендаций и примеров реализации по которым модальные окна до...

Смартфон для аудиофила: размышления о нужности и критериях До настоящего времени продолжают выходить обзоры смартфонов, которые с лёгкой руки авторов называют аудиофильскими, меломанскими, иными словами речь о смартфонах с улучшенным качеством воспроизведения звука. Не смотря на то, что я несколько раз сам употреблял этот термин в п...

[Из песочницы] WebRTC. Делаем приложение с блекджеком и видеозвонками Дорогой читатель, перед тем как мы начнем писать код, давайте разберем саму концепцию видеозвонков. Представим ситуацию: у нас есть чат-платформа и нам необходимо прикрутить к ней видеозвонки, то есть в онлайне сидит некий Вася и он хочет позвонить Пете, для реализации тако...

[Из песочницы] ECS back and forth Привет, Хабр! Представляю вашему вниманию перевод статьи "ECS back and forth — Part 1 — Introduction" автора Michele skypjack Caini. ECS back and forth Часть 1 — Введение. Когда я в первые узнал про архитектурный шаблон entity component system, я пошёл искать больш...

ESP32 development board с кастомным дизайном Наконец то у меня добрались руки до сборки минимального аналога Espressif Systems плат на ESP32 микроконтроллере. На плате расположен микрофон, усилитель для этого микрофона на одном транзисторе. Усилитель для динамика на трех транзисторах с выходным каскадом работающим в р...

[Перевод] Как без усталости кодить по восемь с лишним часов Всю свою жизнь я писал код неправильно. Я думал, что достаточно просто сесть за стол, открыть ноутбук, выбрать задачу из моего списка to-do и кодить, пока не устану. Но на самом деле такой стиль работы убивал мой уровень продуктивности спустя 2–4 часа написания кода. Я о...

[Из песочницы] Цвет в современных фильмах Всем привет, меня зовут Денис. Я работаю художником по свету (Lighting Artist) в игровой индустрии. Часто читаю Хабр просто потому что интересно и вот сегодня увидел статью Дефицит цветов в современных фильмах которая меня немного ошарашила. Ведь в кино существуют целые отд...

[Из песочницы] О проблемах транслятора Python и переосмысление языка — Сколько нужно архитекторов, чтобы реализовать язык программирования? — Сто. Один будет писать реализацию, а 99 — говорить, что могут сделать лучше. В этой статье я хочу затронуть не столько сам язык, сколько детали реализации CPython и его стандартной библиотеки, которые г...

Расшифровка вебинара «SRE — хайп или будущее?» У вебинара плохой звук, поэтому мы сделали расшифровку. Меня зовут Медведев Эдуард. Я сегодня поговорю о том, что такое SRE, как появилось SRE, какие есть критерии работы у SRE-инженеров, немножко о критериях надежности, немножко о ее мониторинге. Мы пройдемся по верхам, по...

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

Стоит ли жаловаться на собеседования? Как мне кажется, на Хабре есть две вечные темы, на которые статьи появляются с завидной регулярностью и собирают массу комментариев и плюсов. Первая тема — "мне слили карму, систему кармы надо изменить/отменить". Вторая тема — "меня не взяли на работу, процесс...

Ещё один способ использования python в браузере (и не только) Весной 2020 года я впервые попробовал себя в разработке сайтов бэкенд я писал на питоне а на фронте пришлось использовать js и он вызвал у меня отторжение(тут надо уточнить, что я не считаю js ужасным языком, просто он мне не понравился). Не долго думая я начал писать трансл...

Вы делаете это неправильно: расчет глубины Приветствую вас, глубокоуважаемые! Что если я скажу, что глубина, что бы вы под ней не подразумевали, является одной из самых сложных для точного измерения величин? На какой глубине плывет подводная лодка? Какая глубина марианской впадины? На какой глубине лежит Титаник? Ес...

Ненормальная криптография, или как я проверял подписи Ed25519 на Solidity Когда пишут о том, как разрабатывать безопасные приложения, один из частых советов звучит так: не пишите криптографию самостоятельно, а используйте какую-нибудь проверенную библиотеку. К сожалению, при разработке блокчейнов этот совет часто не работает: нужные алгоритмы либо...

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

[Перевод] Человеко-читаемый JavaScript: история о двух экспертах Каждый хочет быть экспертом. Но что это хотя бы означает? За годы работы мне встречалось два типа людей, именуемых «экспертами». Эксперт первого типа – это человек, который не только знает в языке каждый винтик, но и непременно все эти винтики использует, независимо от тог...

[Из песочницы] Функциональные опции на стероидах Привет, Хабр! Представляю вашему вниманию перевод статьи Functional options on steroids от автора Márk Sági-Kazár. Функциональные опции — это парадигма в Go для чистых и расширяемых API. Она популяризирована Дейвом Чейни и Робом Пайком. Этот пост о практиках, которые появ...

Предельная скорость USB на STM32F103, чем она обусловлена? У данной статьи тяжёлая история. Мне надо было сделать USB-устройства, не выполняющие никакой функции, но работающие на максимальной скорости. Это были бы эталоны для проверки некоторых вещей. HS-устройство я сделал на базе ПЛИС и ULPI, загрузив туда «прошивку» на базе проек...

[Перевод] Основы JavaScript: почему вы должны знать, как работает JS-движок В этой статье я хочу объяснить, что разработчик программного обеспечения, использующий JavaScript для написания приложений, должен разбираться в движках, чтобы написанный код работал правильно.Ниже вы увидите однострочную функцию, которая возвращает свойство lastName передан...

Простой способ редактирования, хранения и передачи параметров между job'ами Jenkins Как и любой здоровый человек — могу назвать себя в меру ленивым. Так, например, мне лень писать длинный pipeline (вообще писать руками pipeline лень). И мне не нравится идея гонять туда — сюда файлик, в который придётся писать параметры, для чего городить огород из лишнего ...

Готовим Большую Фичу™ на Kotlin Multiplatform. Доклад Яндекса Предположим, вы решили внедрить Kotlin Multiplatform в свой проект, чтобы переиспользовать логику на iOS и Android. Рано или поздно вы захотите сделать Большую Фичу, которая будет включать в себя и сложную многопоточную логику, походы в сеть, кэширование. Каждый из этих этап...

Линеаризуем асинхронный код с помощью корутин Помимо использования корутин для создания генераторов, их можно попробовать использовать для линеаризации уже существующего асинхронного кода. Давайте попробуем это сделать на небольшом примере. Возьмем код, написанный на акторном фреймворке и перепишем одну функцию этого к...

Первое впечатление от концептов Решил разобраться с новой возможностью С++20 — концептами. Концепты (или концепции, как пишет русскоязычная Вики) — очень интересная и полезная фича, которой давно не хватало. По сути это типизация для аргументов шаблонов. Основная проблема шаблонов до С++20 — в них мо...

Есть ли жизнь без Nvidia? Запускаем TensorFlow на Radeon RX 580 На новом рабочем месте меня посадили за ПК, оборудованный процессором Ryzen 2600 и видеокартой Radeon RX 580. Попробовав обучать нейронные сети на процессоре, я понял, что это не дело: уж слишком медленным был процесс. После недолгих поисков я узнал, что существует как миним...

Пишем Ретровейв на Angular Web Audio API существует уже давно, и про него есть немало статей. Поэтому про сам API много говорить не будем. Расскажем, что Web Audio и Angular могут стать лучшими друзьями, если их правильно познакомить. Давайте сделаем это! Читать дальше →

Apple показала, что ни во что не ставит смартфоны на Android Пренебрежительное отношение пользователей iOS ко всем остальным платформам – история совершенно обычная, если не сказать, тривиальная. Почему-то всем, кто владеет iPhone, пользователи Android кажутся людьми либо второго сорта, либо недостаточно обеспеченными. Видимо, сказыв...

[Из песочницы] Последовательный fetch и 5 способов решения На технических собеседованиях, помимо проверки теоретических знаний, принято задавать задачки, чтоб оценить уровень практических знаний кандидата, его способность писать код, способность мыслить логически и алгоритмически. Часто в этот список входят алгоритмические задачи. ...

Чаты на вебсокетах, когда на бэкенде WAMP. Теперь про Android Мой коллега уже писал про наш опыт разработки чатов на вебсокетах для iOS, поэтому часть про особенности бэкенда с точки зрения клиента у нас общая. А вот реализация на Android, конечно, отличается. И ещё мне не приходилось, как в первой статье, искать библиотеку для поддерж...

[Из песочницы] О декодировании протокола погодных датчиков Oregon Scientific Лет десять назад как-то по случаю я купил простенькую погодную станцию Oregon Scientific BAR208HG. Радовала она домочадцев достаточно долго, и продолжает радовать до сих пор. Мне же со временем стало не хватать её функционала и захотелось расширить свои возможности наблюдени...

Как корова помогла сделать интереснее процесс проектирования Всем привет! Я ведущий системный аналитик в компании МойСклад и сейчас мы с командой «Производство» запускаем внутренний стартап внутри стартапа – Производство 2.0. Недавно я написала о том, с чего начать процесс разработки в новоиспеченном проекте, а сейчас хочу продолжить ...

[Перевод] Просто вертикальный монитор не значит, что я на телефоне YouTube на вертикальном экране Да, я странный человек, полностью признаю. На домашнем компьютере у меня установлен вертикальный монитор. Я составляю и читаю и много длинных документов — и такой форм-фактор меня вполне устраивает. Я давно так делаю. Это естественная часть ...

[Из песочницы] Почему Rust должен стать функциональным языком программирования Привет, Хабр! Начав изучение Scala, я сразу столкнулся с тем, что функциональная реализация простейшего алгоритма быстрой сортировки работает радикально медленней и потребляет существенно больше памяти, чем аналогичная императивная реализация. При этом никто не спорит, что ...

А я у тебя точно первый? Или как выбрать (первый) язык программирования в ${year} году Я часто вижу, как разработчики разного уровня «сеньёрности» доказывают, иногда аргументированно, иногда просто «авторитетно», почему стоит или не стоит выбирать определенный язык программирования в качестве первого. YouTube полон роликов по типу «Какой язык программирования ...

[Из песочницы] Идем по приборам Много ли нужно, чтобы изменить пробег или залезть в память приборной панели? Есть только один способ узнать — попробовать сделать это самому. Читать дальше →

DDoS-атака через социальную инженерию TL;DR Атакующий подменяет source ip на адрес вашего сервера и триггерит автоматические абузы. В результате клиента на хостинге за вредоносную активность, которой не было. Комментарий от vdsina.ru: Эта статья написана нашим клиентом, который перешёл к нам от крупного хосте...

До свидания, Google Fonts. Последний аргумент Шрифты Google Fonts страшно популярны. Их загружают более 42,8 миллиона сайтов, в том числе Хабр. Библиотека Google Fonts содержит 1023 свободных шрифта и программные интерфейсы для их внедрения через CSS. Очень удобно, казалось бы. Во многих статьях отмечалось, в какую ц...

Почему мы выбрали Kotlin одним из целевых языков компании. Часть 2: Kotlin Multiplatform Продолжаем цикл статей о внедрении языка Котлин в наш процесс разработки. Первую часть ищите здесь. В 2017 году увидел свет амбициозный проект от компании Jetbrains, предлагающий новый взгляд на кросс-платформенную разработку. Компиляция кода на kotlin в нативный код различ...

[Из песочницы] MVP для Android — преимущества использования Moxy в качестве вспомогательной библиотеки В данной статье описываются преимущества использования Moxy в качестве вспомогательной библиотеки при использовании MVP для Android-приложения. Важно: здесь не сравнивается MVP с другими архитектурными подходами типа MVVM, MVI и т.п. В статье описывается почему, если в качес...

Google Assistant заменит Bixby на смартфонах Samsung? Низкие продажи смартфонов вследствие пандемии коронавируса и кризиса на рынке, заставляют производителей искать пути выхода из ситуации, рисковать и экспериментировать. Так, по слухам, в настоящий момент Samsung ведет переговоры с Google об одной важной сделке, которая в ито...

Почему Among Us взорвал рынок игр в 2020 году? У меня есть дочь 10 лет. А у нее есть подруги. О чем они говорят целыми днями? AMONG US!Как небольшая команда InnerSloth из 4х человек сделала игру, в которую играют сотни миллионов по всему миру? Давайте разбираться. Читать далее

[Из песочницы] Urban Bot или как писать чат-ботов для Telegram, Slack, Facebook… на React.js В этой статье я хочу познакомить с новой библиотекой Urban Bot, которая адаптирует React для написания чат-ботов. Ниже я расскажу, зачем эта библиотека появилась на свет, какие дает преимущества и как написать вашего первого чат-бота. Чат-бот — это чаще всего отдельный чат ...

[Из песочницы] Автоматическая система полива сада на Home Assistant, ESP8266 и MiFlora Некоторое время назад у моей семьи появился дом с небольшим садом в очень теплом и засушливом месте, и перед нами встала проблема регулярного полива. Хотелось, чтобы система полива была автоматической, при этом при ее выборе приходилось учитывать следующие условия: оче...

[Перевод] Эмуляция компьютера: интерпретатор CHIP-8 Меня, по ряду причин, всегда завораживала эмуляция. Программа, которая выполняет другую программу… Мне эта идея кажется невероятно привлекательной. И у меня такое ощущение, что тот, кто напишет подобную программу, не пожалеет ни об одной минуте потраченного на это времени....

Управленческая истерика. Нормальными словами Раньше я был глупый и писал худлит. Теперь я всё понял, и худлит на Хабре не пишу. Но чего добру-то пропадать? Точнее, хочу понять, есть ли в том худлите добро, польза. Попробую взять худлитную статью и изложить её посыл нормальными словами. А чего получится — вам решать. Ор...

Дешевых телевизоров больше не будет? ЖК-панели LG диагональю 32 и 55 дюймов подорожали до максимума за шесть лет Как пишет источник со ссылкой на исследование Business Korea, стоимость ЖК-панелей производства LG для телевизоров и мониторов только за один месяц, за апрель, увеличилась на 3-7%. В итоге цена матриц диагональю 32 и 55 дюймов вышла на максимальный уровень за шесть...

[Из песочницы] Шизофрения: взгляд после Грани безумия В те далекие времена, когда я чувствовал себя получше, я частенько заходил почитать хабр. Теперь почти полная потеря интереса к ИТ — одна из самых незначительных моих проблем. Заранее прошу прощения за исковерканные слова и знаки препинания, тут уже давно во вс...

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

[Перевод] Графический интерфейс на Python за 5 минут Python легко использовать. В нем вы можете найти огромное количество библиотек для чего угодно. И это его основное преимущество. Из нескольких строк кода вы ничего не сделаете. Если вам нужны скрипты для личного пользования или для технически подкованной аудитории, то вам ...

Делаем MIDI-клавиатуру из старого детского синтезатора В один из дней, возвращаясь домой, возле мусоропровода в подъезде я увидел старую детскую игрушку-синтезатор. Прошел мимо, так как брать с мусорки «грешно», но в душе захотелось утащить ее оттуда. Уже поздно ночью, где-то часа в 2 я решил посмотреть, не стоит ли она все ещ...

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

[Перевод] Почему чтобы переместить кнопку, нужно две недели Многие сталкивались с нерелятивистскими искажениями времени разработки крупных проектов. Кажется, что выполнение задачи должно занять один-два дня, а на самом деле требуется две-три недели. Это вызывает вопросы, однако существует красивая метафора для иллюстрации происходяще...

Почему не взлетели альткоины? История необычных криптовалют Bitcoin начался с идеи, сформулированной в 2008 году в манифесте Сатоши Накамото: финансовая система для интернет-экономики, позволяющая осуществлять платежи в интернете напрямую, обходясь без посредничества традиционных финансовых институтов. Как оказалось, чего-то подобног...

Визуализация сложных данных с использованием D3 и React Существует много возможныx вариантов реализации сложных графиков в ваших проектах. Я за несколько лет попробовал все возможные варианты. Сначала это были готовые библиотеки типа AmCharts 4. AmCharts сразу же оказался большим и неповоротливым. После этого были более гибкие и ...

[Перевод] Практика по Котлину: Создание веб приложений на React и Kotlin/JS От переводчика. Привет! Про Kotlin есть стереотип, будто бы это язык для разработки только под Android. На самом деле, это совсем не так: язык официально поддерживает несколько платформ (JVM, JS, Native), а также умеет работать с библиотеками для этих платформ, написанных на...

[Из песочницы] Почему нам везде хочется видеть золотое сечение? Попытка (неудачная) эволюционного анализа при помощи нейросетей на C++ Недавно я задался вопросом: связано ли как-то наше желание везде видеть золотое сечение с какими-то сугубо культурными вещами, или же в этом скрыта какая-то более глубокая закономерность, связанная с устройством нашего мозга? Чтобы разобраться в этом вопросе, я решил сделать...

DOOM Watch на ESP32. Часть 1 Попробовав разработку с готовыми модулями ESP32 захотелось сделать что-то маленькое и нативное. Решил сделать часы. Сначала подумал о ESP32-PICO-D4. Поскольку в ней только 4Mb flash под программу, решил сделать полноценную версию с расширением да 16Mb flash и 8Mb SRAM. Что б...

[Перевод] Из чего сделан JavaScript? В течение первых нескольких лет использования JavaScript я чувствовал себя чуть ли не самозванцем. Даже хотя я и мог создавать веб-сайты с помощью фреймворков, я ощущал, что мне чего-то не хватает. Собеседования по JavaScript внушали мне страх из-за того, что у меня не было ...

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

Как мы улучшили интерфейс VSO-движка Playrix и приблизили его по удобству к Unity Ранее на Хабре мы уже писали о том, как сделали собственный игровой движок VSO, а сегодня расскажем, как мы улучшали его интерфейс и удобство работы с ним. Статья будет полезна всем, кто только начинает разбираться с UX/UI и хочет узнать, как с помощью базовых прин...

[Из песочницы] Мечтают ли нейросети об электроденьгах? TL;DR: Нет На просторах Сети полным полно материалов, мануалов, готовых решений, сборок и прочего добра, посвященного прогнозированию цен на криптовалютные и традиционные биржевые активы, пахнущего быстрыми и легкими доходами с минимумом усилий. И хоть пишут их разные люд...

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

[Из песочницы] Как я при помощи Google сделал OPC2WEB клиент Я работаю инженером АСУТП и немного увлекаюсь программированием: при помощи Гугла и Stack Overflow делал несколько калькуляторов на HTML и javascript, делал бота для телеграма на php, даже немного программировал на c# по работе. В этот раз задача была куда интереснее и сложн...

Пишем драйвер фреймбуфера для Raspberry Pi с LCD Прочитав монументальную серию статей о подключении LCD экрана к роутеру мне захотелось сделать то же самое. Однако многообразие используемого стека (openwrt, stm32, usb) в сочетании с отсутствием полных исходников кода но может плохо искал несколько затруднило задачу. Я реши...

[recovery mode] Переезд от jQuery к Svelte, без боли Всем привет. Я бэкэнд разработчик и фронтэнд задачи решаю как умею, то есть на jQuery, это работало в 2015, работает и сейчас. Но при наличии Vue и React это уже не камильфо. Из любви к особому пути я решил осваивать не проверенный миллионами разработчиков Angular/React/Vue...

[Перевод] 15 лучших и крупнейших библиотек иконок В этой статье ознакомимся с 15 лучшими и крупнейшими доступными библиотеками иконок для веб-сайтов. Многие из них предлагают тысячи, а то и миллионы пиктограмм, так что обязательно найдётся именно то, что нужно. Сразу уточняем: это не 15 самых лучших библиотек, а 15 из лу...

Альтернативное понимание контекста с помощью статистической языковой модели В интернете полно статей на тему основанных на N-граммах языковых моделей. При этом, готовых для работы библиотек довольно мало. Есть KenLM, SriLM и IRSTLM. Они популярны и используются во многих крупных проектах. Но есть проблемы: Библиотеки старые, не развиваются. Пло...

Как я писал музыку из космических лучей День добрый, камрады! Я пока только начинающий музыкант, зато есть опыт в программировании. И почему бы не взять какие-нибудь данные и попробовать из аудиализировать (это как визуализировать, только… кэпъ)? Тащемта, план таков: Найти данные Придумать, как сконвертировать их...

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

Мелкая питонячая радость #10: конечные автоматы и глубокое обучение в несколько строк Конечно, самая большая радость этих дней — python 3.9. Но кроме этой радости кто-то должен ворошить github в поисках мелких приятностей, которые несут добро и свет тем, кто пишет на python. Transitions Тем, кому приходилось писать реализацию какого-нибудь сложного информаци...

MyApp extends Holiday Я уверен, что среди уважаемой аудитории найдутся те, кто меня поймет. Дело в том, что во всем изобилии популярных библиотек и фреймворков для веб-фронтэнда, лично мне, не нравятся, практически, все альтернативы. В каждом из вариантов я нахожу для себя существенные минусы, к...

[Перевод] Архитектурный шаблон MVI в Kotlin Multipaltform, часть 1 Около года назад я заинтересовался новой технологией Kotlin Multiplatform. Она позволяет писать общий код и компилировать его под разные платформы, имея при этом доступ к их API. С тех пор я активно экспериментирую в этой области и продвигаю этот инструмент в нашей компани...

Реализация автодополнения кода в Ace Editor Ace (Ajax.org Cloud9 Editor) — популярный редактор кода для веб-приложений. У него есть как плюсы, так и минусы. Одно из больших преимуществ библиотеки — возможность использования пользовательских сниппетов и подсказок. Однако, это не самая тривиальная задача, к тому же не ...

[Перевод] Разработка REST-серверов на Go. Часть 7: GraphQL Перед вами — седьмая (заключительная) часть серии статей о разработке REST-серверов на Go. В предыдущих статьях мы занимались, в основном, различными подходами к разработке REST API для простого приложения, автоматизирующего управление задачами. Сегодня мы исследуем кое-что ...

Зачем PVS-Studio использует анализ потока данных: по мотивам интересной ошибки в Open Asset Import Library Анализ потока данных является неотъемлемой частью любого современного статического анализатора кода. Однако, со стороны, не очень понятно, что это и главное – зачем нужно. До сих пор некоторые ассоциируют статический анализ с поиском чего-то в коде по определённому шаблону....

[Перевод] Как в Python реализованы очень длинные числа типа integer? Перевод статьи подготовлен специально для студентов курса «Разработчик Python». Когда вы пишете на низкоуровневом языке, таком как С, вы беспокоитесь о выборе правильного типа данных и спецификаторах для ваших целых чисел, на каждом шаге анализируете достаточно ли будет ис...

Библиотека ttf2mesh — преобразование TrueType шрифтов в сетку Многим известна проблема трёхмерной графики — отсутствие легковесных кроссплатформенных решений в вопросе вывода текста. Большинство реализаций позволяет использовать выбранный шрифт в виде текстуры. Публикуемая библиотека ttf2mesh реализует другой способ — она преобразует в...

Vivaldi 3.2 — Дары лета Привет Хабр! Летом наступает пора отпусков, поэтому вся крупная работа откладывается на осень, но и летом разработчики постоянно занимаются полировкой уже существующих функций, стараясь улучшить работу браузера и сделать его ещё более удобным для пользователей. Сегодняшни...

[recovery mode] Почему ICQ потерял древнего пользователя после покупки Mail.Ru История о том как я внезапно потерял свой элитный 5* ICQ просто потому-что Mail.Ru выкатили обновление! Пишу сюда по скольку тут сидят представители Mail.Ru Group и возможно они что-то с этой несуразной чепухой в логике работы их клиента ICQ да сделают. Ведь то что попрост...

Тахометр + температура двигателя на Arduino для МиниМото Купил я сыну в прошлом сезоне его первый мотоцикл. Радости не было предела. Катались мы катались, всё хорошо, но т.к. на минибайках нет ни спидометра, ни тахометра, ничего, пришла идея это исправить. Есть конечно же в продаже готовые варианты, но весь интерес в том, чтобы п...

[Перевод] О реализации библиотеки для глубокого обучения на Python Технологии глубокого обучения за короткий срок прошли большой путь развития — от простых нейронных сетей до достаточно сложных архитектур. Для поддержки быстрого распространения этих технологий были разработаны различные библиотеки и платформы глубокого обучения. Одна из осн...

[Из песочницы] Избегайте внедрения внешних библиотек в свой проект Часто можно услышать фразу: «Зачем писать свой велосипед? Возьми готовую либу и пользуйся! За тебя уже все написали». Особенно часто подобные выражения слышат начинающие разработчики. При решении любой задачи они начинают смотреть готовые либы и бездумно тянуть их в свой про...

Машина опорных векторов в 30 строчек В этой статье я расскажу как написать свою очень простую машину опорных векторов без scikit-learn или других библиотек с готовой реализацией всего в 30 строчек на Python. Если вам хотелось разобраться в алгоритме SMO, но он показался слишком сложным, то эта статья может быть...

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

Это верный способ купить GeForce RTX 3080. Они доступны в составе готовых ПК Как мы знаем, видеокарты GeForce RTX 3080 исчезли из продажи в первые часы после поступления на прилавки. Вероятно, первая партия была очень маленькой, но признаваться в этом Nvidia не собирается. Однако купить заветный адаптер всё же можно, причём даже сейчас. Правда,...

[Перевод] Почему Джеф Безос – самый опасный политикан на планете Вы не сможете стать супербогатым, если будете соблюдать общепринятые правила… Шесть способов стать богатым Несколько лет назад я прочитал книгу – что-то типа — Как стать миллиардером. Автор проанализировал 400 самых богатых людей из списка Форбс и обнаружил что есть толь...

Как еще заработать на бирже и снизить риск: акции компаний с выплатой дивидендов Изображение: Unsplash В нашем блоге мы много пишем о вариантах биржевых инвестиций с различным уровнем риска, рассказываем о способах защиты капитала. Один из способов получить дополнительный заработок с минимальными рисками – это купить акции компаний, которые выплачиваю...

«Пишите код по-новому (тм)» C# я не люблю, но люблю собирать все паттерны и весь сахар, который они предлагают от версии к версии. Третьего дня посмотрел выступление Билла Вагнера на NDC Conferences, где он показывал, что нужно писать код по-новому (TM). Он показывает много примеров хорошего рефакт...

[Перевод] Кристиан Вервейс: О сложности или зачем вам Скрам? Кристиан Вервейс: О сложности или зачем вам Скрам? Предисловие переводчика Предупреждение: Это лонгрид и это достаточно серьезный текст, далекий от большинства “простеньких” объяснений что вы могли прочитать на русском про Скрам и Эджайл.  Оригинал статьи...

Планирование потоков в Windows. Часть 1 из 4 Ниже представлена не простая расшифровка доклада с семинара CLRium, а переработанная версия для книги .NET Platform Architecture. Той её части, что относится к потокам. Потоки и планирование потоков Что такое поток? Давайте дадим краткое определение. По своей сути поток это...

Как сделать текст легче В прошлой статье я обещала, что расскажу, как сделать документы легче для восприятия. Есть два основных направления: текстовка и структура документа. Сегодня поработаем с текстами. Технические документы на русском читаются особенно тяжело, и добиться легкости в них сложнее, ...

[Перевод] История реализации обратной совместимости с PS1 на Sony Playstation 2 4 марта мы отметили юбилейную дату — прошло 20 лет после выпуска PlayStation 2 в Японии, за которым в том же 2000 году последовали продажи в Европе и Северной Америке. Без сомнения, всевозможные игровые медиа будут публиковать списки и ретроспективы в память одной из самых ...

MarkedText — маркдаун здорового человека Здравствуйте, меня зовут Дмитрий Карловский и все свои статьи (и презентации) пишу я в MarkDown разметке. И знаете что? Она уже порядочно меня подзаелозила! Тексты я пишу на русском, но большая часть спецсимволов есть только в английской раскладке клавиатуры. А редактировани...

Наставничество в IT: растём сами и помогаем расти другим Достигнув уровня мидла, разработчики не всегда понимают, как и куда развиваться дальше. Проекты требуют примерно тех же умений, и выполнять их сравнительно легко. Кто-то захочет пойти в техлиды, кто-то сделает ставку на горизонтальный рост и изучение новых языков программиро...

Как писать музыку на Python — помогут три тематические библиотеки (для специалистов разного уровня) Продолжаем тему музыкального программирования — ранее мы говорили о языках Csound, SuperCollider и Pure Data, а сегодня рассказываем Python и библиотеках FoxDot, Pippi и Music-Code. Читать дальше →

Новогодний IMaskjs 6 — React Native, Pipes, ESM Всем привет! Я только что выпустил релиз шестой версии библиотеки imaskjs. После каждого мажорного релиза мне кажется, что это последняя версия. Библиотеке уже не один год, она стабильна и достаточно популярна среди сообщества. Что там еще можно сделать да еще и на мажорную...

Динамическая типизация — это не инструмент для разработки. Это чепуха (паршивая) В программировании очень много вещей, в которых я разбираюсь очень плохо. Настолько много, что меня иногда спрашивают — а в чем ты вообще разбираешься? Я разбираюсь в типах и проектировании удобного и надежного АПИ. Но для доброй половины разрабов эти вещи ничего не знача...

Краткость — сестра таланта: Как сделать Transformer/Summarizer на Trax В новой курсеровской специализации «NLP» от deeplearning.ai в качестве библиотеки глубокого обучения используется Trax. В последнем курсе подробно разбирается механизм внимания и его использование в архитектуре Transformer, в том числе в таких «новеллах» как BERT и T5. Имея...

[Перевод] Retrofit: удобные разработка и тестирование API Если разработчик веб-сервиса хочет дать максимум удобств и пользы клиентам, ему нужно создать общедоступный API для программной работы с этим сервисом. В экосистеме Java есть один подход к разработке API, весьма удобный для программистов. Он заключается в размещении DTO и ин...

Telegram-бот на Java для самых маленьких — от старта до бесплатного размещения на heroku Для кого написано Если вы ни разу не писали Telegram-ботов на Java и только начинаете разбираться — эта статья для вас. В ней подробно и с пояснениями описано создание реального бота, автоматизирующего одну конкретную функцию. Можно использовать статью как мануал для созда...

[Из песочницы] Как я умный аквариум делал (backend) Пролог Работая программистом в одной из больших и успешных компаний Москвы, я не переставал совершенствовать свои навыки программирования и проходил различные курсы на платформе Udemy. Конечно просто смотря курс и повторяя все за автором было скучновато, да и были моменты к...

Ловушка для эмульсии: нанометровый компартмент для монодисперсных капель Что общего между молоком, сливочным маслом, майонезом и маргарином? То, что это все продукты питания, будет верным ответом, но слегка поверхностным. Все эти вещества являются эмульсиями, то есть результатом смешивания двух веществ без полного их слияния. Самым ярким пример...

Какие российские приложения будут предустанавливать на смартфоны: есть ли в них что-то хорошее? Мы попробуем быть оптимистами. Давайте не только посмотрим на список приложений, которые будут предустанавливаться на смартфоны, официально продающиеся в России, но и попробуем найти там что-то полезное для пользователей. В любом случае понятно, что принуждение — это плохо...

[Из песочницы] Что такое sub-6GHz, mmWave? Зачем нужен 5G? Этот вопрос возник у многих, особенно после презентации Apple, где, как подсчитали пользователи, за всю презентацию слово «5G» было произнесено 60 раз. Так что же всё-таки такое 5G? И при чём тут миллиметровые волны, и почему есть две разновидности 5G? Давайте разберёмся. ...

[Перевод] Пишем «Змейку» для клавиатуры с подсветкой Введение Ночью я становлюсь хакером всевозможной электроники, но днём работаю разработчиком ПО. В основном моя работа заключается в сидении весь день за компьютером, вводе кода, отладке и т.п. Вероятно, вы могли догадаться, что основным устройством для написания всего этог...

Javascript and Rocket Science Я уже два с половиной года пишу на Js, и почти повсюду вижу примеры решения типовых задач для этого языка . Отрисовать очередную онлайн-витрину, подать асинхронный запрос на бек за очередным JSON. Уровнем повыше - построить структуру данных для SPA и на ее основе отобразить...

[Из песочницы] Ваш C# уже «функциональный», просто позвольте ему это Привет, Хабр! Представляю вашему вниманию перевод оригинальной статьи «Your C# is already functional, but only if you let it» автора Igal Tabachnik. Несколько дней назад я написал в Твиттере фрагмент кода C#, реализующий FizzBuzz, используя некоторые из новых «фичи» в C# 8....

[Перевод] Как генерируются UUID Вы наверняка уже использовали в своих проектах UUID и полагали, что они уникальны. Давайте рассмотрим основные аспекты реализации и разберёмся, почему UUID практически уникальны, поскольку существует мизерная возможность возникновения одинаковых значений. Современную реал...

Как изменить логин (имя пользователя) в Windows 10: 3 способа При входе в Windows 10 на экране отображается имя учетной записи пользователя. Возможно, вы хотите поменять его по каким-то причинам. Сделать это несложно, и есть несколько способов сделать это. Давайте поговорим о них подробнее. ♥ ПО ТЕМЕ: Как автоматически организовывать ф...

Doom Boy ESP32. Вторая итерация Так и не дождавшись DoomWatch платы сделал новый заказ с доставкой Fedex. В этот раз развел платы в KiCad. Как ни странна, Kicad понравился даже больше Eagle AutoDesk Основная цель была попробовать распаять чип esp32d0wdq6. Не сам готовый модуль, а именно отдельно микросх...

Превращаем дисковый телефон в цифрового помощника с использованием Google Assistant и Raspberry Pi Дисковых телефонов, к сожалению, почти нигде уже нет, а вместе с ними ушла целая эпоха. Но есть в этих аппаратах что-то особенное, что привлекает как обычных людей, так и разработчиков. Что касается последних, то они используют дисковые системы для самых разных проектов, и ...

[Из песочницы] Материальный Python. Что нового в библиотеке KivyMD Приветствую! Не так давно уже писали о Python в Mobile development и разработке мобильных приложений на Python с помощью библиотек Kivy и KivyMD. Эта статья продолжит знакомить вас с кроссплатформенными Python инструментами, а конкретно сегодня мы рассмотрим новинки, котор...

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

5 причин НЕ покупать OnePlus 9 Pro OnePlus 9 Pro высоко оценен теми, кто им пользовался или хотя бы тестировал. Вот только он не смог найти полного понимания у аудитории. У него есть свои минусы, а многие специалисты даже поставили его ниже 8 Pro в рейтинге предпочтений. Несмотря на это, серьезных недостатко...

[recovery mode] Радиоконструктор «Электронные кубики» У меня есть очень любопытный радиоконструктор. Он был выпущен в 1977 году и стоил в ту пору 10 рублей. Из этого конструктора можно собрать 35 конструкций, причём, без пайки. В качестве элемента питания используется батарейка типа «Крона». Конструктор c неизменным успехом б...

Массивно-параллельная база данных Greenplum — короткий ликбез Для Hadoop и Greenplum есть возможность получить готовый SaaS. И если Хадуп — известная штука, то Greenplum (он лежит в основе продукта АrenadataDB, про который далее пойдёт речь) — интересная, но уже менее «на слуху». Arenadata DB — это распределённая СУБД на базе опенс...

Веб-тренажёр Яндекс.Практикума. Как всё устроено Образовательный процесс важно делать интересным и по возможности интерактивным. Особенно, когда дело касается технологий — гораздо полезнее, когда есть возможность не просто написать какой-то код, а потом получить ответ от проверяющего, мол, молодец, всё хорошо, а на лету см...

[Из песочницы] Валидация данных в C++ с использованием библиотеки cpp-validator Казалось бы, валидация данных — это одна из базовых задач в программировании, которая встретится и в начале изучения языка вместе с "Hello world!", и в том или ином виде будет присутствовать в множестве зрелых проектов. Тем не менее, Google до сих пор выдает ноль ...

Объяснение: почему wc на Haskell оказался «быстрее» аналога на С После недавних статей (№10xd34df00d, №2chapuza, №3picul) сравнивающих скорость работы реализаций упрощенной утилиты wc у меня оставался только один вопрос — Как простая реализация на Haskell оказалась быстрее [простой реализации на C ?! Читать дальше →

[Из песочницы] Разбираемся с WebKit в 1С, на примере интеграции TinyMCE в управляемую форму в УТ 11.4 Многие уже знают, что в релизе платформы 8.3.14.1565, браузер Internet Explorer был заменен на Web-Kit, это на самом деле большой шаг вперед, но я уверен, многим, как и мне, пока не совсем понятно, что к чему. Возник опыт использования web-kit в 1С, вызова JS из 1С и вызова ...

Проводим нагрузочное тестирование скоростных USB-библиотек для STM32F103C8T6 В предыдущей статье я показывал предельную скорость шины USB у микроконтроллера STM32F103 со штатной библиотекой MiddleWare. В комментариях мне показали сразу две самодельных библиотеки, выжимающих из USB FS все соки. Но автор одной из библиотек высказал мысль, что быстро-то...

Сжимаем трансформеры: простые, универсальные и прикладные способы cделать их компактными и быстрыми Сейчас в сфере ML постоянно слышно про невероятные "успехи" трансформеров в разных областях. Но появляется все больше статей о том, что многие из этих успехов мягко говоря надуманы (из недавнего помню статью про пре-тренировку больших CNN в компьютерном зрении, ог...

[Перевод] Что такое «this» и с чем его едят Автор фото — Sebastian Herrmann. Доброго времени суток, друзья! Представляю Вашему вниманию перевод статьи Daniel James «What is 'this'? Why is that?». Что такое «this» и с чем его едят Когда я начинал изучать JavaScript, концепция this показалась мне крайне запутанной. ...

WinUI 3 — Новая эра разработки под Windows В календаре 8 марта, а я пишу эту статью. Почему? - Потому, что WinUI 3 - это важно!В этой статье:- WinUI 3 - это не просто новая версия библиотеки пользовательских компонентов. Это изменит разработку ПО под Windows и не только.- Как менялась разработка графических интерфейс...

Реализация ARP-спуфинга на Python Введение В данной статье я бы хотел продемонстрировать то, как можно реализовать собственную программу ARP-спуфинга на Python. Реализаций уже тысячи, но почти все они с использованием библиотеки Scapy и пары методов. Возможно данную библиотеку использовать эффективнее, не сп...

Дизайн — это проектирование, а не красота картинок Компании с правильными дизайн-процессами зарабатывают существенно больше. Я бы хотел рассказать про три базовые вещи с позиции пятилетнего исследования и своей практики в российских и международных компаниях: Мало кто воспринимает дизайн как способ проектирования продукт...

[Из песочницы] Unity — Enable Multidex или слишком много методов С чего все началось Всем привет. На определенном этапе разработки игры под Android на движке Unity я столкнулся с одной проблемой при билде. После добавления в проект таких плагинов как Appodeal и Google Play Games количество используемых методов превысило 65K и во время бил...

Как получить бесплатную подписку My ITIL Если вы думаете, что для этого достаточно сдать экзамен ITIL®, то вы заблуждаетесь. Если вы сдали экзамен, и подписка таки была вам предоставлена, то дальше можете не читать (вы сделали всё правильно, хоть, возможно, и случайно). Если же вы сдали экзамен, а заветное письмо о...

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

OpenPGP переписывают на Rust: проект Sequoia Секвойя Стагг в роще Олдер-Крик, Калифорния В 2018 году три бывших разработчика GnuPG начали работу над проектом Sequoia — реализацией OpenPGP на Rust. Как известно, OpenPGP — это открытый стандарт шифрования данных, часто используемый для защищённой электронной почты; а G...

[Из песочницы] Boost.Compute или параллельные вычисления на GPU/CPU Привет, Хабр! По моим меркам я уже достаточно давно пишу код на C++ (почти 3 года), но до этого времени ещё не сталкивался с задачами, связанными с параллельными вычислениями. Я не увидел ни одной статьи о библиотеке Boost.Compute, поэтому эта статья будет именно о ней. Со...

Ultra Famicom или 64 бита, которые потрясли мир Из трёх 64-битных систем пятого поколения (Atari Jaguar, Nintendo 64, Panasonic M2) лишь Nintendo 64 оказалась не просто жизнеспособной, но и коммерчески успешной. И причиной тому послужила не столько скрытая мощь консоли, сколько глобальное продвижение ее бренда под единым ...

Использование Obj библиотек в KolibriOS в языках высокого уровня Вступление В KolibriOS системные библиотеки имеют формат MS COFF и расширение Obj. В этой статье будет рассказано как их импортировать и использовать в C--, GCC и TinyC. Читать дальше →

Разбор: почему власти США угрожают китайским компаниям насильным снятием их акций с биржевых торгов В США уже месяц обсуждают новую законодательную инициативу – Holding Foreign Companies Accountable Act. Этот законопроект обязывает иностранные компании доказывать тот факт, что зарубежные правительства не владеют в них какой-либо долей. Если сделать это не удастся, или ам...

О доверии Волнует в последнее время эта тема, решил порассуждать. Буду признателен за комментарии и замечания. 1. Микроуровень. Большинство людей реально компетентны в 1-2 областях, по поводу всех остальных вынуждены полагаться на круг знакомых и мнения признанных (реальных или мнимы...

SviMik: «В OSM на этот счет есть два противоположных мнения» SviMik — скромный фрилансер из Эстонии, пожелавший сохранить свое инкогнито. Он пишет код для ПК и микроконтроллеров. Однако в OSM он — признанный король массовых импортов. Именно об этом мы с ним и поговорили: почему сообщество боится импортов, как лучше всего его провести...

Золотое кольцо скучнейших экскурсий: как это пытаются исправить Привет! Мы сейчас всерьёз упарываемся по развитию внутреннего туризма. Обычно я пишу про эту часть работы не на Хабр, но на днях появился один крутой пример, по которому можно отследить интересное продуктовое мышление и UX-подход. В реальном мире. В общем, компания внезапно ...

Как клеить по 13 девушек в час используя машинное обучение и Tinder *Исключительно ради изучения Machine Learning, разумеется. Под немного недовольным взглядом любимой жены. Наверное, нет столь простого до уровня спинно-мозговых рефлексов приложений, как Tinder. Для того чтобы им пользоваться достаточно одного пальца, чтобы свайпать и немно...

[Из песочницы] О бедном LINQ’е замолвите слово Все свое недлинное бытие в роли c# программиста я считал, что LINQ — это в первую очередь не про производительность кода, а про производительность программиста, как быстро он пишет код, а не как быстро сей код выполняет процессор. А проблемы с производительностью и кода и пр...

Графика в терминале Эта история началась, когда я узнал о существовании bpytop. Меня поразила детализация графиков и я начал разбираться как это сделано. Оказалось, что для вывода графиков использовались символы алфавита Брайля, представляющие из себя комбинацию из 8 точек: 2 точки в ширину и 4...

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

Разгон видеокарты: пробуем бюджетную PALIT GeForce GTX 1650 Super 1530MHz StormX Самый верный способ поднять уровень графики и избавиться от тормозов — прокачать железо. Купить новую видеокарту, обновить процессор, поставить более шустрый накопитель данных, оперативную память и т.д. Но некоторые даже не самые дорогие видеокарты сегодня продаются, давая...

Java: вещи, которые могут показаться любопытными и разработчику со стажем Доброе время суток! Статья написана по следам публикации «Вещи, которые вы [возможно] не знали о Java» другого автора, которую я бы отнёс к категории «для начинающих». Читая и комментируя её, я понял, что есть некоторое количество достаточно любопытных вещей, которые я узна...

IQListKit: таблицы и коллекции без dataSource IQListKit — реализация UITableView/UICollectionView без dataSource. Просто определяете секции и ячейки, а библиотека дальше все делает сама, в том числе и анимацию изменений. Работает с iOS 9.0.  Исходники: https://github.com/hackiftekhar/IQListKit

[Из песочницы] Блокировка двойного клика. Велосипед? С чего началось В очередной раз копаясь с легаси кодом и борясь с утечкой контекста я сломал в приложении блокировку двойного клика на кнопке. Пришлось искать, что именно я сломал и как это было реализовано. С учетом того, что в основном для подобной блокировки предлагается ...

[Перевод] 10 React-компонентов на все случаи жизни Я полагаю, что для решения различных задач React-разработки лучше использовать маленькие узкоспециализированные инструменты, а не универсальные решения, предлагаемые библиотеками компонентов. Мне нравится выбирать компоненты самостоятельно, я не люблю читать длинную документ...

Сеанс. Цикл рассказов «Свойство слоя» Список рассказов 1. Феномен 2. Колодец 3. Имитатор 3. Сеанс Хотел попробовать написать рассказ, поместившись в 2 тысячи знаков. В действительности это оказалось сложнее, чем думал. Частный слой ac:r482...

PostgreSQL Antipatterns: насколько глубока кроличья нора? пробежимся по иерархии В сложных ERP-системах многие сущности имеют иерархическую природу, когда однородные объекты выстраиваются в дерево отношений «предок — потомок» — это и организационная структура предприятия (все эти филиалы, отделы и рабочие группы), и каталог товаров, и участки работ, и ге...

В WhatsApp рассказали, как понять, что вас заблокировали WhatsApp – достаточно запутанный мессенджер. Столько условных символов и обозначений, как в нём, пожалуй, нет больше нигде. Все эти галочки – серые или синие, — внутричатовые уведомления и резервные копии только усложняют его восприятие рядовыми пользователями. По это...

Витамин B12: как узнать свой уровень и причем здесь старение мозга Сегодня команда Lifext расскажет: Как был открыт витамин B12; Что ради этого пришлось пережить первым пациентам; Что он из себя представляет и откуда берется? Какую роль играет в старении и когнитивном здоровье человека? Почему наш организм не усваивает тот, что синтезиро...

[Из песочницы] Работа с куки на чистом JavaScript без головной боли Привет, Хабр! Недавно я столкнулся с необходиомстью работать с куки-файлами при помощи JavaScript. Когда я увидел, насколько ужасна работа с document.cookie на чистом JavaScript, я полез искать библиотеку для удобства работы с куками. Как оказалось, немногие библиотеки для р...

Разбор: почему акции AMD выросли почти на 2000% за пять лет, и каковы их перспективы В январе 2015 года за одну акцию производителя процессоров AMD давали $2,69. В июле 2020 ценные бумаги подорожали до $55,04 за штуку – рост за пять лет составил почти 2000%. Что помогло компании переломить неудачный тренд и вернуть утерянные позиции на рынке, а также что б...

[Из песочницы] A* pathfinding на C#: двоичные кучи и борьба с аллокациями Сегодня мы разбираем один из популярнейших алгоритмов поиска пути. Работать будем с двумерным массивом целочисленных координат. Сначала кратко ознакомимся с методами обхода графов, напишем собственно поиск пути, а затем перейдём к самому вкусному: оптимизации быстродействия...

Спустя N-лет я созрела до нового принтера Привет, дорогой дневник! Это моя первая запись.Я Настя и мне 28 годиков, вот две недели назад ко мне приехал очередной принтер - на этот раз с кинематикой дельта.Я познала истинный ДЗЕН с Anycubic Kossel linear plus.. Думаю, владельцы дельт меня поймут - о чем я.Не буду расп...

Вариант работы с вебсокетами в iOS на языке Swift / Написал менеджер для работы с websocket Всем привет. 4 года назад я уже разбирался с вебсокетами в iOS, тогда я решил задачу с помощью одной из библиотек cocoapods, статья есть на Хабре. А сегодня хочу продемонстрировать еще одно решение, нативное без cocoapods. Я написал свой менеджер для работы с вебсокетами ...

Вакцина «Спутник V»: инструкция, как испортить хорошее дело Давайте на минуту отбросим все предубеждения и стереотипы об отечественной медицине и попробуем объективно разобраться в том, что сделано правильно, а что неправильно с "первой в мире вакциной от COVID" — Спутник V от «НИИ эпидемиологии и микробиологии им. Н. Гамал...

[Перевод] Математики открыли новый фронт в битве с древней числовой задачей Не одно тысячелетие математиков интересовал вопрос существования нечётных совершенных чисел. В процессе его изучения они составили невероятный список ограничений для этих гипотетических объектов. Но новые идеи на этот счёт могут появиться благодаря изучению иных близких к ни...

Как весь мир пытался создать альтернативу Android, но не смог Были ли альтернативы Андроиду? Android-смартфоны сегодня доминируют на рынке телефонов. Многие даже не знают, что когда-либо существовали альтернативы не в виде iOS, которой уж очень тяжело тягаться с Android за счет того, что это закрытая операционная система, привязанная к...

[Перевод] Атрибуты и протокол дескриптора в Python Рассмотрим такой код: class Foo: def __init__(self): self.bar = 'hello!' foo = Foo() print(foo.bar) Сегодня мы разберём ответ на вопрос: «Что именно происходит, когда мы пишем foo.bar?» Вы, возможно, уже знаете, что у большинства объектов есть внутренний словар...

Disaster Recovery и миграция c помощью VMware vCloud Availability. Часть 2 Привет! В прошлом посте я рассказал о возможностях VMware vCloud Availability (vCAV) и показал, как организовать Disaster Recovery (DR) и миграцию в рамках нескольких площадок облачного провайдера. Сегодня посмотрим, как с помощью vCAV восстановиться или просто смигрировать ...

Тикет-системы: как бесплатная OTRS три платных уделала? Бесплатный софт для бизнеса — спорная история. Компания, которая выбирает такое ПО, должна понимать, что либо ей придётся столкнуться с open source и искать разработчика на поддержку программы, либо принять бесплатную версию программы как есть, без надежды на поддержку, дора...

Агрегация маршрутов для списков РКН и чем это грозит добропорядочным сервисам Данная статья сугубо технического характера, затрагивающая один из аспектов блокировки ресурсов по спискам РКН и имеет актуальность для сервисов, ориентированных (в том числе) на жителей РФ. Краткий обзор способов блокировки Для блокировки по спискам РКН обычно используют сл...

[Перевод] Коронавирус: почему надо действовать прямо сейчас Вступление Учитывая всё, что происходит с коронавирусом, может оказаться очень сложно принять решение, что делать прямо сейчас. Стоит ли подождать, пока станет больше информации? Надо ли предпринять что-то уже сегодня? Если да, то что? В этой статье со множеством графиков, ...

Тим Кук: сторонние системы оплаты превратят App Store в барахолку Вероятно, вы ещё не забыли, что в конце прошлого года Epic Games подала на Apple в суд за удаление Fortnite из App Store. Поводом для этого стала интеграция в игру собственного платёжного сервиса студии, посредством которого она принимала оплату за встроенные покупки, прима...

Почему мы трансформируем трёхмерные векторы матрицами 4х4? Почему не матрица 3х3? Почему в матрице 4х4 всё уложено именно так? Зачем там последняя строка, заполненная нулями и одной единицей в конце? Этими вопросами я задался накануне, решил поисследовать вопрос и рассказываю что выяснил. Читать далее

Я выпустил Grafar — JS-библиотеку для визуализации После пяти лет в столе я готов представить свою библиотеку для визуализации — grafar. У нас есть: 3D, реактивные вычисления и самое простое АПИ для построения математических графиков прямо в браузере. В статье рассказываю, что я сделал и как этим пользоваться. Читать далее

[Перевод] Устранение неполадок в Kubernetes: в каком направлении двигаться, если что-то идет не так Источник Команда Kubernetes as a Service в Mail.ru Cloud Solutions перевела статью, в которой автор помогает найти причины ошибок в Kubernetes, если вы совсем не понимаете, куда нужно смотреть. Далее текст от лица автора. Kubernetes — непростая платформа, особенно когда что...

Как мы переучивали поддержку разговаривать по-человечески, и что получилось Поддержка разговаривала с пользователями сухо, коротко и официально. Пользователи обижались. Например, вот: Клиент: Привет, как поднять VPN на сервере? Поддержка: Ваш сервер в порядке, мы не занимаемся серверным администрированием [закрывает тикет].Поддержка права? Права. ...

Что делать, если поймал HardFault? Что делать, если поймал HardFault? Как понять, каким событием он был вызван? Как определить строчку кода, которая привела к этому? Давайте разбираться. Всем привет! Сложно найти программиста микроконтроллеров, который ни разу не сталкивался с тяжелым отказом. Очень часто он...

22% россиян стали больше работать во время пандемии Общепринятые меры по борьбе с пандемией коронавируса привели к тому, что сотрудникам большинства компаний пришлось приспособиться к новой профессиональной среде. В таких условиях нередко размываются границы между личной жизнью людей и их работой. В то же время у сотрудников ...

[Из песочницы] Контролируемые и неконтролируемые компоненты в React не должны быть сложными Привет, Хабр! Представляю вашему вниманию перевод статьи «Controlled and uncontrolled form inputs in React don't have to be complicated» автора Gosha Arinich. Возможно, вы видели много статей, говорящих: “вы не должны использовать “setState”", в то время, когда докумен...

ABBYY NeoML: как мы делали библиотеку машинного обучения и зачем она нужна Привет, Хабр! Меня зовут Стас, и я отвечаю за направление Common Libraries в компании ABBYY. Недавно мы выложили на GitHub созданную нами библиотеку для машинного обучения NeoML. NeoML — это кроссплатформенная C++ библиотека, позволяющая организовать полный цикл разработки ...

ERP-система — нет, микросервисный подход — да, подойдет для создания маркетплейса. Давайте разбираться, что к чему Есть компания N, которая занимается продажей спортивных товаров и входит в топ-10 на рыке с неплохими оборотами. Конкуренция растет, и компания понимает, что пора расширяться за счет добавления новых категорий и брендов. Как именно? Тут как раз и приходит идея, что можн...

Химия игроков в FIFA Mobile 21 и почему это важно для победы? Менделеев здесь ни при чём Все фанаты футбола знают, что сейчас проходит Чемпионат Европы Euro 2020. Конечно начало не самое гладкое, вспомнить только матч Дания vs Финляндия и Бельгия vs Россия. Тем не менее если вы хотите выигрывать в FIFA Mobile 21, то нужно в первую очередь думать о составе своей ...

Python &amp;amp; EEL. Делаем просто на Python’е и красиво на JS Тема красивых интерфейсов была и будет актуальна всегда, кто-то использует для создания графических приложений C#, кто-то использует Java, кто-то уходит в дебри C++, ну а кто-то извращается с Python, используя tkinter или PyQT. Существуют различные технологии, позволяющие со...

Крошка сын к отцу пришел и спросила кроха: что такое DDD? Но так, чтобы я понял Есть вопрос, который я никак не могу раскусить. Казалось бы, по нему есть масса информации: книги, статьи, доклады. Но сложность и многогранность темы не позволяет сразу ухватить суть. Поможешь мне в этом?Чтобы действительно понять сложную тему, нужно прочитать и обдумать м...

JavaScript библиотека Webix глазами новичка. Часть 4. Работа с данными. CRUD Я — начинающий front-end разработчик. Сейчас я учусь и стажируюсь в одной минской IT компании. Изучение основ web-ui проходит на примере JS библиотеки Webix и я хочу поделиться своим скромным опытом и сохранить его в виде небольшого учебного пособия по этой интересной UI б...

Пишем декодер для sigrok Если работаешь с цифровой техникой, то рано или поздно появляется необходимость в логическом анализаторе. Одним из доступных радиолюбителям, является логический анализатор DSLogic от DreamSourceLab. Он не раз упоминался на сайте, как минимум: раз, два и три. Его особенность...

Model Checking для тестирования многопоточности? С Lincheck — легко Привет! Сегодня мы будем говорить про многопоточность и расскажем про инструмент  Lincheck – один из ключевых проектов  Лаборатории параллельных вычислений в JetBrains Research. Если в двух словах, то это фреймворк для тестирования многопоточных структур данных под...

[Перевод] Почему никогда не стоит использовать Proof of Concept в продакшене Никогда не встречал разработчика, не любящего создавать всевозможные proof of concept (POC). Возможность построить что-то новое с нуля, чтобы протестировать теорию/процесс/технологию… Сама мысль об этом вдохновляет меня. Есть в них что-то, что стимулирует наше творческое ...

Наследование в Nuget-пакетах Nuget-пакет — это не только архив с переиспользуемыми сборками, но и контент и target-скрипты, задающие поведение MsBuild при сборке приложения. Это дает нам возможность рассматривать nuget-пакет в качестве самостоятельного объекта, у которого есть состояние и поведение. ...

Названы официальные аппаратные требования Windows 11: список совместимых процессоров Qualcomm, AMD, Intel Microsoft анонсировала Windows 11 Пользователи давно задавались вопросом, какие аппаратные характеристики потребуются для работы этой системы Microsoft опубликовала список совместимых процессоров производства Qualcomm, AMD, Intel На прошлой неделе Microsoft анонсировала опер...

[Перевод] Реализация алгоритмической теории игр на Python с Nashpy Теория игр — это метод изучения стратегических ситуаций, когда результаты зависят не только от ваших действий, но и от того, что предпримут другие. Что такое стратегическая ситуация? Вспомним типы рыночных структур: есть совершенная конкуренция, когда все компании являются...

Есть ещё порох в пороховницах – GeForce GTX 1080 Ti vs GeForce RTX 3060 Ti в тесте Benchmark Как себя чувствует старый флагман GeForce GTX 1080 Ti в современных играх? Может пора уже его менять на GeForce RTX 3060 Ti? Давайте разбираться

Необязательные параметры в репозиториях Spring Data Все кто использовал Spring Data сталкивались с ситуацией, когда у вас есть репозиторий для работы с сущностью и вы хотите написать универсальный find-метод для поиска по набору параметров, которые пользователь может задать или пропустить на форме поиска. Базовая реализация f...

[Перевод] Протокольно-ориентированное программирование в Swift 5.1 Протоколы — фундаментальное свойство Swift. Они играют важную роль в стандартных библиотеках Swift и являются обычным способом абстракции кода. Во многом они похожи на интерфейсы в других языках программирования. В этом руководстве мы представим вам подход к разработке прил...

[Перевод] Импорт react с древнейших времен до наших дней Прежде чем мы начнём разговор о способах импорта в веб-проекты библиотеки React, покажу современные способы выполнения этой операции и использования хука useState: // Глобальный подход window.React.useState() // Использование импорта в стиле CommonJS const React = require...

Хабра-анализ: что заказывают пользователи в подарок от Хабра Вы ведь заметили, что на календаре уже декабрь? Вероятно, вы уже почти готовы к празднованию, купили подарки, поучаствовали в Хабра-АДМ и запаслись мандаринками. Естественно, каждый Хабра-пользователь хочет не только дарить, но и получать что-то на новый год. А поскольку ка...

work&dev fun(damentals) #2 Софтскилы — это хорошо. Просто кто-то их неправильно понял Разбираясь с тем, как нанимать людей и на что смотреть при отборе, я сделал для себя несколько выводов, которые и так много где описаны. Человек должен подходить твоей компании по культуре. Мне не довелось повидать компаний где сидят коллектив neckbeard ребят, не общаются и ...

Kubernetes, микросервисы, CI/CD и докер для ретроградов: советы по обучению Кажется, тема «зачем нужен Kubernetes», уже раздражает. Хочется сказать: «все кому надо — давно уже поняли», однако я разделил бы технических (и околотехнических) работников на тех, кто «понял и знает как использовать», и тех, кто «понял, но хочет знать, как сделать знания а...

Как в Sports.ru писали свой WYSIWYG-редактор В середине 2018 года в Sports.ru задумались о переезде на новый WYSIWYG-редактор текста для пользовательских постов. С июня 2019 года редактор работает в режиме бета-версии. За это время мы решили множество проблем, связанных как с проектированием архитектуры всего сервиса, ...

Код на React и TypeScript, который работает быстро. Доклад Яндекса Евангелисты Svelte и других библиотек любят показывать примеры тормозящих компонентов на React. React и TypeScript дают много возможностей создавать медленный код. После доклада Виктора victor-homyakov вы сможете писать более производительные компоненты без усложнения кода. ...

Зачем идти на конференцию ESCAPE? 15-17 сентября пройдёт конференция ESCAPE для ИТ-специалистов — конференция об essential skills. Мероприятие продлится три дня и будет проходить онлайн. Организаторы позаботились о вашем расписании и сделали возможным регистрацию на отдельные доклады, чтобы вы могли не забив...

Разбор: почему SoftBank планирует продать акции телеком-гиганта T-Mobile на $21 млрд По данным СМИ, японской конгломерат SoftBank планирует продать 198 млн акций американского телеком-гиганта T-Mobile за примерно $21 млрд. Это примерно равняется 65% всей доли SoftBank в компании, чьи акции стабильно растут на протяжение последних месяцев. В нашей новой ста...

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

[Из песочницы] База данных на ScriptableObject c системой сейва/загрузки Введение В каждой игре есть данные, с которыми работают гейм-дизайнеры. В рпг — это база данных айтемов, в матч-3 — стоимость в кристаллах инструментов из магазина, в экшенах — количество хп, на которое лечит аптечка. Для хранения таких данных существует много способов — кт...

[Перевод] Три метода Pandas, о которых вы, возможно, не знали Автор статьи, перевод которой мы сегодня публикуем, говорит, что когда он узнал о тех методах библиотеки Pandas, о которых хочет тут рассказать, он почувствовал себя совершенно некомпетентным программистом. Почему? Дело в том, что ему, когда он до этого писал код, лень было ...

Почему проекты переписываются и почему это не удается Извечная тема — можно или нельзя переписать большой, работающий продукт с активной пользовательской базой? Ответ, в целом, будет — да, можно. Вопрос только — как? Наблюдая в прошлом несколько таких попыток (как удачных, так и не очень), данная статья является авторским взгля...

Открыта регистрация на вебинар «Какой SLM нам нужен?» 22 апреля в 11:00 по московскому времени приглашаем вас на бесплатный вебинар «Какой SLM нам нужен?» Управление уровнем услуг — тема далеко не новая, но и не теряющая актуальности. Что приводит людей к необходимости этим заниматься? Что будет, если эт...

Samsung психанула и начала готовить 600 Мп сенсор для камер Помните, как лет десять назад нам казалось, что камера смартфона на 8 Мп — это предел мечтаний? У всех наших друзей будет только 2 Мп, а у нас целых 8 Мп! Ух, мы бы тогда зажили. Можно было бы делать крутые фотографии, хвастаться ими и наконец-то продать свою камеру. ...

Java-дайджест за 27 декабря Рон Пресслер собрал и выложил новый «официальный» прототип Project Loom (файберы для Java). В качестве основы используется JDK 14. Скачать можно здесь, прочитать анонc можно здесь. Люди потихоньку начинают втягиваться в тему, и на GitHub уже лежит несколько проектов, испол...

FreeBSD: гораздо лучше GNU/Linux Сравню FreeBSD с GNU/Linux системами. Всё это исключительно субъективное мнение! Многое это просто мой опыт. Почти 100% всего времени я провожу за компьютером и исключительно Unix системами, примерно поровну с FreeBSD и GNU/Linux, вот уже 20+ лет. Большая часть достоинств F...

Древности: Roland MT-32, альтернативный звук для DOS-игр Не во всех играх под DOS есть настройки звука. Например, в Lemmings все просто работает. Или нет. Но там, где настройки все же имеются, они выглядят примерно так: Когда я играл в «Принца Персии» в девяностые, моим единственным выбором была верхняя строчка, по причине отсу...

Посещаемость с Яндекс десктопа упала: что произошло в 2019 и как это повлияет в 2020 Главная головная боль всех SEO оптимизаторов – найти причину, если трафик просел. Иногда это можно сделать довольно быстро, иногда приходится долго и по крупицам собирать информацию, оставляя длинные посты на форумах. Одним из каналов, по которому было много вопросов от кли...

[Из песочницы] Каверзы при собеседовании на project manager'а или прогулка по минному полю чудес Безумие есть неспособность видеть швы, соединяющие бред и явь. Стивен Э. Кинг Проходя в конце года собеседования на должность проджект менеджера, я повстречал много вопросов, которые могут показаться последним бредом и от лица hr’ов, и от лица квалифицированных специалисто...

[Перевод] Парадокс Ферми: где все инопланетяне? Первая статья из серии, где подробно изучается известный «парадокс Ферми» — отсутствие видимых следов деятельности инопланетных цивилизаций, которые должны были бы расселиться по всей Вселенной за миллиарды лет её развития «Одна из основных тем, на которой мы сконцентриров...

В поисках упорядоченного множества в Python: разбираемся с теорией и выбираем лучшую реализацию Множество (Set) — структура данных, которая позволяет достаточно быстро (в зависимости от реализации) применить операции add, erase и is_in_set. Но иногда этого не достаточно: например, невозможно перебрать все элементы в порядке возрастания, получить следующий / предыдущий...

[Перевод] 21 извлеченный урок за 21 год программирования Доброго времени суток, друзья! 7 апреля 2020 года. Сегодня для меня очень важный день. Сегодня исполняется ровно 21 год с того момента, как я начал писать код (делать это профессионально, зарабатывать этим себе на хлеб). Кажется, что это было только вчера… сегодня я — че...

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

К юбилею офиса разработки Intel в России: 20 лет — 20 проектов. Проект первый — Летняя Школа Это не так просто осознать, но в мае 2020 года исполнилось ровно 20 лет с тех пор, как корпорация Intel, чье 50-летие мы отмечали совсем недавно (а на самом деле – два года назад) официально открыла свой сайт для разработки и исследования в России. А точнее – в Нижнем Новгор...

Как мы запускали ещё один подкаст для программистов Я — большой фанат подкастов. Я реально просто обожаю их слушать. Подкасты помогают скоротать время в метро, узнать что-то новое, или просто весело и задорно провести свободное время. 24 октября 2020 года я прослушал уже все доступные эпизоды, и мне было скучно. Именно тогда ...

[Перевод] Мейнтейнер популярнейшей JS-библиотеки приговорен к тюремному заключению за смертельное ДТП по его вине Мы в TestMace активно следим за судьбой проектов, значимых для js сообщества, в частности core-js. И, по нашему мнению, резонансное событие, описанное в статье, не получило должного освещения на хабре. Что ж, мы решили исправить это дело и публикуем перевод статьи, кратко пе...

Пишем простой WYSIWYG-редактор с помощью ProseMirror Когда в Sports.ru понадобился свой WYSIWYG-редактор, мы решили сделать его на основе библиотеки ProseMirror. Одной из ключевых особенностей этого инструмента является модульность и широкие возможности кастомизации, поэтому с его помощью можно очень тонко подогнать редактор п...

PostgreSQL 14: Часть 3 или «ноябрьское затишье» (Коммитфест 2020-11) В ноябре завершился последний в этом году коммитфест изменений PostgreSQL 14. О двух предыдущих, июльском и сентябрьском уже говорилось. Громкими киллер-фичами нас не побаловали, надеемся разработчики припрятали их на последние два коммитфеста в январе и марте следующего г...

DevOps-инженеров не существует. Кто тогда существует, и что с этим делать? В последнее время такие объявления заполонили интернет. Несмотря на приятную зарплату, не может не смущать, что внутри написана дикая ересь. Вначале предполагается, что «DevOps» и «инженер» можно каким-то образом склеить вместе в одно слово, а далее идет рандомный список тр...

Ленивые итераторы и диапазоны в C++ Для того, чтобы упростить написание и чтение кода, программисты периодически придумывают всякие техники. Об одной из таких техник я уже писал в публикации Долой циклы, или Неленивая композиция алгоритмов в C++. Однако есть и классическая, более распространённая техника для б...

Новая библиотека для уменьшения размерности данных ITMO_FS — зачем она нужна и как устроена Студенты и сотрудники лаборатории Машинного обучения Университета ИТМО разработали библиотеку для Python, которая решает ключевую задачу машинного обучения. Расскажем, почему появился этот инструмент и что он умеет. Читать дальше →

1С справа налево: как мы поддержали RTL в платформе 1С: Предприятие Платформа 1С:Предприятие локализована на 22 языка, включая английский, немецкий, французский, китайский, вьетнамский. Недавно, в версии 8.3.17, мы поддержали арабский язык. Одна из особенностей арабского языка в том, что текст на нём пишут и читают справа налево. UI для ара...

Нейросеть с нуля своими руками. Часть 3. Sad Or Happy? В предыдущей части статьи мы написали реализацию простейшей нейросети в виде JS класса. Теперь давайте попробуем дать ей настоящее задание. Сценарий будет следующим: пользователь будет рисовать в определенном блоке веб-страницы смайл, а наша нейросеть попробует определить гр...

Пора на свалку Никогда не думал, что это случится со мной, но, похоже, я выгорел. А ещё мне стрёмно. Да, это ещё одна статья про выгорание. Я тут на днях смотрел на свою RSS-читалку и заметил, что под тегом «C++» у меня где-то три сотни непрочитанных статей. Я не прочитал ни одной статьи ...

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

[Из песочницы] 5 причин, по которым моушн дизайн помогает вам общаться с людьми Привет, Хабр! Представляю вашему вниманию перевод статьи «5 Reasons Motion Graphics Help You Connect With People» автора Katy French. Оригинал статьи: Katy French | Перевод статьи сделал моушн дизайнер Игорь Царёв Мы большие поклонники моушн дизайна. Это не потому, что о...

Сколько ты стоишь или о чем не говорят в приличном обществе Вопрос без которого не обходится ни одно собеседование и нет, я не про переворачивание связанного списка или сложность поиска в хеш таблицах. Сколько/How much/wie viel. Как бы это не звучало, но смысл сводится к одному — Ежемесячная стоимость 176 часов вашей жизни. Есть ли...

Что не так с Хабром Ловлю себя на мысли, что все меньше и меньше читаю Хабр специально, теперь чаще просто из поиска попадаю или в рекомендациях выскакивает. Начал думать — почему? Ведь раньше были и подписки и прочее. Пришел к такому выводу: Очень длинные статьи, при этом часто очень замудр...

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

[Перевод] Почему я всё ещё люблю C, но при этом терпеть не могу C++? Мне на удивление часто приходится говорить о том, почему мне всё ещё нравится язык C, и о том, почему я плохо отношусь к C++. Поэтому я решил, что мне стоит об этом написать, а не снова и снова повторять одно и то же. Как это обычно бывает у C-программистов, язык C не был...

RESTinio-0.6.13: последний большой релиз RESTinio в 2020 и, вероятно, последний в ветке 0.6 RESTinio — это относительно небольшая C++14 библиотека для внедрения HTTP/WebSocket сервера в C++ приложения. Мы старались сделать RESTinio простой в использовании, с высокой степенью кастомизации, с приличной производительностью. И, вроде бы, пока что это получается. Ранее...

Как мы вырастили системного аналитика с нуля Знакома ли вам ситуация, когда потребности вашего бизнеса растут, а людей под их реализацию не хватает? Что в таком случае делать? Где искать людей с нужными компетенциями и стоит ли вообще этим заниматься? Так как проблема, прямо скажем, не новая, то пути её решения уже ес...

Гайд: лучшие герои AFK Arena в каждом классе Наш гайд по AFK Arena призван решить извечный вопрос: каких героев вы должны выбрать для своей команды. Это важный вопрос, когда вы играете в гача-ролевую игру, такую ​​как AFK Arena, поскольку ресурсы минимальны для тех, кто любит играть бесплатно (а это практически все мы)...

Что не так с трейтами? Кажется, стоит просто сказать «трейты» — и начнется холивар. Мы уже случайно начали один пару недель назад. А затем решили разобраться. Что это в большей степени? Способ снизить дублирования кода. Быстрый способ внедрить функциональность. Дефолтная реализация интерфейса. И...

Почему PostgreSQL тормозит: индексы и корреляция данных "Хочешь ускорить запросы, построй индекс" – классический первый шаг по увеличению производительности в PostgreSQL. Вот только на практике можно встретить ситуацию, когда индексы в PostgreSQL есть, но тормоза никуда не делись. Не все индексы являются эффективными. Одна из воз...

[Перевод] 4 технических решения, которые делают API сервис успешным Есть API, которые в целом «как-то работают», но имеют проблемы с безопасностью, документацией или валидацией данных. Автор статьи объясняет, почему в современных реалиях это недопустимо, и даёт рекомендации по исправлению недостатков.   API — это программный интерфейс взаим...

[recovery mode] Якаем, тыкаем, пишем плохие статьи Как с большой долей вероятности узнать, что статья, которую вы видите на Хабре — плоха, не читая ее всю? Предлагаю вам эвристику. Если в начале статьи автор представляется или представляет свою компанию, то скорее всего статья плохая. К эпопее с флиппером это не относится, в...

[recovery mode] Пробуем и разбираемся с StateFlow Всем привет. Несколько дней назад JetBrains выпустил новую версию корутин — 1.3.6 и одним из нововведении стал новый подвид Flow — StateFlow, который приходит на замену ConflatedBroadcastChannel. Я решил попробовать StateFlow в действии и изучить внутреннее устройство. Чита...

ITIL в 2020 и 2020 в ITIL и что в ITIL 4 может быть особенно полезным в 2021? В этой заметке мы публикуем ссылку на вебинар, посвященный текущему статусу обновлению библиотеки ITIL. Он стал продолжением серии вебинаров, которые Cleverics совместно с AXELOS проводят каждые полгода. О том, что нового произошло в ITIL за это время рассказал главный архит...

Как я писал полудецентрализованную криптовалюту на PHP. (Часть 2 — Разработка) Предисловие В одной из прошлых статей я рассказывал какие библиотеки нам пригодятся и сравнили эту задумку с той неудачной. В этой части будем разрабатывать саму криптовалюту и настроим трекер. Не будем медлить, поехали. Читать дальше →

API, ради которых наконец-то стоит обновиться с Java 8. Часть 3 Какие есть причины переходить на новые версии Java? Кто-то это сделает из-за новых языковых возможностей вроде выражений switch, блоков текста или записей. Кому-то понадобятся новые интересные возможности вроде модулей или низкопаузных сборщиков мусора. Кто-то это сделает пр...

Компания Qualcomm купила стартап Nuvia, чтобы меньше зависеть от ARM и выйти на новый уровень В новый год с новыми чипсетами! Компания Qualcomm приобрела стартап Nuvia, разрабатывающий собственные процессоры. На данный момент стартап не выпустил ни одного процессора, но за $1,4 млрд Qualcomm покупал не готовый продукт, а компетенции, наработки и амбиции Nuvia. Во гл...

[Из песочницы] Хочешь, чтобы тебе поставили корректную дизайн-задачу? Помоги продакту ее поставить Однажды в деревне мой дядя Слава спросил, чем я занимаюсь. Большой, мол, уже, 25 лет. Должен же чем-то заниматься. Я ответил, что работаю в Москве дизайнером мобильных приложений. Он кивнул и помолчал с полминуты. Потом переспросил: «Так это значит… в телефоне там все… рисуе...

Обзор Redmi K30 Pro - смартфон для народа! Redmi K30 Pro пришел для того, чтобы укрепить фундамент народной любви к смартфонам суббренда Xiaomi. Если делать выводы с оглядкой на рынок Китая, то определенно у этой модели есть шанс. Но, если говорить в целом про мир и наши страны в частности, то это точно гаджет не для...

[Перевод] Как EA работала над ремастерингом Command & Conquer При жёстком капиталистическом образе мышления, которым, без сомнения, обладают некоторые из руководителей EA, не было бы никакой причины возвращаться к Command & Conquer и заниматься её ремастерингом. Стратегии не очень хорошо продаются на консолях, full-motion video с ...

Нетривиальные анимации в SwiftUI Идея На WWDC 2019 была представлена SwiftUI — технология коренным образом влияющая на создание UI в приложениях для экосистемы Apple. Нам в Distillery стало интересно в ней разобраться чуть глубже, чем это подано в примерах от Apple. В идеале нужно было запилить какой-нибудь...

[Перевод] Устали от глупых шуток о JS? Напишите свою библиотеку В JavaScript есть немало моментов, вызывающих вопрос «Чего???». Несмотря на то что у большинства из них есть логическое объяснение, если вы вникнете, они всё равно могут удивлять. Но JavaScript точно не заслуживает возмутительных шуток типа этой смеха. Например, иногда мы ви...

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

Twitter Text: парсинг текста Twitter Text — Swift-реализация библиотеки синтаксического анализа текста твитов. В библиотеке есть методы для анализа текста и вычисления длины, валидности, синтаксического анализа @mentions, #hashtags, URL-адресов и т.д. Исходники: https://github.com/nysander/twitter...

Нормально же сидели. Зачем Xiaomi полезла в складные гаджеты? Помните свои ощущения, когда Samsung показал первый складной смартфон в мире? Что вы тогда испытали? Чувство гордости от того, что живете в это чудесное время? Может быть, острое желание разбить копилку и купить этот гаджет? Хотя, мне кажется, это было что-то типа недоумени...

Σ-дракон для экономных, или двухголовый альпинист из фольги Я периодически задаю себе или окружающим один дурацкий вопрос: «Ну когда же китайцы начнут делать X для всех, почти даром, и пусть кто-нибудь только попробует уйти обиженным». Где X = какая-нибудь штука, реализованная интересно и недешево для бюджетно-хоббийного применения. ...

[Из песочницы] Boost-преобразователь: DCM vs CCM. Или почему не надо бояться считать самостоятельно В последнее время возросла популярность всевозможных калькуляторов для расчета электрических схем. С одной стороны, это приводит к уменьшению порога входа новичков, что, очевидно хорошо, так как приводит к развитию отрасли, но с другой стороны падает уровень понимания, что п...

5 функций, которые я все еще очень жду в iPadOS 14 Если не вспоминать про Scribble и оригинальную поддержку курсора, добавленные в iPadOS 14 в этом году, и не учитывать ее младенческий возраст (фактически, iPadOS 14 – это 2.0, ей всего полтора года), вынести вердикт было бы легко и просто: её сливают. Из того, что есть в iO...

Несовместимо с устройством: как устанавливать на Android несовместимые приложения? Если вы хотите скачать из Google Play новую крутую игру или опробовать популярный стриминговый сервис, но вдруг оказывается, что выбранное приложение несовместимо с вашим устройством или не поддерживается в вашей стране – да, это разочарование. Но не спешите с выводами и не ...

Библиотеки для декодирования видео. Сравнение на Python и Rust Многие задаются вопросом — насколько медленный Python в операциях декодирования? Правда ли, что компилируемые языки дают прирост скорости во всем, чего касаются? Что быстрее: OpenCV или ничего? Ответы на эти и другие бесполезные вопросы под катом вы прочитать не сможете. Там...

Книга «Гарвардский Некромант» Привет, Хаброжители! «Гарвардский некромант» рассказывает о том, как вели бы себя ученые, если бы магия реально существовала. Это научная фантастика с акцентом на первом слове. Автор пишет как о реальных, так и о вымышленных научных исследованиях, — но вымышленные описывае...

Мы стали экономить деньги на iPhone, или Apple просто выпускает хорошие телефоны? Мы уже не представляем себе, как это может быть — если Apple в один год просто возьмет и не выпустит новый iPhone. С каждым годом iPhone становится все мощнее и производительнее, и для некоторых это весомый повод обновить модель своего телефона на новую. Но, как выясн...

[Из песочницы] Зачем ограничивать наследование с помощью final? Вы наверняка слышали это знаменитое высказывание от GoF: «Предпочитайте композицию наследованию класса». И дальше, как правило, шли длинные размышления на тему того, как статически определяемое наследование не настолько гибко по сравнению с динамической композицией. Гибкост...

[Перевод] Марк Андриессен: Настало время создавать самим (It's Time to Build) Все западные учреждения не были готовы к пандемии коронавируса несмотря на множество предшествующих предупреждений. Этот грандиозный провал институциональной эффективности будет отдаваться в течение остатка десятилетия, но уже не рано спрашивать, почему и что мы должны с э...

Киоск Raspberry Pi для графического интерфейса на Kivy Привет, Хабр! Хочется поделиться опытом настройки Raspberry Pi 3B+ в качестве киоска с GUI на базе библиотеки Kivy для Python 3. Почему именно Kivy? Просто мы уже имеем продукт, разработанный на Python, нам бы хотелось добавить к нему графический интерфейс. Стоит отметить, ...

Что такое service mesh, когда внедрять, альтернативы Istio и другие ответы экспертов с АМА-сессии Слёрм по service mesh Публикуем сессию вопросов и ответов по service mesh. Сессия прошла в рамках подготовки к интенсиву Слёрм по service mesh. На Youtube есть запись. Эксперты отвечали на самые популярные вопросы по технологии service mesh и вопросы участников мероприятия. Ключевые вопросы АМ...

[Перевод] Кунг-фу стиля Linux: базы данных — это файловые системы нового уровня Забавно наблюдать за тем, как компьютерные технологии, которые, в момент их появления, кажутся необычными, в итоге либо уходят в небытие, либо становятся привычными и распространёнными. Например, в своё время, если на компьютере имелось больше одного пользователя, это иначе ...

[Из песочницы] Что не так с коллекциями в Java и почему Guava не поможет Вступление Название поста действительно «холиварное», но на мой взгляд и у Java, и у популярной библиотеки Guava есть ряд архитектурных проблем, которые в перспективе приводят к двусмысленностям и разногласиям в команде. Читать дальше →

Что такое VPN сервис и как выбрать подходящий для себя В течение последних нескольких лет мы готовили серию обзоров приложений VPN на Android, которые уже опубликованы на сайте. В результате этой работы я имел возможность ознакомиться с множеством VPN-сервисов. Ведь их очень много, и дать ответ на вопрос «какой лучше всего?», д...

Как использовать Websocket на примере простого Express API? Краткое описание технологии Websocket — это протокол связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени. Для установления соединения WebSocket клиент и сервер используют протокол, похожий на HTTP. Кл...

Open source: CI/CD и тестовая инфраструктура Авито для Android Мы вынесли в open source инфраструктуру Авито для Android: Gradle плагины, эмуляторы и библиотеки для тестов. Наш код будет полезен при автоматизации CI/CD, а также облегчит написание и поддержку автотестов. В этой обзорной статье мы расскажем, по...

Победители конкурса стартапов The Europas Awards 2020 На Хабре часто пишут про новые технологии и яркие стартапы. Но почему-то до сих пор никто не рассказал об итогах конкурса The Europas Awards 2020, хотя там есть и российские победители. Cloud4Y исправляет эту оплошность. В прошлом году Europas Awards для европейских техни...

Вышел пакет Sequoia 0.20.0, реализация OpenPGP на Rust Вчера был представлен выпуск пакета Sequoia 0.20.0. Он предлагает библиотеку функций и инструментарий командной строки с реализацией стандартов OpenPGP (RFC-4880). Команда проекта состоит из трех человек — участников проекта OpenPGP (RFC-4880). Для повышения безопасности и ...

В «Castlevania: Resurrection» для Sega Dreamcast, которую отменили 20 лет назад, можно поиграть прямо сейчас В 1999 году на E3 была представлена шикарная игра «Castlevania: Resurrection» для Sega Dreamcast. Это была еще не полноценная игра, но вполне играбельный прототип с рядом ограничений. К сожалению, в марте 2000 года игру отменили, и с тех пор о ней почти ничего не было слыш...

Понижаем барьеры на вход в распознавание речи Автоматическое распознавание речи (STT или ASR) прошло долгий путь совершенствования и имеет довольно обширную историю. Расхожим мнением является то, что лишь огромные корпорации способны на создание более-менее работающих "общих" решений, которые будут показывать...

Хакатоны Осень 2020. Мой опыт Добрый день, уважаемые хабровчане.Подходит к концу год 2020 и пришла пора подвести итоги. В этот году я попробовал себя в хакатона для получения разнообразных навыков. Самым важным было для меня отработать навык быстрого погружения в проблему, написать решение, протестироват...

KPI для Security Operations Center: как мы пришли к своей системе метрик Не буду тут писать длинные заумные тексты о том, «как правильно построить систему KPI для SOC». А просто расскажу, как мы боролись и искали нашли свою методику и как теперь измеряем, «насколько все плохо/хорошо/безопасно/(нужное подчеркнуть)». Читать дальше →

[Перевод] Пишем CRUD-приложение на Go с помощью Mysql, GORM, Echo, Clean Architecture Начнем сначала В этой статье будет сказ о том, как на Clean Architecture написать API с функциями CR(U)D, где в качестве БД взят Mysql, фреймворк – Echo, ORMapper – GORM. Что делаем API с функциями Create, Read, (Update), Delete. Обновление на самом деле реализовать особо н...

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

[Перевод] Windows 95 — как она выглядит сегодня? Windows 95 была ОС Microsoft «следующего поколения»: переделанный UI, поддержка длинных имён файлов, 32-битные приложения и множество других изменений. Некоторые из компонентов Windows 95 используются и сегодня. Как она выглядит? Давайте протестируем и разберёмся. Я не соб...

Способы хранения деревьев в реляционных базах данных c использованием ORM Hibernate Здравствуйте! В этой статье, я постараюсь кратко рассказать о четырёх достаточно известных способах хранения деревьев с указанием преимуществ и недостатков. На идею написать подобную статью подтолкнул, когда-то не раз заданный мне вопрос: "А как это будет в Hibernate?", то е...

Один бинарник, любое окружение. Магия чистого C Как мы представляем себе кроссплатформенность? Мы пишем программу на языке, который либо компилируется в исполняемый файл отдельно для каждой поддерживаемой платформы, либо использует разновидность виртуальной машины вместо бинарника (и тогда эта среда должна присутствоват...

От библиотеки компонентов к дизайн-системе Разработка UI-компонентов — одна из самых затратных задач при разработке фронтенда. Чтобы оптимизировать процессы, некоторые компании поручают её выделенной команде. Мы же решили пойти другим путём: сделать библиотеку, чтобы компоненты туда могли добавлять разработчики из ...

Microsoft прекратила тестирование игрового сервиса xCloud для iOS и планирует сделать его эксклюзивным для Android Microsoft прекратила тестирование xCloud для iOS: запуск игрового потокового сервиса в сентябре будет эксклюзивным для Android. Отсутствие поддержки для iOS объясняют прежде всего сложными политиками App Store. Это непременно приведет к потере количества покупок и подписок в...

Пишем под android с Elmslie Это третья часть серии статей об архитектуре android приложения vivid.money. В ней мы расскажем об Elmslie - библиотеке для написания кода под android с использованияем ELM архитектуры. Мы назвали ее в честь Джорджа Эльмсли, шотландского архитектора. С сегодняшнего дня она д...

Одни говорят вузы должны давать базу, другие — прикладные технологии. Кто прав — непонятно ИТ-индустрия сильнее всех вскрыла кризис современного высшего образования. Ей нужно очень-очень много кадров — с каждым днем все больше — и классические вузы много где не успевают за рынком, ни количеством, ни качеством. Это порождает споры — надо ли идти на пять лет в ву...

[Перевод] Использование asyncio для создания асинхронных драйверов устройств на MicroPython v.1.12 Изученая возможности MicroPython для своих целей натолкнулся на одну из реализаций библиотеки asyncio и, после недолгой переписки с Piter Hinch — автором библиотеки, понял, что мне необходимо глубже разобраться с принципами, базовыми понятиями и типичными ошибками использова...

[Перевод] Как и почему эмодзи портят онлайн-переписку Разве могут эти милые значки могут испортить ваши отношения с подписчками или навредить в личной переписке? А что на счёт онлайн-переписки с коллегами в условиях дистанционной работы? Автор статьи на всё отвечает «да». Более того, между многобукаф и многосмайлоф он выбирает...

[Перевод] Ванильный JavaScript и HTML. Никаких фреймворков. Никаких библиотек. Никаких проблем Используете для создания приложений Vue, React, Angular или Svelte? Я использую, и если вы тоже, и уверен, что вам уже давно не приходилось писать приложение, которое выводит информацию без этих прекрасных инструментов. Когда-то многие из нас писали веб-приложения только с...

Детская сказка программисту на ночь Есть интересная тема, на первый взгляд мало относящаяся к алгоритмам. Она "сказочная" с одной стороны, а со стороны другой в ней есть созвучие с насущными проблемами начинающего свой профессиональный путь программиста. Давайте попробуем разобраться и немного развл...

Apple представит в следующем году iPad Pro с OLED-дисплеем, если слухи верны Эти панели обеспечивают более высокий уровень яркости и контрастности, чем привычные для "яблочных" планшетов IPS-матрицы Retina.

Парад идей на рынке образовательных технологий Иногда хочется бросить все, чем ты занимаешься, и просто заработать много денег… при этом не нарушая закон.  Если у вас есть идеи, как это сделать — поделитесь. Лично я ставлю на стартап в сфере EdTech. В этом посте я объясню почему и расскажу о нескольких интересных идеях н...

[Перевод] Извините, но онлайн-курсы не сделают вас Data Scientist Причина, по которой вам серьёзно нужно прекратить записываться на онлайн-курсы, если вы не применяете на практике то, что уже знаете. Шли выходные. Я только что закончил ещё один онлайн-курс по науке о данных. Я чувствовал, что достиг чего-то. Ещё бы, любой почувствует, ч...

Эксперимент: как научиться создавать популярные тексты на английском (и почему англоязычный Хабр так мало читают) Я много лет занимаюсь маркетингом, написанием текстов, при этом увлекаюсь английским и использую его в работе. В русскоязычном интернете в целом не так и много статей о контент-маркетинге и продвижении бизнеса в США. А те что есть часто просто рассказывают как надо делать ...

Мой штрихкод. Code128 Однажды в процессе производственной деятельности появилась необходимость генерации штрихкода по стандарту code128. Появилась в виду того, что имевшаяся в эксплуатации функция (хранимая процедура в базе Oracle) генерировала клёвый, полосатый штрихкод, который однако, читался...

Электробусы и их батареи: что такое литий-титанат? (Part.1) фото c сайта www.zr.ru Друзья здравствуйте, всем здоровья, берегите себя, антисептики — наше ВСЁ! Сегодня попробуем рассмотреть московские электробусы по мотивам статьи в журнале «За рулем» в части используемых литий-титанатных батарей (Li4Ti5O12 или LTO), их стоимости и...

История одного взлома или учитесь на чужих ошибках Тут должна быть затёртая цитата из Ницше про силу, но мы не стали её писать. Однажды это может случится с каждым системным администратором – он придёт утром на работу, станет проверять работу инфраструктуры и обнаружит, что на файловом сервере вместо данных пользователей ...

[Перевод] Как заработать на веб-скрапинге А вы знали о том, что то, что вы сейчас читаете, это — данные? Вы видите слова, но на серверах всё это хранится в виде данных. Эти данные можно куда-то скопировать, можно разобраться в их структуре, с ними можно сделать что-то ещё. Собственно говоря, только что мы привели уп...

[Перевод] Почему я перестал читать статьи про то, как стать разработчиком Я жалею, что в то время, когда я ещё только учился писать код, никто не дал мне один совет: не читать статьи в духе «Как я стал разработчиком за столько-то месяцев». Поэтому теперь хочу сам дать этот совет другим. Хватит читать эти дурацкие статьи. Уверен, что вышесказанн...

[Перевод] Почему разработчики отказываются от Slack На днях меня осенило: я не заходил в Slack уже два месяца, с тех пор как уволился из Netlify. Те, кто в Slack живёт и работает, понимают масштабы подобной перемены: лично я с 2015 по 2020 годы открывал эту платформу практически ежедневно – а теперь вдруг резко перестал польз...

Сгореть и вернуться из пепла или люди-фениксы История о том как “сгорают” в распределенных командах. Мы, в ProtocoleOne, пишем разные проекты и почти все они Open Source. И так уж сложилось, что крутые специалисты живут в разных городах и даже странах и не только в столицах. Один из таких проектов — PaySuper. Проект дл...

[Из песочницы] Очереди сообщений в PostgreSQL с использованием PgQ Очереди сообщений используются для выполнения: отложенных операций, взаимодействия сервисов между собой, «batch processing» и т.д. Для организации подобных очередей существуют специализированные решения, такие как: RabbitMQ, ActiveMQ, ZeroMQ и тд, но часто бывает, что в ни...

[Из песочницы] Управление интерфейсом приложения при помощи жестов (Keras + CoreML) В настоящее время популярность программ с использованием искусственных нейронных сетей растет, в связи с этим появляется большое количество технологий, позволяющих упростить работу связанную с ними. В настоящей статье будет описан один из возможных путей реализации приложени...

Кажется, нам всем пора отказаться от Google Chrome. И на Android, и на ПК Chrome – пожалуй, самое популярное приложение Google, независимо от платформы. Пользователи любят фирменный браузер поискового гиганта за его логику и удобство. Во всяком случае, других причин им пользоваться лично я не вижу. Он далеко не самый быстрый, не самый лёгкий, а п...

Загрузка и обработка изображений в .NET Core В этой статье я хочу рассказать о своём опыте реализации механизма загрузки изображений в .NET Core приложении с последующим их ресайзом и сохранением в файловой системе. Для обработки изображений я использовал кроссплатформенную библиотеку ImageSharp от Six Labors. Существу...

Смешение уровней абстракции закладывает бомбу в основание вашего проекта За годы работы архитектором я видел разных заказчиков, и одна из самых частых ошибок формулирования ТЗ и хотелок заказчика — это смешение разных уровней абстракции. Приходит человек и говорит: — Мне нужна железка, которая будет управлять приводом дверей, и показывать на семи...

Опубликован релиз Sequoia 1.0, реализации OpenPGP на языке Rust Спустя три года после начала разработки опубликован релиз Sequoia 1.0. Это реализация OpenPGP на языке Rust, содержащая обширную библиотеку функций и инструментарий командной строки. Релиз опубликован после того, как разработчики закончили работу над низкоуровневым API — в ...

Создание Python-обвязки для библиотек, написанных на C/C++, с помощью SIP. Часть 1 Иногда во время работы над проектом на языке Python возникает желание использовать библиотеку, которая написана не на Python, а, например, на C или C++. Причины для этого могут быть разные Во-первых, Python — язык замечательный, но в некоторых ситуациях недостаточно быстрый....

[Из песочницы] Todolist на React Hooks + TypeScript: от сборки до тестирования Начиная с версии 16.9, в библиотеке React JS доступен новый функционал — хуки. Они дают возможность использовать состояние и другие функции React, освобождая от необходимости писать класс. Использование функциональных компонентов совместно с хуками позволяет разработать полн...

Зачем нужен обычный Galaxy Note 20 и другие модели Samsung На этой неделе компания Samsung представила новые крутые смартфоны из легендарной серии Galaxy Note. Кому-то они не понравились. Некоторые наши авторы раскритиковали их, я но я был к ним более лоялен. Конечно, надо еще попользоваться ими и продвинуться дальше первого впечат...

В Desperados III вернется Маккой У нас есть отличные новости для преданных фанатов игры Desperados III — легендарный охотник за наградами Маккой возвращается. Для преданных поклонников франшизы, которые отлично знают предысторию виртуального мира, не нужно объяснять, кто это такой и почему данный персонаж н...

10 минут ежедневного пребывания на природе помогают снизить тревогу и беспокойство Сегодня тревога и депрессия встречаются чаще чем когда-либо в истории. Одной из причин является высокий уровень стресса, который ежедневно испытывают миллионы людей по всему миру. Например, за последние десять лет в одной только Великобритании в пять раз увеличилось число с...

Кому индивидуальных тренировок на основе ИИ? Привет, Хабр! Мы тут заморочились вопросом о тренировках дома и погрузились в разработку фитнесс приложения (android | ios). Для начала давайте разберемся, что обычно прячется за маркетингом фитнесс приложений? Мы все чаще встречаем рекламу с главным предложением — скача...

Колонка редактора: Как я выбирал ультрабук с сенсорным экраном и что из этого вышло История с выбором произошла в прошлом году и благополучно завершилась, после чего я и знать об этом забыл, но недавно один друг обратился с вопросом выбора ультрабука габаритов Apple MacBook Air 13, но с сенсорным качественным экраном, вменяемой начинкой и не за все деньги м...

Автоматизация сбора купонов для бесплатной литературы Предыстория На ЛитРес есть система бонусов и купонов, которые появляются с завидной регулярностью. Чтобы сделать приятное жене, да и в целом может найти себе интересную книжку, начал мониторить сайт в котором появляются свежие купоны и скидывал их в телеграм. Но буквально сп...

[Из песочницы] Пора начать учиться правильно Статья посвящается всем тем, кто: до сих пор не может уснуть, после увиденной схемы паттернов из книги Банды Четырех Страшная вещь смущается количеству страниц в технической литературе вечно боится, ч...

[Из песочницы] Программная реализация умножения в полях Гаула Захотелось мне как-то сделать более надёжной передачу информации через радиоканал. Это не какой-то промышленный проект, или что-то другое серьёзное. Это скорее для хобби и саморазвития. Сказалась травма детства — отсутствие нормально работающей радиоуправляемой машинки. С те...

Laravel–Дайджест (14–20 сентября 2020) Меняем функционал Laravel UI на Laravel Fortify и кастомизируем Jetstream. Пишем SaaS-приложение. Взлом админки Laravel Nova. Разбираемся с Blade UI Kit. Читать дальше →

Головоломка MoominValley Hidden & Found про муми-троллей появилась на смартфонах По анимационному сериалу «Муми» выпустили игру-головоломку под названием «MoominValley Hidden & Found». По сюжету муми-тролли обратились к нам за помощью после того, как узнали о нашей невероятной способности находить спрятанные предметы. По сути мы получаем локации в ви...

Немного о графиках, сплайнах и генерации ландшафта Всем привет! Недавно я решил написать свой алгоритм генерации ландшафта для своих игр на игровом движке Unity 3D. На самом деле мой алгоритм вполне подойдет и для любых других движков и не только движков, так как использует только чистый C#. Делать это с помощью шума мне пок...

[Перевод] Руководство по работе с OpenAL на C++. Часть 1: воспроизводим звук Вашей игре нужен звук! Наверно, вы уже использовали OpenGL для рисования на экране. Вы разобрались с его API, и поэтому обратились к OpenAL, потому что название кажется знакомым. Что же, хорошие новости — OpenAL тоже имеет очень знакомый API. Он изначально задумывался для и...

Исправь код, продай техническую фигню, покрути рулетку на Russian Python Week 2020 Рефакторинг — сложная вещь. У каждого разработчика свои критерии хорошего, плохого и красивого кода. Из-за двух строк можно развернуть холивар на две страницы комментариев на Хабре. Почему бы тогда не сделать «Битву рефакторинга»? Мы и сделаем — с 14 по 18 сентября на Russia...

Как сэкономить 15 000 рублей при регистрации ПО Прошёлся недавно по поисковой выдаче гугла и выяснил, что регистрация прав на программу для ЭВМ стоит около 15 тыс. рублей. 15 тыс. рублей! И это ещё без пошлины. Я удивился, потому что подготовка документов занимает минут тридцать. Чёрт с ним, пускай даже один час, но 15 т...

[Перевод] Разработчик популярного веб-фреймворка FastAPI — об истории его создания и перспективах аннотаций типов Python Python-девелопер и писатель Рики Уайт взял интервью у Себастьяна Рамиреса, разработчика из Explosion AI. Но Себастьян не просто разработчик, это заметная фигура в open source сообществе, создатель популярных фреймворков FastAPI и Typer. В основном речь шла про широкие возм...

Сколько методов должно быть в классе? Пожалуй это один из важнейших вопросов, с которым сталкиваются разработчики, использующие классы. У нас есть принципы SOLID, есть свое видение прекрасного и огромное количество разночтений. Я не надеюсь дать исчерпывающий ответ “сколько методов должно быть в вашем классе”. ...

3D ML. Часть 5: свертки на графах В предыдущих заметках данной серии мы уже успели поговорить о датасетах и инструментах, функциях потерь и примерах прикладных задач, а сейчас пора перейти к “ядру” любой подобласти глубокого обучения — к их архитектурам. Но, прежде чем разбираться с тем как устроены целые а...

SwiftQRCodeScanner: сканер QR-кодов Кто и зачем использует QR-коды до сих пор не совсем понятно, но если вам нужно такое в вашем iOS-приложении, то вот есть SwiftQRCodeScanner — готовая библиотека со сканером QR-кодов. Исходники: https://github.com/vinodiOS/SwiftQRCodeScanner

Как писать техстандарт по защите информации для крупной компании Любая крупная компания со временем сталкивается с проблемой появления неразберихи в применяемых методах, способах и средствах защиты информации. Каждая компания решает проблему хаоса по-своему, но обычно одна из самых действенных мер — написание технического стандарта ИБ....

Зачем и для кого мы делаем Слёрм Agile За осень-зиму 2020 я поучаствовал в аджайл-трансформации во всех ролях и видах. Боль еще жива. Я собрал все шишки и сделал все ошибки, которые мог. Главная ошибка — самонадеянность, я почему-то решил, что с моим знанием психологии и опытом управления достаточно почитать про ...

[Из песочницы] Svelte, исчезающий фреймворк, что всё никак не исчезал Когда я вижу очередную статью о Svelte: RE: Боль и слёзы в Svelte 3 Svelte 3: Переосмысление реактивности Почему SvelteJS возможно лучший фреймворк для новых веб-разработчиков Легенда о Фреймворке Всевластия Re: «Сравнение JS-фреймворков: React, Vue и Hyperapp» Исчезающие фр...

Стандарт C++20: обзор новых возможностей C++. Часть 5 «Корутины» 25 февраля автор курса «Разработчик C++» в Яндекс.Практикуме Георгий Осипов рассказал о новом этапе языка C++ — Стандарте C++20. В лекции сделан обзор основных нововведений Стандарта, рассказывается, как их применять уже сейчас и чем они могут быть полезны. При подготовке...

В чём смартфоны Xiaomi уступают более дорогим телефонам? Минусы телефонов Xiaomi Не так давно я стал обладателем Xiaomi Mi 9 Lite в качестве дополнительного устройства. И сейчас готов поделиться своим мнением по поводу того, в чем дешевые смартфоны Xiaomi могут уступать более дорогим решениям популярных брендов. Простыми словами, ...

Принимаем 10 000 ивентов в Яндекс.Облаке. Часть 2 И снова здравствуйте! Продолжаем нашу серию статей про то, как мы щупали Яндекс.Облако. Давайте вспомним план, по которому мы с вами двигаемся: 1 часть. Мы определились с ТЗ и архитектурой решения, написали приложение на golang. 2 часть (вы сейчас здесь). Выливаем наше при...

[Из песочницы] Эта музыка будет вечной или генетическое программирование Писать можно о разном, даже более того – на разном. Вот и программирование как таковое тоже бывает не ограничено определенными рамками, привычных всем стереотипов, связанных с компьютерами. Ранее на Хабре уже выходили статьи про так называемое литературное программирование и...

Лучшие бесконечные раннеры для Android Есть категория игр, которую можно назвать самой необычной из всех остальных. Она уже не нова и многие даже наигрались во что-то подобное, но именно бесконечные раннеры стоят особняком в мобильном гейминге. Только они позволяют достичь максимального уровня напряжения, когда ...

Опыт внедрения service mesh в «Авито» Что такое service mesh и какие задачи по управлению инфраструктурой решает? Как service mesh внедряли в «Авито» и почему отказались от популярного Istio? Зачем стали писать аналог и к чему в итоге пришли? Об этом в интервью «Слёрму» рассказал Александр Лукьянченко — тимлид ...

По-настоящему яркий, надёжный и безопасный источник света для растений Я люблю выращивать всякую экзотику и долго не мог решиться на организацию нормального освещения. Какое-то время у меня висели старые люминесцентные лампы, но света они давали немного, и вот, с приобретением венериной мухоловки я понял, что дальше оттягивать нельзя, сформулир...

[Перевод] Как подключить OLED дисплей к Raspberry Pi Pico — быстрый старт У Raspberry Pi Pico несколько функциональных ограничений, включая отсутствие модуля беспроводной связи. Но, в целом, это отличная плата для реализации самых разных проектов. Одно из ее достоинств — простота подключения дисплея. Она позволяет работать с Pico Display или Pico...

[Перевод] Чистые тесты на PHP и PHPUnit В экосистеме PHP существует много инструментов, обеспечивающих удобное тестирование на PHP. Одним из самых известных является PHPUnit, это почти синоним тестирования на этом языке. Однако о хороших методиках тестирования пишут не так много. Есть много вариантов, для чего и ...

Этюд по реализация бизнес-логики на уровне хранимых функций PostgreSQL Побудительным мотивом к написанию этюда послужила статья «В карантин нагрузка выросла в 5 раз, но мы были готовы». Как Lingualeo переехал на PostgreSQL с 23 млн юзеров. Показалось интересным то, что одна и та же мысль-"реализовать бизнес-логику в БД". пришла в ...

Почему не работает пульт от ворот или шлагбаума? Иногда случается так, что пульт по тем или иным причинам перестаёт работать. И тогда приходится с этими самыми причинами разбираться в поисках оптимального решения.

Разбираемся в рекурсии Привет, Хабр. Про рекурсию ходит много шуток, и она традиционно считается одной из сложных для понимания тем в computer science, поэтому давайте сегодня немного о ней поговорим. А именно, давайте обсудим, как выражать доказуемо завершимые вычисления. Зачем это надо? Рекурси...

Спасибо коронавирусу. Россияне стали одновременно больше работать и проводить время с семьей Свежее исследование «Лаборатории Касперского», в котором изучалось влияние пандемии коронавируса на стиль жизни и работы, показало, что 22% россиян стали тратить больше времени на работу, чем до перехода на удаленку. Более половины опрошенных (56%) подтверди...

[Из песочницы] Как не платить за Java хостинг или быстрый старт с Google App Engine Все мы хоть когда-нибудь писали приложения, облегчающие жизнь. Не на заказ, а просто для себя. Записные книжки, программки учета финансов, набор карточек для изучения иностранного языка — да мало ли в жизни хороших идей? И вот было бы здорово, иметь доступ к этой программке ...

А чего плохого в монополии Яндекса? И вообще в монополиях? В этот блок выдачи могут попасть только сервисы группы юрлиц Яндекса Я уже несколько постов разбираю наше обращение в ФАС по поводу интеграции поиска Яндекс с различными сервисами Яндекса. Напомню предыдущие серии: предупреждение ФАС, ФАС возбуждает дело против Яндекса. В ...

[Перевод] Советы по написанию самодокументируемого кода Слова «самодокументируемый код» — это ещё один способ сказать «читаемый код». Сам по себе он не заменит настоящей документации или хороших комментариев, но с ними или без них определённо сделает вашу жизнь и жизнь ваших коллег проще. Давайте разберём несколько важных принцип...

Оксфордский словарь не смог выбрать одно слово для 2020 года и выдал сразу 16 У Оксфордского словаря есть традиция — каждый год в ноябре-декабре выбирать слово или словосочетание, которое характеризует год в целом. В 2019 это было «Climate emergency» («Чрезвычайная климатическая ситуация»). 2020 год выдался же настолько странным, что лингвисты про...

Как обучить нейронную сеть DeepPavlov на ноутбуке с использованием GPU В этой статье я хочу поделиться своим опытом использования данной open-source библиотеки на примере реализации одной задачи с парсингом файлов PDF/DOC/DOCX содержащих резюме специалистов. Здесь я также опишу этапы реализации инструмента для подготовки датасета. После чего м...

[Перевод] Типовые ситуации при непрерывной интеграции Вы изучили команды Git но хотите представлять, как непрерывная интеграция (Continuous Integration, CI) происходит в реальности? Или может вы хотите оптимизировать свои ежедневные действия? Этот курс даст вам практические навыки непрерывной интеграции с использованием репозит...

В дневнике разработчиков экшен-RPG Bound By Blades говорят о третьем игровом персонаже Bound By Blades — это экшен-RPG, которую анонсировали ещё в сентябре прошлого года. Тогда разработчики запустили Kickstarter-кампанию, но не смогли достичь нужной суммы, поэтому планы на игру были изменены. До сих пор ведутся работы для версий на PC, iOS и Android. Недавно б...

Как защитить сайт двухфакторной аутентификацией Что такое авторизация, аутентификация, почему она может быть двухфакторная и зачем это вообще нужно и важно для безопасности? Посмотрим на примере одного из плагинов WordPress, как подключить ее к сайту, настроить и пользоваться. И чувствовать себя чуть более спокойно. О...

Нашли рабочий способ перенести чаты WhatsApp с iPhone на Android Вроде бы на дворе 2021 год, а в WhatsApp до сих пор нет официального способа перенести все чаты с iPhone на Android и наоборот. В то время, как Telegram позволяет авторизоваться на любом устройстве и сразу получить доступ к переписке, его главный конкурент будто застрял где...

Библиотека ASE для атомных симуляций: создаем наночастицы Библиотека ASE Библиотека ASE — это python-библиотека для проведения атомных манипуляций и вычислений. В данной статье мы будем создавать наночастицы с помощью этой библиотеки. Установка Устанавливается ASE стандартно через pip: pip install ase. Читать дальше →

Физическая активность и ее влияние на здоровье человека Привет, дорогой читатель! В этой статье я хочу затронуть тему, которая в IT-сообществе и так хорошо известна а кому-то может даже и поднадоела, но поговорить о которой все же хочется по двум причинам: во-первых, во время пандемии COVID-19 в 2020 году она стала еще актуальнее...

[Перевод] Учимся читать код, изучая стандартную библиотеку Python Итак, вы уже продвинутый новичок — вы изучили основы Python и способны решать реальные задачи. Вы уже отходите от просмотра туториалов и чтения блогов; наверно, уже ощущаете, что в них излагаются одномерные решения простых придуманных задач; вероятно, вместо решения этой ...

Викторина: Насколько хорошо ты разбираешься в электромобилях Электромобили без сомнения очень скоро станут основным видом транспорта в наших городах. Они быстрые, экологичные, мощные, красивые и у них есть еще масса преимуществ. Мало кто не хотел бы купить себе красавицу Tesla. Этот феномен объясним, но электромобилей уже сейчас очен...

Как создавать и изменять интерактивные PDF-формы, или новый скилл ABBYY FineReader PDF Мы регулярно обучаем ABBYY FineReader PDF новым навыкам. Две недели назад мы рассказали на Хабре, как научили ABBYY FineReader PDF редактировать целые абзацы. Этот пост — о еще одном продвижении нашего продукта на пути к совершенству: программа теперь умеет создавать и редак...

Как мы сделали детскую образовательную веб-игру для Банка России О проекте Мы сделали игру, которая просто и интересно рассказывает детям о финансовой грамотности. Игра учит школьников разумно распоряжаться сбережениями — разбираться в финансовых продуктах и услугах, избегать мошенников. Читать дальше →

Как писать на ассемблере в 2021 году Несмотря на наличие множества языков различной степени высокоуровневости, сегодня ассемблер не потерял своей актуальности и в индексе TIOBE находится на почётном 10-ом месте (на февраль 2021), обогнав такие модные языки как Go и Rust. Одна из причин его привлекательности – в...

iPhone 12: все версии и цены Экраны OLED, модемы 5G и 5-нанометровые однокристальные системы Apple A14 – все это будет в новых iPhone 12, и все непременно должно сказаться на цене. Вместе с тем, по слухам, стоимость iPhone 12 должна была остаться примерно на уровне предшественника. И по новым...

Обновлённый анонс обновлённых интенсивов: Kubernetes oт альфы до омеги TL;DR, уважаемые хабровчане. Наступила осень, в который раз перевернулся лист календаря и третье сентября наконец-то снова минуло. А значит пора возвращаться к работе — и не только к ней, но и к обучению. — У нас, — сказала Алиса, с трудом переводя дух, — когда долго бежиш...

[Перевод] Эмуляция компьютера: интерпретатор CHIP-8, графика и стриминг текстур В прошлый раз мы остановились на том, что создали интерпретатор CHIP-8 и оснастили его системой для формирования кадров. Видеть то, что должно попасть на экран, можно в консоли. Теперь же мы собираемся взять то, что формирует интерпретатор, вынести это за пределы консоли и п...

Как работает парктроник и как его обмануть В один прекрасный день… Зачем я вру? Не настолько прекрасен был день, когда у меня сдох отечественно-китайский парктроник, установленный еще прежним владельцем. Надо что-то делать, но что? Купить на любой онлайн площадке очередное готовое изделие? Неинтересно. В сети, да и н...

[Перевод] Заметки о Unix: надёжная работа с API C-библиотеки Unix возможна только из программ, написанных на C Для того чтобы полностью реализовать требования системы верификации источника системных вызовов, разработчики OpenBSD хотят, чтобы Go выполнял бы системные вызовы через C-библиотеку, а не напрямую, из собственной среды выполнения (а у Go есть некоторые причины поступать имен...

Как Magento 2 взаимодействует с Vue Storefront Привет! Меня зовут Павел и я занимаюсь бэкенд разработкой. Как уже писал AndreyHabr, многие из наших проектов основаны на стеке Adobe Magento 2 (для краткости далее я буду называть ее M2) в качестве бэкенда и Vue Storefront (VS) в качестве фронтенда. Я не буду подробно оста...

React Native для самых маленьких. Опыт мобильной разработки Однажды, в одной продуктовой команде захотели разработать мобильное приложение, чтобы проверить гипотезу востребованности продукта и его удобства для пользователей. И то, что в команде не было мобильных разработчиков, не помешало. Два фронтенд-разработчика взяли React Native...

Как изменилось приложение Погода в iOS 15 На открытии WWDC iOS-приложению Погода уделили больше внимания чем, например, tvOS. Одно из встроенных в iOS приложений было в фокусе внимания многомиллионной аудитории в течение целой минуты. Изменений в нем много. Было бы печально потерять еще одно приложение из тех, кото...

Как удалить дублирующиеся контакты на Android и почему они появляются Есть ситуации, с которыми сталкиваешься, когда пользуешься Android, и их нельзя назвать очень неприятными, но все равно какой-то осадок остается. Ну, подумаешь, в телефонной книге будет три ”Димы”, два ”Васи” и четыре ”Екатерины Андреевны из отдела аналитики”. Кто-то называ...

[Перевод] Как найти мелкие потерявшиеся квадрокоптеры Обычно у дронов есть GPS-датчик, и они могут сообщить пилоту о том, где упали. Но что, если ваш квадрик весит 25 грамм с батареей, и у него просто нет GPS? У любителей этого хобби есть множество способов отыскать свою любимую игрушку. Вот список таких методов и разных сове...

Чего боятся тимлиды и почему им пора перестать это делать Я уверен, где-то существует книга «Как подсидеть тимлида». Она передается из рук в руки, из команды в команду и содержит советы типа: «Тимлид никогда не уволится по своей воле, потому что это не работа, а сказка! Его нужно сломать», или «Если ваш тимлид уехал в отпуск, напиш...

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

[Из песочницы] Почему зарплаты в IT на територии ЕС и Восточной Европы так слабо отличаются? Информационные технологии стали не только неотъемлемой частью нашей жизни, но и одним из лучших способов увеличения денежного потока для развивающихся стран. Невозможно отрицать влияние IT на медиану зарплат из-за возможности удалённой работы и международного сотрудничества....

[Из песочницы] Ускорение сборки проекта на CMake+GCC: предварительная компиляция заголовочных файлов Есть несколько причин, почему проект на С++ в среднем собирается дольше сравнимых по величине проектов на других языках, например на Java или C#. Соответственно, есть и несколько способов уменьшить время сборки. Одним из самых известных является использование предварительной...

Подборка 143 переводов эссе Пола Грэма (из 184) Пол Грэм — один из самых уважаемых людей среди ИТишников, основателей и инвесторов. Он первоклассный программист (написал два языка программирования), хакер, создатель дерзкого акселератора Y Combinator, философ. Своими помыслами и разумом Пол Грэм врывается в широкий спек...

Сравниваем грейды IT-инженеров крупных зарубежных компаний: Google, Facebook, Uber и Booking Бывают компании, где нет четкой линейки карьерного роста. Разработчиков максимум делят на джунов, мидлов и сеньоров, но требования к каждому уровню разнятся даже в отделах одной фирмы. У гигантов IT-индустрии все не так — у них ес...

Что такое ШИМ и почему мерцает OLED? РАЗБОР ШИМ, все вокруг говорят про ШИМ. Ну фиг знает — я его не вижу. Что хотите сказать, если понижу яркость дисплея, это как-то будет меня утомлять? Кажется тут есть в чём разобраться! Сегодня мы объясним как на самом деле работает ШИМ. Узнаем сколько FPS видит человек, а скольк...

[Перевод] Движок, который смог: как Chromium удалось захватить 90% рынка браузеров От браузерного движка, который изначально был малоизвестной альтернативой, применявшейся в непопулярном браузере, до чемпиона, захватившего весь рынок. Вероятно, иногда вы встречаете в текстах понятие браузерное разнообразие. Под ним подразумевается равновесие на платформе...

Железный человек от Кардена-Ллойда, как средство пережить самоизоляцию. Ко "Дню Советской армии и военно-морского флота" прибыл очередной "Ванька красный"... Первый раннего выпуска помер достаточно давно, но из за воблинга ремонтировать, его, смысла не имело... После двух лет перерыва, сутки вспоминал, как, его запустить... Так, как зона печати ...

3D-аркада в браузере: как мы сделали игру на React + Redux Привет, Хабр! В не такие уж далёкие годы, на первом курсе «программистского» факультета, мне нравилось задавать товарищам по учёбе вопрос: «Зачем вы вообще пошли сюда учиться?» Точной статистики ответов я, конечно, не вёл, но доподлинно помню: больше половины хотели делать и...

На самом деле Эверест не самая высокая гора в мире Подняться на эту красоту хотят многие. Как нас всех учили, помните? Гора Эверест — самая высокая гора на нашей планете. А вот и нет! На самом деле это не так и есть гора выше, чем Эверест, но кого это волнует, когда есть укоренившееся мнение и даже устоявшиеся словосоч...

ТОП казино с отдачей Если говорить об азартных развлечениях, то абсолютно каждому хочется выбрать для себя действительно надежный клуб, где ему было бы комфортно. Именно поэтому если вас интересует ТОП казино с отдачей, то поверьте, на сайте casino.ru вы найдёте всё необходимое. Именно здесь вы ...

Продолжаем упарываться многоэтажными С++ными шаблонами в RESTinio: безопасная по типам альтернатива express-js роутеру RESTinio, наш небольшой встраиваемый HTTP-сервер, продолжает развиваться. Одной из отличительных особенностей RESTinio является то, что в его реализации активнейшим образом используются многоэтажные C++ные шаблоны (о чем уже рассказывалось ранее: 1, 2). C++ные шаблоны в RES...

[Из песочницы] Что такое Flutter и почему вы должны изучать его в 2020 году Привет, Хабр! Представляю вашему вниманию перевод статьи: "What is Flutter and Why You Should Learn It in 2020" автора Gaël Thomas. Что такое Flutter? Flutter — бесплатный и открытый набор средств разработки мобильного пользовательского интерфейса, созданный компанией Google...

Google готовится сильно изменить интерфейс Google Maps. Как вам такое? Посмотрим правде в глаза, многие из нас буквально потерялись бы без Google Maps и других картографических и навигационных приложений в смартфоне. Можно запомнить дороги около дома и до работы, но стоит уехать с навигатором за 300-400 километров от дома и очень не хочется во...

«Особенность» Вконтакте Когда в личные сообщения Вконтакте тебе пишет незнакомый человек, который точно уверен в каком районе ты находишься в данный момент — приятного мало. Сразу активируется паранойя, и мозг начинает искать возможные способы это объяснить. Мое местоположение ему действительно под...

Destiny 2: Beyond Light, Halo 4 и другие игры добавят в Xbox Game Pass В конце октября мы писали о некоторых новых проектах для Xbox Game Pass, игрового сервиса от Microsoft, который доступен по подписке. Он позволяет получить большую библиотеку игр; она доступна для геймеров на PC, консолях Xbox и даже на Android через сервис Microsoft xCloud....

Как я за 4 часа решатель японских кроссвордов написал Лениво просматриваю выложенный недавно коллегами из «Сириуса» список курсов, проведенных у школьников… Так, а это что такое? «Поиск комбинаторных объектов с помощью SAT-солверов»? «Мы сделали решатель судоку, японских кроссвордов и прочего»? В памяти всплывает мысль о том, ...

Критерием отбора приложений для предустановки на смартфоны и ПК станут духовно-нравственные ценности При формировании списка типов ПО, разрешенного для предустановки на устройства, ФАС будет руководствоваться критериями популярности, безопасности и социальной значимости. Последний критерий предусматривает формирование приоритета традиционных российских ценностей.

[Перевод] Мы отрендерили миллион страниц, чтобы понять, из-за чего тормозит веб Мы отрендерили 1 миллион самых популярных страниц веба, фиксируя все мыслимые метрики производительности, записывая все ошибки и замечая все запрошенные URL. Похоже, таким образом мы создали первый в мире набор данных, связывающий производительность, ошибки и использование б...

[Перевод] Тестирование Ansible с использованием Molecule с Ansible в качестве верификатора В этом руководстве мы будем изучать, как тестировать код инфраструктуры, написанный на Ansible, с использованием инфраструктуры тестирования, известной как Molecule. Внутри Molecule мы будем использовать Ansible в качестве верификатора, чего я пока нигде не мог найти. Давай...

[Из песочницы] Node.js + MongoDB: перформанс транзакций “Иногда мы платим больше всего за то, что получаем бесплатно.” — А.Эйнштейн Не так давно в MongoDB версии 4+ появилась поддержка мульти-документных транзакций. А поскольку наш проект как раз мигрировал на версию 4.2, закономерно возникли вопросы: Что будет с перформансом?...

[Перевод] Рождение легенды: История Atari 2600 Atari VCS или Atari 2600 – наиболее узнаваемая игровая приставка. Давайте попробуем разобраться, как и почему она появилась. Читать далее

Что нужно знать о популярных фреймворках Привет! Меня зовут Дима Чудинов, я наставник на веб-факультете Яндекс.Практикума, Head of Group, Front-end, ABBYY. Студенты недавно задали мне вопрос: «Что лучше: Angular или React?». Я начал отвечать и понял, что мне понадобится для этого статья. Позже я понял, что и одной...

Паспортный контроль, или Как сжать полтора гигабайта до 42 мегабайт Однажды, в качестве тестового задания на позицию PHP разработчика была предложена задача реализации сервиса проверки номеров паспортов граждан РФ на предмет нахождения в списке недействительных. Текст задания был лаконичным: «Пользовательская база 10 миллионов, время ответа ...

[Перевод] Управление зависимостями в Node.js Управление зависимостями — это часть повседневной работы Node.js-программиста. Сегодня мы поговорим о разных подходах к работе с зависимостями в Node.js, и о том, как система загружает и обрабатывает зависимости. Писать Node.js-приложения можно так, чтобы абсолютно весь код...

[Из песочницы] Поговорим о микроскопах Помнится, в далеком детстве мне подарили микроскоп «Натуралист» – игрушечный, но таки дающий фиксированное увеличение аж в шестьдесят раз. Состоял он из одной трубки, закрепляемой на пластмассовом футляре, одновременно играющим роль основания. Сколько интересных вещей тогда ...

Пишем прошивку под TI cc2530 на Z-Stack 3.0 для Zigbee реле Sonoff BASICZBR3 с датчиком ds18b20 Предполагается, что читатель уже имеет начальные знания языка C, что-то знает о Zigbee, чипе cc2530, методах его прошивания и использования, а также знаком с такими проектами, как zigbee2mqtt. Если нет — подготовьтесь или сходите почитать на https://myzigbee.ru и https://w...

[Перевод] Надоел JavaScript — используй браузерный Python Мой опыт разработки игры «Змейка» на Brython «Погоди, что?» – думаю, большинство читателей отреагирует на заголовок именно так. В смысле «просто использовать Python в браузере»? Все знают, что в браузерах работает только JavaScript. Ну, выше приведен скриншот с исходны...

PostgreSQL 14: Часть 5 или «весенние заморозки» (Коммитфест 2021-03) 8 апреля 2021 г. в 15:00 по московскому времени закончился мартовский коммитфест, а вместе с ним и прием изменений в PostgreSQL 14. Напомню, что всё самое интересное о первых четырех коммитфестах можно найти в предыдущих статьях серии: июльский, сентябрьский, ноябрьский, я...

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

[Перевод] React: наглядное пособие для начинающих. Создаем свой компонент без знаний JavaScript React — это библиотека JavaScript для создания пользовательского интерфейса. Это официальное определение React. Но что если вы не знаете, что такое JavaScript? Что если вы не разработчик? Смогли бы вы тогда понять, что такое React? Однозначно ДА. Именно поэтому я и написал ...

Про книгу Дэвида Огилви “Огилви о рекламе” На фото Дэвид Огилви. Хабр не позволяет следовать одной из его рекомендаций: размещать фото над заголовком. Что делает эту книгу особенной? “На самом деле никакой магии, просто она про Америку 60-х”, говорит арт-директор новостного портала. Дэвид Огилви — основатель одног...

Ищем максимальную разницу между соседями. User-friendly-разбор задачи по алгоритмам Привет, Хабр! Давайте поговорим про алгоритмы. Новички часто воспринимают их как что-то тяжёлое, сложное и непонятное, и отчасти это правда, но алгоритмы — это базис. А чем лучше вы знаете базис своей специальности, тем с большей вероятностью преуспеете в ней. Сегодня м...

Samsung выпустила эмулятор смартфонов Galaxy для iPhone. Что за дичь? Сколько раз мы уже видели приложения, сторонние лаунчеры или другие способы превратить Android в iOS. Оказывается, это не просто способ что-то изменить в работе телефона, но и популярный запрос в Интернете. Мы даже писали о таких способах в отдельной статье. Теперь же выясн...

Почему отключается режим модема на iPhone и как с этим бороться? Режим модема на iPhone — удобная штука, которая позволяет всегда оставаться гибким и не пользоваться сторонними точками доступа. Раньше для этого приходилось покупать отдельным 3G/LTE модем, но теперь эта необходимость отпала. Но у пользователей iPhone режим модема вы...

Шпаргалка по SIMD-инструкциям, теперь и для .NET Core Ни для кого не секрет, что в дотнет завезли интринсики. Я писал об этом и до того, как они появились и после. Плюс ещё посты на Хабре, например этот. И всё, казалось бы, замечательно, если бы не одно «но»: называются эти интринсики по-дотнетовски, а совсем не так как в ассем...

Почему выпадают наушники, и можно ли что-то с этим сделать Есть большая вероятность, что если вы купите смартфон в 2020 или 2021 году, то у вас есть TWS-наушники. AirPods от Apple оказались настолько успешными, что Sony, Samsung и даже аудиофильские компании почувствовали давление. В итоге все они начали делать свои наушники, котор...

Две альтернативы JDBC Примеры для двух неблокирующих библиотек доступа к SQL базам данных — Vert.X SQL и R2DBC. Примеры будут основаны на PostgreSQL и реактивных обертках Java. Начнем с главного: JDBC — это отличный стандарт. Служил и служит верой и правдой. Но новые веяния просят новых решений...

[Перевод] Карты высот и параллакс Из этой статьи вы узнаете о картах высот (height maps), также называемых картами параллакса (parallax maps). Что такое карта высот? Как обычно, когда я говорю «карта», то имеют в виду текстуру, содержащую информацию о внешнем виде 3D-объекта. Карта высот/параллакса — это к...

[Перевод] Делаем микроскоп при помощи 3D-печати, Lego, Arduino и Raspberry Pi
 Эксперимент с самоделкой в европейском исследовательском подразделении IBM породил ценный инструмент Ссылка на проект: github.com/IBM/MicroscoPy Я член команды IBM Research–Europe в Цюрихе, разрабатывающий технологии в области микрогидродинамики для медицинского применени...

Телескоп «Хаббл» опять сломался. На этот раз все серьезно Телескоп «Хаббл» работает уже более 30 лет, но от сбоев никто не застрахован Космический телескоп «Хаббл» был запущен на орбиту нашей планеты в 1990 году и до сих пор служит аэрокосмическому агентству NASA. За более 30 лет своей работы он много раз выходил из строя, но астро...

[Перевод] Как переписать код на Rust В предыдущей статье мы говорили о том, как избежать переписывания библиотеки на Rust, когда вам это не нужно. Но как насчёт тех случаев, когда это действительно необходимо? В большинстве языков вам придётся переписывать всю библиотеку с нуля, а первые результаты появятся бл...

[Перевод] Создание математической библиотеки будущего Небольшое сообщество математиков использует программу Lean для создания новой цифровой базы. Они надеются, что она обеспечит будущее их научной области. Ежедневно десятки математиков-единомышленников встречаются в чате Zulip, чтобы работать, как они считают, над созданием ...

Декларативный шопинг в интернете с помощью Payment Request API и Angular Как давно вы платили на веб-сайте в один клик с помощью Google Pay, Apple Pay или заранее заданной в браузере картой? У меня такое получается редко. Даже наоборот: каждый новый интернет-магазин предлагает мне очередную формочку. А я должен каждый раз покорно искать свою ка...

n8n. Автоматизация ИБ со вкусом смузи Всем давно очевидна польза тотальной автоматизации, в том числе, и в области информационной безопасности. В условиях большого кадрового дефицита как никогда актуальна идея снятия рутинной рабочей нагрузки как со специалиста по информационной безопасности, так и со специалист...

[Из песочницы] Подозрительные типы В их внешнем облике ничто не вызывает подозрений. Более того, они даже кажутся тебе хорошо и давно знакомыми. Но это только до тех пор, пока ты их не проверишь. Вот тут-то они и проявят свою коварную сущность, сработав совсем не так, как ты ожидал. А иногда выкидывают такое,...

Митап: карантин, Go away Всем привет! 30 мая пройдёт второй онлайн-митап по Go. В организаторах — ребята из сообществ Go Yola и Golang Kazan. Разберём, как организовать тестирование микросервисов, какой способ реализации DI на Go лучше, почему гофер синий и как выжить с автосгенеренным go-swagger ко...

[Перевод] Почему разработчики не дружат с Serverless Недавно я посмотрела видео одного хорошего разработчика и ютубера, которое называется «Бессерверная бессмысленность». Мне понравились мысли автора, но я не согласна с некоторыми его высказываниями и хочу обсудить их в этой статье. Ролик начинается с шутки: «В мире есть дв...

Почему практически бесполезно делать локомотив мощнее Физика движения локомотива такая: чем он мощнее, тем лучше он трётся о рельс и больше тянет. При этом чем больше вам нужно тянуть, тем тяжелее должен быть локомотив, чтобы не проскальзывать по рельсу. А чем тяжелее он будет, тем больше шансов повредить рельс. В итоге примерн...

У Джека Ма куча ошибок в английском, но его разговорные навыки выше, чем у большинства студентов. Почему так? Джек Ма — легендарная личность. Он основатель компании Alibaba, одной из самых крупных в мире онлайн-платформ для торговли товарами из Китая, миллиардер и один из самых богатых людей в мире. И многих, кто впервые слышит английскую речь Джека Ма, удивляет, что его акцент до...

Планирование производства продукции на предприятии: как решить проблему раз и навсегда Одной из основных задач, стоящих перед любой производственной компанией, является максимальное использование имеющихся в его распоряжении сырьевых, людских и финансовых ресурсов. Производимый предприятием товар в свою очередь должен в полном объеме удовлетворять спрос, то ес...

Создаем веб-приложение на Haskell с использованием Reflex. Часть 1 Введение Всем привет! Меня зовут Никита, и мы в Typeable для разработки фронтенда для части проектов используем FRP-подход, а конкретно его реализацию на Haskell – веб-фреймоворк reflex. На русскоязычных ресурсах отсутствуют какие-либо руководства по данному фреймворку (да и...

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

[Перевод] React Intl: интернационализация React-приложений Библиотека React Intl предоставляет механизм для перевода текста на другие языки. В данном "туториале" мы используем названную библиотеку для реализации интернационализации в проекте, написанном на React. Мы создадим простое приложение, позволяющее пользователю вы...

Новая неделя YouTube-стримов: от Vue.js до SIMD-инструкций Наши разговорные YouTube-шоу верны себе: на этой неделе снова будет шесть передач для IT-специалистов из шести разных областей (JS, Java, .NET, C++, тестирование, девопс). И каждая пройдёт в тот же час, что и на прошлой неделе — просто с новыми гостями и новыми темами. Вс...

[Перевод] Графика для JVM Допустим, я хочу создавать качественные десктопные приложения. Я также хочу сделать это на JVM. Не надейтесь — мы еще не достигли цели. Но у меня есть план. Почему именно JVM? Это производительность на достаточно высоком уровне, но не заставляет вас слишком много задумыва...

Кастомизация компонентов Ant Design и оптимизация бандла The Archivist by juliedillon Я Иван Копенков, ведущий фронтенд-разработчик в Mail.ru Cloud Solutions, в статье расскажу, какие есть подходы к кастомизации компонентов UI-библиотеки Ant Design, как это сделали мы, а так же покажу, как удалось полностью избавиться от неисполь...