Социальные сети Рунета
Пятница, 19 апреля 2024

[Перевод] Шейдеры 3D-игр для начинающих Хотите научиться добавлять в свою 3D-игру текстуры, освещение, тени, карты нормалей, светящиеся объекты, ambient occlusion и другие эффекты? Отлично! В этой статье представлен набор техник затенения, способных поднять уровень графики вашей игры на новые высоты. Я объясняю к...

Как работать с Shader Graph в Unity3D Графы шейдеров это новый инструмент для создания шейдеров в юнити. Он позволяет создавать шейдеры людям не имеющим навыков написания кода. Результат каждой операции виден при редактировании. Идеальный инструмент для новичков и экспериментаторов. Читать дальше →

Написание системы попарно взаимодействующих частиц на C++ с использованием DirectX 11 На хабре уже есть много статей про использование вычислительных шейдеров с Unity, однако статью о использовании вычислительного шейдера на "чистом" Win32 API + DirectX 11 затруднительно. Однако эта задача ненамного сложнее, подробнее — под катом. Для этого будем использоват...

Про Godot, GLSL и WebGL, шейдеры используемые в мини игре Статья в основном про GLSL-шейдеры, и как я их использовал в этой мини-демке-игре. Статья разбита по такой очередности: Ссылки и краткое описание. Очень краткое описание игровой логики, и используемых возможностей Godot. Про используемые шейдеры. Еще немного про Godot, и е...

[Перевод] Шейдеры 3D-игр для начинающих: эффекты [Первая часть] Разобравшись с основами, в этой части статьи мы реализуем такие эффекты, как контуры объектов, bloom, SSAO, размытие, глубина резкости, пикселизация и другие. Контуры Создание контуров вокруг геометрии сцены придаёт игре уникальный внешний вид, напоминающий...

[Из песочницы] Запуск 619 тысяч тетрисов на GLSL, их рендеринг и простой бот У меня была "идея" сделать максимальное число одновременно запущенных "Тетрисов" для одного шейдера (одной текстуры фреймбуфера). Далее небольшое описание как работает полученный код. Читать дальше →

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

[Перевод] Искусство создания органических 3D-моделей: субдермальные шейдеры Daniel Bauer рассказал о создании реалистичной модели зубов и субдермальных шейдеров в ZBrush, Toolbag и Substance Painter. Ресурсы Свой проект я начал со сбора референсов в Google, Pinterest и Youtube. Сегодня можно найти огромное изобилие ресурсов и проблема заключается...

[Перевод] Исследование шейдера песка игры Journey Среди множества инди-игр, выпущенных за последние 10 лет, одной из самых любимых для меня определённо является Journey. Благодаря своей потрясающей эстетике и красивому саундтреку Journey стала примером превосходства практически в каждом аспекте разработки. Я разработчик иг...

Shader — это не магия. Написание шейдеров в Unity. Введение Всем привет! Меня зовут Дядиченко Григорий, и я основатель и CTO студии Foxsys. Сегодня хочется поговорить про шейдеры. Умение писать шейдеры (и в целом работать с рендером) очень важно при разработке под мобильные платформы или AR/VR, если хочется добиться крутой графики. М...

Ищем баги в PHP коде без статических анализаторов Моя самая любимая часть в статическом анализе кода — это выдвижение гипотез о потенциальных ошибках в коде с последующей их проверкой. Пример гипотезы: Функции strpos легко передать аргументы в неправильном порядке. Но есть вероятность, что даже на нескольких миллионах стро...

[Из песочницы] Странные они, статические переменные в PHP Дисклеймер: данная статья не явит вам какого то откровения и не откроет третий глаз, но позволит разобраться в не очень очевидном вопросе более детально. Мне по крайней мере при ее написании она в этом помогла. Если вы матерый волк в php то можете не читать, опытным человека...

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

3DMark готовит тест переменного уровня шейдеров Компания UL Benchmarks анонсирует новый тест производительности компьютера, который войдёт набор 3DMark. Этот тест предназначен для измерения эффективности Variable-Rate Shading (VRS).

AMD патентует переменный уровень шейдеров для Navi Компания AMD готовится выпустить новую архитектуру GPU Navi, которая появится не только в новых консолях Xbox и PlayStation 5, но и в качестве отдельной видеокарты.

[Перевод] Unreal Engine 4 — шейдер горения Это небольшой шейдер, который появился, когда я думал о различных методах применения flowmap. Существуют много эффектов перехода/растворения, но большинство из них выглядит довольно статично, так как они используют статические текстуры. Данный шейдер далек от совершенства, н...

Проверка исходного кода библиотек .NET Core статическим анализатором PVS-Studio Библиотеки .NET Core — один из самых популярных C# проектов на GitHub. Неудивительно, с учётом его широкой известности и используемости. Тем интереснее попробовать выяснить, какие тёмные уголки можно найти в исходном коде этих библиотек, что мы и попробуем сделать с помощью...

[Перевод] Learn OpenGL. Урок 7.1 – Отладка Графическое программирование — не только источник веселья, но еще и фрустрации, когда что-либо не отображается так, как задумывалось, или вообще на экране ничего нет. Видя, что большая часть того, что мы делаем, связана с манипулированием пикселями, может быть трудно выясни...

[Из песочницы] Редактирование видео в MPC с помощью шейдеров Есть задача: Изменить видео “на лету” при воспроизведении — поменять местами правую и левую часть. Не отразить, а именно поменять, т.е. разрезать картинку на две части и поменять их местами. Можно, конечно, сделать с помощью фреймсервера типа AviSynth'a, но это уже не совсем...

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

PVS-Studio for Java отправляется в путь. Следующая остановка — Elasticsearch Далеко не первый год команда PVS-Studio ведет блог о проверках open-source проектов одноименным статическим анализатором кода. На сегодняшний момент проверено более 300 проектов, а в базу найденных ошибок выписано более 12000 случаев. Изначально анализатор был реализован дл...

[Из песочницы] Пишем «Hello, world!» приложение для web на Haskell (Spock) Мне стало скучно писать на Python, захотелось чего-нибудь необычного. Решил попробовать Haskell. Языка я не знаю, однако просто писать консольные учебные программы, типа вычисления факториала, не хотелось. После изучения довольно большого числа постов про Haskell и его приме...

Запускаем инспекции IntelliJ IDEA на Jenkins IntelliJ IDEA на сегодня обладает наиболее продвинутым статическим анализатором кода Java, по своим возможностям оставившим далеко позади таких «ветеранов», как Checkstyle и Spotbugs. Её многочисленные «инспекции» проверяют код в различных аспектах, от стиля кодирования до х...

Знакомство со статическим анализатором PVS-Studio при разработке C++ программ в среде Linux PVS-Studio поддерживает анализ проектов на языках C, C++, C# и Java. Использовать анализатор можно под системами Windows, Linux и macOS. В этой заметке речь пойдет об анализе кода, написанного на C и C++ в среде Linux. Установка Установить PVS-Studio под Linux можно разными...

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

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

Для тех, кто хочет поиграть в детектива: найди ошибку в функции из Midnight Commander Приглашаем попробовать найти ошибку в очень простой функции из проекта GNU Midnight Commander. Зачем? Просто так. Это забавно и интересно. Хотя нет, мы соврали. Мы в очередной раз хотим продемонстрировать ошибку, которую с трудом находит человек в процессе code review, но л...

Ломаем простую «крякми» при помощи Ghidra — Часть 2 В первой части статьи мы при помощи Ghidra провели автоматический анализ простой программы-крякми (которую мы скачали с сайта crackmes.one). Мы разобрались с тем, как переименовывать «непонятные» функции прямо в листинге декомпилятора, а также поняли алгоритм программы «верх...

[Из песочницы] Локальный запуск юнит-тестов в STM32CubeIDE под Windows Введение Всем известна польза юнит-тестирования. Прежде всего, написание тестов одновременно с кодом позволяет раньше выявлять ошибки и не тратить впоследствии время на трудоемкую комплексную отладку. В случае embedded-разработки у юнит-тестирования есть особенности, связан...

Снова про дырявые абстракции (или про непредсказуемое окружение) Итак, довольно простая часть программы под Windows. Есть файл, содержащий несколько записей. И их надо определенным образом отфильтровать. Решение довольно простое — открываем файл, читаем записи одну за другой, нужные нам записываем во временный файл. Закрываем файл. Удаля...

Графический пакет Minecraft Super Duper был отменен Пару лет назад, во время E3, Microsoft объявила, что выпустит собственный Super Duper Graphics Pack для Minecraft, первый кроссплатформенный графический пакет, сравнимый с некоторыми модами, которые были доступны на ПК в течение многих лет. Mojang молчал об этом с момента св...

[Из песочницы] Статический анализатор Detekt для Kotlin Пора полюбить статические анализаторы! Встречайте Detekt на Kotlin Если Вы уже знаете о чем пойдет речь и Вас интересут только внедрение в проект, переходите сразу к пункту установки. Что-же это такое? Анализ программного обеспечения, производимый (в отличие от динамическ...

Алгоритм взаимодействия сотен тысяч уникальных частиц на GPU, в GLES3 и WebGL2 Описание алгоритма логики, и разбор рабочего примера в виде техно-демки-игры WebGL2 версия этой демки https://danilw.itch.io/flat-maze-web остальные ссылки смотрите в статье. Статья разбита на две части, сначала про логику, и вторая часть про применение в игре, первая часть...

Новая видеокарта GeForce GTX 1650 Компания NVIDIA представила видеокарту GeForce GTX 1650, это начальный графический процессор, целью которого является предоставление преимуществ современных игр таких как сложные эффекты шейдеров по более низкой цене всего за 149 долларов. Это значительный шаг вперед по ...

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

Вейвлет — анализ.Часть 1 Введение Рассмотрим дискретное вейвлет – преобразования (DWT), реализованное в библиотеке PyWavelets PyWavelets 1.0.3. PyWavelets — это бесплатное программное обеспечение с открытым исходным кодом, выпущенное по лицензии MIT. При обработке данных на компьютере может выполня...

Реализация горячей перезагрузки С++ кода в Linux и macOS: копаем глубже *Ссылка на библиотеку и демо видео в конце статьи. Для понимания того, что происходит, и кто все эти люди, рекомендую прочитать предыдущую статью. В прошлой статье мы ознакомились с подходом, позволяющим осуществлять "горячую" перезагрузку c++ кода. "Код" в данном случае — ...

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

[Перевод] Самодельный сборщик мусора для OpenJDK Это перевод статьи Алексея Шипилёва «Do It Yourself (OpenJDK) Garbage Collector», публикуется с согласия автора. О любых опечатках и других багах сообщайте в личку — мы их поправим.Процесс создания чего-нибудь в рантайме языка — весёлое упражнение. По крайней мере, создание ...

Вышел трейлер неофициального ремастера Red Dead Redemption для эмуляторов Xenia и RPCS3 На YouTube-канале популярного моддера GamingDamned вышел трейлер готовящейся к выходу ремастер-версии игры Red Dead Redemption для эмуляторов Xenia и RPCS3. В обновленной версии игры добавят улучшенные текстуры, шейдеры и модели, интерфейс и меню,...

Мой первый опыт восстановления базы данных Postgres после сбоя (invalid page in block 4123007 of relatton base/16490) Хочу поделиться с вами моим первым успешным опытом восстановления полной работоспособности базы данных Postgres. С СУБД Postgres я познакомился пол года назад, до этого опыта администрирования баз данных у меня не было совсем. Я работаю полу-DevOps инженером в крупной IT-к...

[Из песочницы] Трансформация кода в Android Вместо вступления Всё началось с того, что мне захотелось изучить тонкости настройки Gradle, понять его возможности в Android разработке (да и вообще). Начал с жизненного цикла и книги, постепенно писал простые таски, попробовал создать свой первый Gradle плагин (в buildSrc)...

[Из песочницы] OBD2 reader — диагностика автомобиля При создании приложения мы столкнулись с множеством выборов, проблем и так далее, с которыми попробуем ознакомить вас в этой статье. Как оказалось с автомобилем можно вести диалог, причем довольно таки продуктивный. Естественно для того чтобы организовать общение с автомобил...

[Перевод] Немного о затенении по Фонгу «Мы не можем ожидать, что у нас получится отобразить объект точно таким, каким он является в реальности, с текстурами, тенями и т.д. Мы надеемся только на то, чтобы создать изображение, которое достаточно близко к достижению определённой степени реализма». Буй Тыонг Фонг Б...

Внедряем OSGI на платформе Karaf OSGI это не сложно Я много раз встречал мнение, что OSGI это сложно. И более того, у самого когда-то такое мнение было. Году в 2009, если быть точным. На тот момент мы собирали проекты при помощи Maven Tycho, и деплоили их в Equinox. И это действительно было сложнее, чем раз...

Криптокошелек Coinomi отсылал пароли в Google Десктопная версия криптокошелька Coinomi отправляла незашифрованные пароли пользователей в сервис Google для проверки правописания (Google Spellcheck API). Проблему обнаружил ИБ-специалист из Омана Варит Аль-Маавали (Warith Al Maawali) после того, как с его аккаунта пропало ...

Написание Unit тестов на Swift для проверки асинхронных задач Сегодня хочу вам быстренько рассказать как тестировать асинхронный код. Представьте ситуацию, что вам надо загрузить данные из интернета и проверить все ли работает нормально, либо еще какую-нибудь задачу, которая выполняется асинхронно. И как же его протестировать? Что если...

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

По заказам Embedded-разработчиков: ищем ошибки в Amazon FreeRTOS Каждый, кто программирует микроконтроллеры, наверняка знает о FreeRTOS, или по крайней мере слышал об этой операционной системе. Ребята из Amazon решили расширить возможности этой операционной системы для работы с сервисами AWS Internet of Things – так появилась Amazon FreeR...

Текстурирование, или что нужно знать, чтобы стать Художником по поверхностям. Часть 1. Пиксель О чем эта серия уроков? В данной серии статей, которые я собираюсь написать, я постараюсь максимально раскрыть теорию создания текстур для игровой индустрии, начиная от самого понятия «пиксель» и заканчивая построением сложных материалов (шейдеров) в игровом движке на пример...

Сколькими способами можно записать факториал на Scheme? Злые языки утверждают, что функциональные языки программирования — «языки для написания факториалов». Чаще всего так определяют язык Haskell, мы же начнем с того функционального языка, который сильно повлиял и на Haskell, и на подмножество средств для функционального програм...

Разработка электроники. Аудит проекта в примерах. Спасаем тёплые полы всем хабром Лирическое отступление По моему мнению, в сегодняшней России наибольшие шансы на успех в области технологических стартапов имеют два типа проектов: узконишевые в области промышленной автоматизации, основанные командой профессионалов в данной области и подкреплённые старто...

Как внедрить статический анализатор в разработку, чтобы всем было хорошо? В процессе работы нам часто задают вопрос: как внедрить статический анализатор в разработку, чтобы всё всем было хорошо. О том, почему для безопасной разработки необходим статический анализатор, мы уже рассказывали. Эта статья будет полезна, если вы выбираете статический ана...

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

Статически безопасная динамическая типизация à la Python Привет, Хабр. На днях в одном моём хобби-проекте возникла задача написания хранилища метрик. Задача сама по себе решается очень просто, но моя проблема с хаскелем (особенно в проектах для собственного развлечения) в том, что невозможно просто взять и решить задачу. Необходим...

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

Простой ASN1-кодек на базе sprintf Транспортный синтаксис ASN.1 определяет однозначный способ преобразования значений переменных допустимых типов в последовательность байт для передачи по сети. В ASN.1 он называется базовыми правилами кодирования (Basic Encoding Rules, BER). Правила являются рекурсивными, так...

Ошибки, которые не находит статический анализ кода, потому, что он не используется Время от времени читатели наших статей о проверке открытых проектов обращают внимание, что статический анализатор кода PVS-Studio выявляет большой процент ошибок, которые незначительны или вообще не влияют на работу приложения. Это действительно так. Большинство важных ошибо...

[Перевод] Тесты или типы Привет, Хабр. На днях я искал, как сделать что-то в Idris, и наткнулся на неплохой пост, вольный перевод которого выглядит вполне уместным. Вольности и отсебятину, где необходимо, я буду обозначать ⟦вот такими закорючками в начале и в конце⟧. Когда стоит использовать тесты, ...

[Перевод] Стильный водопад из RiME в игровом движке: делаем водяной поток Это вторая (и последняя) часть гайда по созданию водопада в Unity или UE4 после вдохновения игрой RiME. В первой разобрались с инструментами, выбрали среду разработки и создали шейдер кругов на воде. Почему начали именно с этого? Все просто: там используется большинство мето...

Wireshark 3.x: анализ кода под macOS и обзор ошибок Wireshark Foundation выпустила финальную stable-версию популярного сетевого анализатора трафика — Wireshark 3.0.0. В новом релизе устранено несколько багов, реализована возможность анализа новых протоколов и заменен драйвер WinPcap на Npcap. Здесь заканчивается цитирование ...

[Перевод] Posit-арифметика: победа над floating point на его собственном поле. Часть 1 Часть 2 От переводчика: Тема формата Posit уже была на хабре здесь, но без существенных технических подробностей. В этой публикации я предлагаю вашему вниманию перевод статьи Джона Густафсона (автора Posit) и Айзека Йонемото, посвящённой формату Posit. Так как статья имеет ...

Сборка чугунного скорохода на Spring Boot и AppCDS Сборка чугунного скорохода на Spring Boot и AppCDS Application Class Data Sharing (AppCDS) – фича JVM для ускорения запуска и экономии памяти. Появившись в HotSpot в зачаточном виде ещё в JDK 1.5 (2004 г.), она долгое время оставалась весьма ограниченной, да ещё и отчасти к...

Анализ исходного кода RPC фреймворка Apache Dubbo статическим анализатором PVS-Studio Apache Dubbo — один из самых популярных Java проектов на GitHub. И это неудивительно. Он был создан 8 лет назад и широко применяется как высокопроизводительная RPC среда. Конечно, большинство ошибок в его коде давно исправлены и качество кода поддерживается на высоком уровн...

[Из песочницы] Замена Punto Switcher, раскладки Бирмана с помощью скрипта на autohotkey В данной статье я не предлагаю полностью заменить Punto Switcher (Спасибо Сергею Москалёву за данную программу), а только в очень ограниченном функционале. Довольно давно пользуюсь программой Punto Switcher, но не в целях автопереключения, а как переключатель по левому и пра...

Организация UAT-тестирования на бизнес-пользователях в Jira Вводные данные. Наш продукт практически готов к отгрузке, осталось пройти приёмочное тестирование. Тест-план готов и представлен в виде таблицы Excel. Тестировать будут будущие пользователи, то есть, люди, далёкие от QA и IT. Задача. Сделать всем удобно. Пользователи в теор...

[Перевод] Конференция DEFCON 19. Три поколения DoS-атак (с участием аудитории в качестве жертв). Часть 2 Конференция DEFCON 19. Три поколения DoS-атак (с участием аудитории в качестве жертв). Часть 1 Но что еще хуже… Я попытался разработать проект для своих студентов, и получалось забавно, но проблема заключалась в том, что нельзя было посмотреть «убиваемые» адреса, так как эт...

PVS-Studio и Bug Bounties on Free and Open Source Software Европейский союз стартовал в январе очередную большую охоту за ошибками в открытых программных проектах. Суммарный призовой фонд составляет около 850 тысяч евро. А теперь даём подсказу. Одним из способов поиска ошибок в исходном коде программ является использование статическ...

Бывший работник Microsoft объяснил, почему в Windows 10 так много багов Несмотря на то, что Windows 10 постоянно наращивает свою рыночную долю, эта ОС Microsoft уже отметилась рядом крупных ошибок и багов, из-за которых даже приостанавливались выпуски больших обновлений. О мелких ошибках и вовсе говорить не приходится. Почему так происходит...

[Из песочницы] Генератор мемов на Ruby для привлечения интереса к языку По моему мнению язык Ruby перестал быть популярным как в 2012 — 2014 году и поэтому у меня возникло желание пока про язык совсем не забыли, попробовать его снова донести в массы, ведь Ruby по моему мнению самый удобный и практичный язык для веб разработки. Я с неделю назад ...

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

Из-за тёмной темы Thunderbird пришлось запускать анализатор кода «Приключение» с почтовым клиентом Mozilla Thunderbird началось с автоматического обновления на версию 68.0. Заметными особенностями этой версии было вот что: больше текста добавляется во всплывающие уведомления и тёмная тема по умолчанию. Повстречалась ошибка, которую захоте...

Причины внедрить в процесс разработки статический анализатор кода PVS-Studio PVS-Studio – это инструмент для поиска ошибок и потенциальных уязвимостей в исходном коде программ, написанных на языках C, C++, C# или Java. PVS-Studio относится к классу инструментов статического тестирования защищённости приложений (Static Application Security Testing, S...

Исключения в Python теперь считаются анти-паттерном Что такое исключения? Из названия понятно — они возникают, когда в программе происходит исключительная ситуация. Вы спросите, почему исключения — анти-паттерн, и как они вообще относятся к типизации? Я попробовал разобраться, и теперь хочу обсудить это с вами, хабражители. ...

Бесплатные варианты лицензирования PVS-Studio Существует несколько вариантов бесплатного лицензирования статического анализатора кода PVS-Studio, предназначенного для поиска ошибок и потенциальных уязвимостей. Бесплатной лицензией могут воспользоваться открытые проекты, маленькие закрытые проекты, публичные специалисты...

IntelliJ IDEA, ReSharper, SonarLint и SonarQube находят те же ошибки, что и PVS-Studio — ну и зачем нам PVS-Studio? Иногда люди задают вопрос, который, на первый взгляд, про одно, а на самом деле про другое. Как говорится, грамотно поставленный вопрос содержит половину ответа. На днях я вернулся с конференции JPoint, на которой впервые был представлен наш новый анализатор PVS-Studio для ...

[Перевод] А есть ли случайные числа в CSS? CSS позволяет создавать динамические макеты и интерфейсы в Интернете, но как язык разметки он является статическим — после установки значения его нельзя изменить. Идея случайности не обсуждается. Генерация случайных чисел во время выполнения — это территория JavaScript, а ...

Проверка проекта CDK с помощью статического анализатора IntelliJ IDEA Я решил потестировать статический анализатор Java-кода IntelliJ IDEA и с его помощью проверил проект The Chemistry Development Kit. Здесь я приведу некоторые ошибки, которые я нашёл. Думаю, что часть из них характерна для Java-программ в целом, поэтому могут быть интересны. ...

[Перевод] Указатели сложны, или Что хранится в байте? Привет, Хабр! Представляю вашему вниманию перевод статьи "Pointers Are Complicated, or: What's in a Byte?" авторства Ralf Jung. Этим летом я снова работаю над Rust фуллтайм, и я снова буду работать (помимо прочих вещей) над "моделью памяти" для Rust/MIR. Однако, прежде чем я...

SonarQube и IntelliJ IDEA: правильная интеграция SonarQube — отличный инструмент для внедрения статического анализа кода в процесс разработки ПО. Он поддерживает как используемую у нас в компании Java, так и большое количество других языков программирования. На данный момент этот инструмент плотно вошёл в нашу жизнь, сле...

[Из песочницы] Зачем нужны ranges из C++20 в простой числодробилке? В последнее время интервалы (ranges), которые должны войти в стандарт C++20, довольно много обсуждают, в том числе и на Хабре (пример, где много примеров). Критики интервалов хватает, поговаривают, что они слишком абстрактны и нужны только для очень абстрактного кода читаем...

Трейлер AMD RX 5700: преимущества новой технологии Radeon Image Sharpening К долгожданному старту продаж 7-нм видеокарт серии Radeon RX 5700 на базе новой архитектуры RDNA компания AMD представила ролик, посвящённый технологии Radeon Image Sharpening (RIS). Она поддерживается только новыми графическими ускорителями (по крайней мере, пока) и призван...

Cataclysm Dark Days Ahead, статический анализ и рогалики Скорее всего, из названия статьи вы уже догадались, что в центре внимания ошибки в исходном коде. Но это вовсе не единственное, о чем пойдет речь в этой статье. Если кроме С++ и ошибок в чужом коде вас привлекают необычные игры и вам интересно узнать, что это такие за «рога...

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

Битва Samsung Galaxy S10+ и OnePlus 7 Pro: определяем лучшего О Samsung Galaxy S10+ и OnePlus 7 Pro мечтают многие. Это укомплектованные по полной программе флагманы, красивые, технологичные, мощные и с хорошими камерами. Но какой из них лучше? Мы сравнили оба смартфона, устроив смотр всего вооружения, и у нас есть ответ на этот сложны...

Buildbot в примерах Потребовалось мне настроить процесс сборки и доставки на сайт пакетов программ из Git-репозитария. И увидев, ни так давно, тут на Хабре статью по buildbot (ссылка в конце) решил для этого попробовать его и применить. Так как buildbot — это распределённая система, то будет ло...

Проверяем инкапсуляцию с помощью Roslyn Что такое Roslyn? Roslyn – это набор компиляторов с открытым исходным кодом и API для анализа кода для языков C# и VisualBasic .NET от Microsoft. Анализатор Roslyn – мощный инструмент для анализа кода, нахождения ошибок и их исправления. Синтаксическое дерево и семантическая...

PVS-Studio для Java В седьмой версии статического анализатора PVS-Studio мы добавили поддержку языка Java. Пришло время немного рассказать, как мы начинали делать поддержку языка Java, что у нас получилось и какие дальнейшие планы. И, конечно, в статье будут приведены первые испытания анализат...

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

Prisma-CMS как движок для быстрого создания MVP Наверняка многие слышали понятие MVP (Минимально жизнеспособный продукт вики). На хабре тоже много статей про MVP, но в основном это или просто описание что такое MVP и для чего оно, или различные success и не очень story. Но я не нашел ни одной статьи, где бы описывалось на...

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

[Перевод] Доступное объяснение гипотезы Римана Посвящается памяти Джона Форбса Нэша-младшего Вы ведь помните, что такое «простые числа»? Эти числа не делятся ни на какие другие, кроме самих себя и 1. А теперь я задам вопрос, которому уже 3000 лет: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, p. Чему равно p? 31. Каким будет сл...

Order of the Inquisition! Станьте одним из первых игроков в Order of the Inquisition! Сегодня открытие бета-теста игры Орден Инквизиции! Совершенно новая игра, где вы можете создать своего персонажа и попробовать сразиться на Арене и пообщаться в чате с другими игроками! Основные действия в игре: ??В...

Ошибки панели администрирования или опыт разработки Laravel Orchid В прошлом на Хабре публиковалась статья "Orchid CMS — ещё одна CMS на Laravel", а теперь спустя два года и больше 100 релизов попробуем разобрать ошибки и проблемы которые стояли на пути разработки. Читать дальше →

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

Кармическое проклятье Хабра Непредвиденные последствия «Система кармы Хабра и ее влияние на пользователей» — это тема для курсовой как минимум Тема про карму на «Пикабу» Я мог бы начать эту статью с того, что я давно читаю Хабр, но это будет не совсем точным высказыванием. Правильный тезис звучал б...

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

Топ 10 ошибок в C++ проектах за 2018 год Вот уже три месяца, как 2018 год позади. Для многих он пролетел почти незаметно, но для нас, разработчиков PVS-Studio, он оказался весьма насыщенным. Мы трудились в поте лица, бесстрашно боролись за продвижение статического анализа в массы и искали новые ошибки в открытых пр...

[Из песочницы] Когда стоит сохранять длину массива в локальную переменную в C# Читая Хабр, я наткнулся на статью "Стоит ли сохранять длину массива в локальную переменную в C#?" (которая была в разделе «лучшее»). Мне кажется глупый вопрос, не совсем корректные измерения (почему нет измерений для вложенных циклов?) и странный вывод. Длину масс...

Реализация паттерна Page Object на Python + pytest Когда я начинал изучать автоматизацию тестирования, не мог понять — “что такое Page Object и как его реализовать на Python + pytest?”. Штудируя интернет, нашел реализацию на других языках и фреймворках: обучающие статьи, которые были непонятны для меня. Поэтому решил написат...

Как сделать селфи правильно? В наш век, когда все выкладывается в Инстаграм и другие социальные сети, селфи перестали быть просто фотографиями. К ним предъявляются совсем иные требования. Кроме простого фото на память, они должны быть сделаны качественно. Сегодня расскажем, как сфотографироваться так, ...

GeForce GTX 1180 — новый флагман без «лучей» и тензорных ядер? Компания HP опубликовала документацию, в которой упоминается видеокарта 11-й серии GeForce от NVIDIA — GTX 1180. В январе этот ускоритель уже засветился в тестах производительности GFXBench. Будет ли GTX 1180 основана на упрощенных кристаллах без ядер RT, отвечающих за трасс...

[Перевод - recovery mode ] Типичные ошибки при логгировании Привет, Хабр! Я думаю, практически в каждой программе есть логгирование. Более того, в ряде уже неновых приложений (а значит с морем нетривиальных условий) зачастую логи становятся жизненно важными на боевом сервере. Однако, несмотря на всю важность и распространенность подо...

Гайд по автоматическому аудиту смарт-контрактов. Часть 2: Slither Анализатор: Slither Описание: Open-source static analysis framework for Solidity githib: https://github.com/trailofbits/slither Это статический анализатор кода, написанный на python. Он умеет следить за переменными, вызовами, и детектирует вот такой список уязвимостей. У каж...

Основы формата GLTF и GLB, часть 2 Данная статья является продолжением рассмотра основ GLTF и GLB форматов. Вы можете найти первую часть статьи здесь. В первой части мы рассмотрели с вами зачем изначально планировался формат, а также такие артефакты и их атрибуты GLTF формата как Scene, Node, Buffer, BufferVi...

[Из песочницы] Создание минимального Docker-контейнера для Go-приложений Привет, Хабр! Предлагаю вашему вниманию перевод статьи основателя сервиса Meetspaceapp Nick Gauthier «Building Minimal Docker Containers for Go Applications». Время чтения: 6 минут Существует множество, как официальных, так и поддерживаемых сообществом контейнеров для разл...

Знакомство со статическим анализатором PVS-Studio для Java На протяжении многих лет команда PVS-Studio развивает одноименный статический анализатор. На данный момент анализатор представляет собой сложное программное решение и предоставляет возможность анализа таких языков программирования, как C, C++, C# и Java на платформах Windows...

[Из песочницы] MySQL — Использование переменных в запросе Довольно часто спрашивают, есть ли аналоги аналитических (оконных) функций в MySQL. Примечание. На момент написания статьи таких аналогов не было, однако статья и ныне представляет собой академический интерес в плане разбора оригинального для MySQL подхода к использованию пе...

Близкие контакты ADL-ной степени Как навсегда вписать своё имя в историю? Первыми слетать на Луну? Первым встретиться с инопланетным разумом? У нас есть способ проще — можно вписать себя в стандарт языка C++. Хороший пример показывает Эрик Ниблер — автор C++ Ranges. «Запомните это. 19 февраля 2019 года — д...

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

[Перевод] Проблема со связанными переменными: как превратить оптимизатор из врага в друга Автор статьи – Виктор Варламов, OCP. Оригинал статьи опубликован 07.07.2017. Отдельное спасибо автору перевода — brutaltag. В нашей системе подготовки отчетности обычно выполняются сотни длительных запросов, которые вызываются различными событиями. Параметрами запросов с...

Тут живут драконы: матрица компетенций как инструмент тимлида Не исключено, что вы скажете: «Матрица компетенций? Серьезно?». Скорее всего вы что-то уже слышали про этот инструмент, и даже сделали какие-нибудь выводы, почему не хотите его использовать. Может быть, просто было не до того, или как убийственный аргумент «так сложилось ист...

Вот чем отличаются режимы Night Mode и Pro Mode в камере Galaxy S10 Многие фанаты просили Samsung предоставить для камеры Galaxy S10 специальный режим для ночной съемки. Первая версия ночного режима в камере Galaxy S10 пользователей совсем не впечатлила, и поэтому было приятно видеть, что Samsung на этом не остановилась, выпустив еще одно о...

Разработка простейшей «прошивки» для ПЛИС, установленной в Redd. Часть 2. Программный код Итак, в прошлой статье мы разработали простейшую процессорную систему, с помощью которой планируем провести тест микросхемы ОЗУ, подключённой к ПЛИС комплекса Redd. Сегодня же мы сделаем для этой аппаратной среды программу на языке С++, а также разберёмся, как эту программу ...

Топ-7 способов быстрой проверки компетенций IT-специалистов до собеседования Найм IT-специалистов – это непростая задача. Во-первых, сейчас на рынке наблюдается дефицит опытных кадров, они это понимают. Кандидаты часто не готовы тратить много времени на «отборочные мероприятия» работодателя, если их предварительно не заинтересовать. Ранее популярная ...

Почему Apple не следует выпускать новые Apple Watch в этом году Apple Watch Series 4 Каждый год Apple выпускает новые Apple Watch, и каждый год они становятся только лучше. Если оригинальная модель была довольно противоречивой как с точки зрения быстродействия, так и функциональных возможностей, то со временем смарт-часы обросли полезным...

Microsoft выпускает Windows 10 Build 18363.329 в канал Release Preview Операционная система Windows 10 с обновлением 19H2 сейчас является еще тем запутанным беспорядком. В прежние времена у нас был канал Fast Ring для еженедельных выпусков и Slow Ring для ежемесячных выпусков, и все они были из одной ветви разработки. Fast Ring предназначен для...

Хотите отремонтировать iPhone? Сделайте это бесплатно! Видов поломок iPhone, как известно, существует великое множество. Но одно дело, когда необходимо поменять только аккумулятор, и совсем другое — заменить чип памяти или стекло, которое разбилось при падении. Чем сложнее ремонт, тем дороже он обходится, но на этот раз у...

Метаматериалы. Ауксетики. Перспективной сферой для применения 3D-принтеров является создание метаматериалов. Метаматериалы – это материалы, свойства которых в большей степени определяются искусственно созданной структурой и в меньшей степени химическим составом или структурой молекул. До появления ад...

[Перевод] 3D-фотографии Facebook изнутри: шейдеры параллакса В последние несколько месяцев Facebook заполонили 3D-фотографии. Если вам не довелось их увидеть, то объясню: 3D-фотографии — это изображения внутри поста, которые плавно меняют перспективу при скроллинге страницы или когда перемещаешь по ним мышь. За несколько месяцев до ...

[Из песочницы] Анализ Minor Violations Java кода на платформе Duerank.com (часть 1) Введение Что мы знаем об ошибках в коде приложений, написанных на Java? Ну, мы наверняка знаем, что они там встречаются. А насколько часто встречаются? Как много делает разнообразных ошибок в своём коде разработчик? Под ошибками мы понимаем не только баги, но и наличие раз...

Типичные ошибки при работе с PostgreSQL Чуть более месяца назад в Москве состоялась крупнейшая конференция постгресового сообщества PGConf.Russia 2019, собравшая в МГУ свыше 700 человек. Мы решили выложить видео и расшифровку лучших докладов. Выступление Ивана Фролкова с разбором типичных ошибок при работе с Postg...

[Перевод] Зачем в JavaScript нужен строгий режим? Строгий режим (strict mode) — это важная часть современного JavaScript. Именно этот режим позволяет разработчикам пользоваться более ограниченным, чем стандартный, синтаксисом. Семантика строгого режима отличается от традиционного нестрогого режима, который иногда называют ...

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

PVS-Studio ROI Время от времени нам задают вопрос, какую пользу в денежном эквиваленте получит компания от использования анализатора PVS-Studio. Мы решили оформить ответ в виде статьи и привести таблицы, которые покажут, насколько анализатор может быть полезен. Мы не можем в статье доказа...

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

Как я решил проблему с Bootcamp и macOS Mojave У многих из нас, однажды купивших Mac, не получается расстаться с прошлым. С прошлым в виде компьютеров с Windows. Хорошо, что есть возможность запустить Windows на Mac! Кто-то использует Bootcamp из-за абсолютной несовместимости программ для OS X и Windows, а программы нуж...

Байт-машина для форта (и не только) по-индейски (часть 4) И снова я несколько переоценил объем статьи! Планировал, что это будет заключительная статья, где сделаем компилятор и выполним тестирование. Но объем оказался велик, и я решил разбить статью на две. В этой статье мы сделаем практически все основные функции компилятора. ...

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

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

Статический анализ IntelliJ IDEA против человеческого разума Не так давно я изучал вывод статического анализатора IntelliJ IDEA для Java-кода и наткнулся на интересный случай. Так как соответствующий фрагмент кода не является open source, я его анонимизировал и отвязал от внешних зависимостей. Будем считать, что он выглядел так: priva...

Edge работает на Windows 7 Недавно состоялся слив предварительной сборки браузера Edge на основе Chromium. Хотя Microsoft и разрабатывает новый Edge в основном для Windows 10, но он также работает и на старых версиях Windows.Чтобы проверить это, ребята из MSPowerUser загрузили ISO-образ Windows 7 на ф...

Linux Backup от Veeam на ОС «Эльбрус». Импортозамещение ['?' | '.' | '!'] Всем привет. Недавние статьи на Хабре Импортозамещение на практике. Часть 1. Варианты и Не долго музыка играла… или как ОС Эльбрус так и не стала свободной не оставили меня равнодушным. Я решил поизучать этот вопрос в ключе задачи резервного копирования. Тем более, что в э...

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

Как добавить проверки в NoVerify, не написав ни строчки Go-кода В статическом анализаторе NoVerify появилась киллер-фича: декларативный способ описания инспекций, который не требует программирования на Go и компиляции кода. Чтобы вас заинтриговать, покажу описание простой, но полезной инспекции: /** @warning duplicated sub-expressions in...

Как волонтёры со всего мира создают прямой эфир ICPC-2019 Меня зовут Лида Перовская, я работаю в Яндексе, а ещё с 2015 года помогаю организовывать прямой эфир International Collegiate Programming Contest. ICPC — студенческий чемпионат мира по программированию — проводится ежегодно с 1970-х. Это чуть ли не единственная олимпиада п...

Apple показала, как можно кастомизировать AirPods Кастомизация AirPods возможна. Apple одобряет Несмотря на то что кастомизация – это удел пользователей Android, очень часто фанаты Apple тоже оказываются не против доработать свои устройства, сделав их привлекательнее по крайней мере внешне. Но поскольку в кастомизации iPhon...

Повышение приоритета как (неработающий) способ ускорения работ Мы это видим довольно регулярно. Не только видим, но и принимаем участие в обсуждении или принятии решения: «смотрите, задача АВС уже очень долго находится в работе, давайте повысим её приоритет, чтобы, наконец-то, устранить проблему». Согласитесь, это вполне пр...

3D-печать и airsoft: как я печатал «привод» Всем привет! Я попробую немного рассказать о том, как я пытался сделать страйкбольный привод при помощи 3D-принтера, что из этого получилось и с какими сложностями пришлось столкнуться. Статья может оказаться интересной для тех, кто любит airsoft, DIY или 3D-печать. Для те...

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

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

Простое шифрование БД SQlite Так получилось, что я очень люблю использовать SQLite СУБД. Программируя на ассемблере, я иногда нуждаюсь в полноценной СУБД. Мои программы редко превышают в размере несколько сотен килобайт. Понятно, что использовать с ним СУБД в несколько сотен мегабайт по меньшей мере пр...

Reaktive — мультиплатформенная библиотека для реактивного Kotlin Многие сегодня любят реактивное программирование. В нём масса плюсов: и отсутствие так называемого "callback hell", и встроенный механизм обработки ошибок, и функциональный стиль программирования, который уменьшает вероятность багов. Значительно проще писать многопоточный ...

NVIDIA GeForce GTX 1660 Ti протестирована в AotS: ощутимо быстрее GeForce GTX 1060 Упоминание готовящейся к выпуску видеокарты NVIDIA GeForce GTX 1660 Ti было обнаружено в базе данных теста производительности игры Ashes of the Singularity. Скриншот с результатами теста опубликовал известный источник в основном достоверных утечек Tum Apisak. Производительно...

Энтузиаст запустил Half-Life на восьми графических процессорах 3dfx Voodoo2 Давным-давно в нашей галактике… существовало куда больше производителей дискретных графических процессоров, чем сейчас. Одним из них была компания 3dfx Interactive, и несмотря на то, что самой компании уже давно нет, энтузиасты всё ещё продолжают экспериментировать с её граф...

[Перевод] Простые методы оптимизации программ Go Я всегда забочусь о производительности. Точно не знаю, почему. Но меня просто бесят медленные сервисы и программы. Похоже, я не одинок. В тестах A/B мы попытались замедлять выдачу страниц с шагом 100 миллисекунд и обнаружили, что даже очень небольшие задержки приводят к сущ...

[Перевод] C# является языком низкого уровня? Я большой поклонник всего, что делает Фабьен Санглард, мне нравится его блог, и я прочитал обе его книги от корки до корки (о них рассказывали в недавнем подкасте Hansleminutes). Недавно Фабьен написал отличный пост, где расшифровал крошечный рейтрейсер, деобфусцировав код ...

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

Внедряйте статический анализ в процесс, а не ищите с его помощью баги Написать эту статью меня сподвигло большое количество материалов о статическом анализе, всё чаще попадающихся на глаза. Во-первых, это блог PVS-studio, который активно продвигает себя на Хабре при помощи обзоров ошибок, найденных их инструментом в проектах с открытым кодом. ...

Анализ производительности запросов в ClickHouse. Доклад Яндекса Что делать, если ваш запрос к базе выполняется недостаточно быстро? Как узнать, оптимально ли запрос использует вычислительные ресурсы или его можно ускорить? На последней конференции HighLoad++ в Москве я рассказал об интроспекции производительности запросов — и о том, что ...

Математика в Gamedev по-простому. Кривые и дождь в Unity Всем привет! Меня зовут Гриша, и я основатель CGDevs. Продолжим говорить про математику что ли. Пожалуй, основное применение математики в геймдеве и компьютерной графики в целом – это VFX. Вот и поговорим про один такой эффект – дождь, а точнее про его основную часть, требую...

Понимаем UICollectionViewLayout на примере Photos App Здравствуй, Хабр! Меня зовут Никита, я работаю над мобильными SDK в компании ABBYY и в том числе занимаюсь UI-компонентом для сканирования и удобного просмотра многостраничных документов на смартфоне. Этот компонент сокращает время на разработку приложений на базе технологии...

200 — это хорошо или это плохо? В этой трехминутной статье я хочу затронуть наболевшую тему. Речь пойдет о статус коде HTTP 200 и ошибках в ответе. HTTP/1.1 200 OK { "error": { code: 2019, message: "Validation failed: field 'size' is invalid: the value is not a number" } } Нормально ли возв...

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

CMake: тот случай, когда проекту непростительно качество его кода CMake — это кроссплатформенная система автоматизации сборки проектов. Эта система намного старше, чем статический анализатор кода PVS-Studio, при этом ещё никто не попробовал применить его к коду и сделать обзор ошибок. Ошибок, оказывается, много. Аудитория CMake огромна. Н...

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

Проблемы беспроводных наушников и их решение AirPods — мои любимые наушники. В основном, потому что описанные проблемы с ними происходят реже всего 2019 год уже уверенно можно назвать годом, когда беспроводные наушники доказали свою состоятельность на рынке. По данным компании «Связной-Евросеть», доля беспроводны...

ЛУЧШИЕ АКЦИИ АВГУСТА: пластик Polymaker и смола Monocure3D в подарок! Всем доброго дня!По традиции 1-го числа каждого месяца в нашем интернет-магазине стартуют новые акции. В этом августе мы решили продолжить марафон выгодных предложений по расходникам! Хотите попробовать в работе качественный пластик премиум-класса? Тогда участвуйте в нашей а...

[Перевод] Введение в юнит-тестирование в Unity Вам любопытно, как работает юнит-тестирование в Unity? Не знаете, что такое юнит-тестирование в целом? Если вы ответили положительно на эти вопросы, то данный туториал будет вам полезен. Из него вы узнаете о юнит-тестировании следующее: Что это такое Его польза Достоинств...

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

Archie - НЕлинейный 3D принтер. Часть 3. Новый редуктор. Привет. Так как до нового видео ещё далеко, решил сделать пошаговую инструкцию сборки новых редукторов У самой первой версии была проблемы поперечной жёсткости и проблематично было прикрутить алюминиевый шкив без перекоса. Выглядела первая версия вот так: Плечо просто притяг...

В анализаторе все должно быть прекрасно: и функциональность, и интерфейс… Изучаем новый интерфейс Solar appScreener 3.1 Как говаривал Генри Форд, все можно сделать лучше, чем делалось до сих пор. Вот и мы так подумали, когда приступили к работе над версией 3.1 нашего анализатора защищенности приложений. Нам ОООЧЕНЬ хотелось сделать наш продукт не только самым крутым по функциональности: напри...

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

4 смертных греха TWS наушников: почему True Wireless всё еще не труъ? Когда все вокруг заговорили о совсем беспроводных наушниках, моей радости не было предела. Больше никаких ошейников, никаких проводков! Ничего, кроме двух связанных друг с другом какой-то ментальной магией, затычек прямо в ушах? Дайте два! По одному в каждое ухо! И милый зар...

Глава Nvidia проговорился о том, что движок Unity тоже получит поддержку трассировки лучей Недавно игровой движок Unreal Engine 4 получил поддержку трассировки лучей, что весьма важно не только для Nvidia, но и для индустрии в целом. Похоже, вскоре поддержкой данной технологии сможет похвастаться ещё один очень популярный движок — Unity. Официально разр...

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

[Перевод] Автоматизация Android. Супер простое руководство по созданию первого Espresso-теста Здравствуйте, друзья. В преддверии старта курса «Mobile QA Engineer», хотим поделиться с вами переводом интересного материала. Что такое Espresso? Нет, это не напиток, который вы пьете каждый день, чтобы взбодриться. Espresso — это тестовый фреймворк с открытым исходным к...

Анализ производительности виртуальной машины в VMware vSphere. Часть 1: CPU Если вы администрируете виртуальную инфраструктуру на базе VMware vSphere (или любого другого стека технологий), то наверняка часто слышите от пользователей жалобы: «Виртуальная машина работает медленно!». В этом цикле статей разберу метрики производительности и расскажу, ...

[Перевод] Как без особенных усилий создать ИИ-расиста Предостерегающий урок. Сделаем классификатор тональности! Анализ тональности (сентимент-анализ) — очень распространённая задача в обработке естественного языка (NLP), и это неудивительно. Для бизнеса важно понимать, какие мнения высказывают люди: положительные или отрицате...

[Перевод] Из волшебной математической функции – одно решение, чтобы править ими всеми Три года назад Марина Вязовска из Швейцарского федерального технологического института в Лозанне поразила математиков, обнаружив самый плотный способ упаковки сфер одинакового размера в восьми- и 24-мерном пространствах (во втором случае – при помощи четырёх соавторов). А ...

Пиу-пиу лазером — и видно косяки строителей: сверхточная модель здания на основе лазерного сканирования Берём лазерный сканер (это что-то вроде лидара) — штуку, которую надо установить на треногу и нажать кнопку. Штука обводит лазерным лучом всё, что видит, и сохраняет облако полученных точек. Это похоже на работу лазерного дальномера, только за один проход вычисляется несколь...

«Современные» обедающие философы на C++ посредством акторов и CSP Некоторое время назад ссылка на статью "Modern dining philosophers" распространилась по ресурсам вроде Reddit и HackerNews. Статья интересная, она показывает несколько решений этой известной задачи, реализованных на современном C++ с использованием task-based подхода. Если к...

[recovery mode] Один способ вычисления логарифма по основанию 2 Вычисление логарифмов довольно распространённая операция в цифровой обработке сигналов. Чаще пожалуй приходится считать только свёртки (умножение с накоплением) и амплитуды с фазами. Как правило для вычисления логарифмов на FPGA применяется алгоритм CORDIC в гиперболическом ...

Как откатиться с бета-версии Android Q обратно на Android Pie Совсем недавно мы рассказывали о том, как установить бета-версию Android Q на ваш смартфон Google Pixel. Однако по ряду причин вам может понадобиться вернуть предыдущую сборку в лице Android Pie. И сегодня мы расскажем вам о том, как это сделать. Кроме всего прочего, на да...

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

Ошибка выжившего «Защита» — хороший ярлык для плохих дел. Милтон Фридман Этот текст получился в результате анализа некоторых комментариев к статьям «Дефекты лайков» и «Экономика и права человека». Интерпретируя какие-либо данные и делая выводы, некоторые комментаторы совершали типичную «о...

[Из песочницы] Как я не стал программистом в 35 лет С самого начала сентября широким потоком хлынули на Хабр публикации об успешном успехе на тему «Детство программиста», «Как стать программистом после N лет», «Как я ушёл в IT из другой профессии», «Путь в программирование» и так далее. Подобные статьи пишут постоянно, но во...

[Перевод] Переносим 30 000 строк кода с Flow на TypeScript Недавно мы перенесли 30 тысяч строк кода JavaScript нашей системы MemSQL Studio с Flow на TypeScript. В этой статье я расскажу, почему мы портировали кодовую базу, как это происходило и что получилось. Дисклеймер: моя цель — вовсе не критика Flow. Я восхищаюсь проектом и ду...

Manta, Sting. Первая сборка. Тесты железа. Платки приехали еще в середине января. Остальная комплектовка на почтовых черепахах доползла только к началу февраля. Точно оценить время сборки довольно трудно. Так как собиралось по мере прихода деталей. Примерно 2-3 часа на плату. Сборка без каких либо особенностей. Снача...

[recovery mode] Типобезопасная работа с массивами PHP Всем привет, расскажу о собственном велосипеде для удобной работы с массивами в PHP. Type hinting В PHP7 появились подсказки типов (type hinting), что позволило IDE проводить более качественный статический анализ кода, качество нашего кода улучшилось (или правильно говорит ...

How to get Security Log with non-administrative user Привет Хабр! Читайте под катом как получить доступ к логу безопасности Windows без прав администратора. Эта будет не первая статья на Хабре связанная с логами Windows и наверно не самая оригинальная, но на мой взгляд я потратил слишком много времени на поиск простого решен...

[Из песочницы] Три Больших Лжи о JavaScript Привет, Хабр! Представляю вашему вниманию мой перевод статьи "The Three Big Lies About JavaScript" автора Richard Kenneth. Данная статья была написана в мае 2016 года, однако ее актуальность, на мой взгляд, не исчезла. Я начинающий программист, поэтому возможны оши...

[Перевод] Пример создания Makefile для Go-приложений В этом руководстве мы рассмотрим, как разработчик Go может использовать Makefile при разработке собственных приложений. Что такое Makefile-ы? Makefile — невероятно полезный инструмент автоматизации, который можно использовать для запуска и сборки приложений не только на G...

[Из песочницы] Процесс компиляции программ на C++ Цель данной статьи: В данной статье я хочу рассказать о том, как происходит компиляция программ, написанных на языке C++, и описать каждый этап компиляции. Я не преследую цель рассказать обо всем подробно в деталях, а только дать общее видение. Также данная статья — это необ...

[Из песочницы] Lock с приоритетами в .NET Каждый программист, использующий более одного потока в своей программе, сталкивался с примитивами синхронизации. В контексте .NET их очень и очень много, перечислять не буду, за меня это уже сделал MSDN. Мне приходилось пользоваться многими из этих примитивов, и они прекрас...

Deep Learning vs common sense: разрабатываем чат-бота Чем больше пользователей у вашего сервиса, тем выше вероятность, что им понадобится помощь. Чат с техподдержкой — очевидное, но довольно дорогое решение. Но если применить технологии машинного обучения, можно неплохо сэкономить. Отвечать на простые вопросы сейчас может и бо...

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

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

Сага о абсолютном энкодере и шаговом двигателе Давно я тут не писал постов про принтеры и электронику, но тут назрела тема использования абсолютного энкодера и попытке сделать вменяемое упралвение шаговым двигателем с рассчётом на точность позиционирования (не путать с повторяемостью).      В качестве подо...

Как выстрелить себе в ногу в C и C++. Сборник рецептов Haiku OS История встречи статического анализатора PVS-Studio с кодом операционной системы Haiku уходит в далёкий 2015-й год. Это был интереснейший эксперимент и полезный опыт для команд обоих проектов. Почему эксперимент? Анализатора для Linux тогда не было и не будет ещё полтора год...

Квантовые вычисления в играх, или сходим с ума по-серьезному Если живешь среди сумасшедших, надо и самому научиться быть безумным Вы когда-нибудь пробовали «научиться быть безумным»? Нетривиальная задачка. Даже нормальной методики не найдешь, ибо каждый сходит с ума по-своему. Моя первая попытка: теория заговора. Теория не предполага...

[Из песочницы] Phoenix LiveView: когда вам больше не нужен JavaScript* * для создания динамической страницы Не так давно 12.12.2018 был анонсирован выход новой библиотеки для фанатов phoenix framework под названием Phoenix LiveView. Я бы хотел поделиться с вами впечатлениями от ее использования и phoenix в целом, а в следующей статье попробова...

[Перевод] Операции сравнения в C++20 Встреча в Кёльне прошла, стандарт C++20 приведён к более или менее законченному виду (по крайней мере до появления особых примечаний), и я хотел бы рассказать об одном из грядущих нововведений. Речь пойдёт о механизме, который обычно называют operator<=> (стандарт опре...

[Перевод] Почему единицу не относят к простым числам, и когда её вообще начали считать числом Мой друг инженер недавно меня удивил. Он сказал, что не уверен, является число 1 простым или нет. Я удивилась, потому что никто из математиков не считает единицу простым. Путаница начинается с определения, которое дают простому числу: это положительное целое число, которое ...

Трактат о Pinе. Мысли о настройке и работе с пинами на С++ для микроконтроллеров (на примере CortexM) Последнее время я сильно увлекся вопросом надежности софта для микроконтроллеров, 0xd34df00d посоветовал мне сильнодействующие препараты, но к сожалению руки пока не дошли до изучения Haskell и Ivory для микроконтроллеров, да и вообще до совершенно новых подходов к разработк...

Разворачиваем автоматизацию за пару часов: TypeScript, Protractor, Jasmine Привет, Хабр! Меня зовут Виталий Котов, я довольно много занимаюсь автоматизацией тестирования и мне это нравится. Недавно я участвовал в проекте по настройке автоматизации «с нуля» на стеке TypeScript + Protractor + Jasmine. Для меня этот стек был новым и необходимую инфор...

PVS-Studio заглянул в движок Red Dead Redemption — Bullet В наши дни для, например, разработки игр уже нет нужды самостоятельно с нуля реализовывать физику объектов, так как для этого существует большое число библиотек. Bullet в свое время активно использовался во многих ААА играх, проектах виртуальной реальности, различных симуля...

[Перевод] Разработка веб-серверов на Golang — от простого к сложному Пять лет назад я начал разрабатывать Gophish, это дало возможность изучить Golang. Я понял, что Go — мощный язык, возможности которого дополняются множеством библиотек. Go универсален: в частности, с его помощью можно без проблем разрабатывать серверные приложения. Эта ...

[Перевод] Асинхронное программирование в Python: краткий обзор Когда говорят о выполнении программ, то под «асинхронным выполнением» понимают такую ситуацию, когда программа не ждёт завершения некоего процесса, а продолжает работу независимо от него. В качестве примера асинхронного программирования можно привести утилиту, которая, работ...

Финансовая ловушка в Яндекс.Деньги Привет, Хабр! Хотел бы поделиться с вами одной особенностью Яндекс.Денег, которая выглядит, как ловушка для ваших денег и, на мой взгляд, является хорошим примером непродуманного UX. Хочется верить, что это было сделано не нарочно, а эта небольшая статья или как-то оградит ч...

Анализ кода ROOT — фреймворка для анализа данных научных исследований Пока в Стокгольме проходила 118-я Нобелевская неделя, в офисе разработки статического анализатора кода PVS-Studio готовился обзор кода проекта ROOT, используемого в научных исследованиях для обработки больших данных. Премию за такой код, конечно, не дашь, а вот подробный обз...

Создаём Azure DevOps extension У нас есть проект с настроенным CI/CD-процессом. Когда разработчик заканчивает задачу и вливает свои изменения в develop\qa, автоматически запускается билд, который выкладывает новую версию приложения на тестовую среду. В идеальном мире тестировщик автоматически узнаёт о зад...

Ищем и анализируем ошибки в коде Orchard CMS Эта статья – результат повторной проверки проекта Orchard с помощью статического анализатора PVS-Studio. Orchard это система управления контентом с открытым исходным кодом, которая является частью галереи ASP.NET-проектов некоммерческого фонда Outercurve Foundation. Проверк...

DevOops 2019 глазами разработчика 29-30 октября в Санкт-Петербурге прошла конференция DevOops. В этой статье я поделюсь впечатлениями и инсайтами, а также краткими заметками о прослушанных докладах. Небольшой disclaimer: поскольку я разработчик, то некоторые мысли и комментарии могут быть с уклоном в Dev, ...

Фильтр Калмана для минимизации энтропийного значения случайной погрешности с не Гауссовым распределением Введение На Habr математическое описание работы фильтра Калмана и особенности его применения рассматривались в следующих публикациях [1÷10]. В публикации [2] в простой и доходчивой форме рассмотрен алгоритм работы фильтра Калмана (ФК) в модели «пространства состояний», Сл...

Анализ производительности видеокарт в тесте трассировки лучей Crytek Neon Noir Прошёл почти год с тех пор, как игры, использующие для эффектов освещения аппаратное ускорение трассировки лучей (RT), впервые появились на рынке. Уже тогда стало ясно, что использование технологии RT будет набирать обороты, а после анонса аппаратной поддержки в консолях Son...

[Из песочницы] Сниппеты против Клевера – обыгрываем популярнейшую викторину в реальном времени Апрель 2018-го года. Мне было 14. Мы с друзьями играли в тогда очень популярную онлайн-викторину «Клевер» от ВКонтакте. Один из нас (обычно я) всегда был за ноутбуком, чтобы пытаться быстро гуглить вопросы и глазами искать в поисковой выдаче правильный ответ. Но вдруг я поня...

Вступление в ряды владельцев 3d принтеров. Предыстория.Некоторое время назад, заинтересовался темой 3d печати. Потихоньку собирались и закупались различные комплектующие ramps, рельсы, направляющие, каретки, шаговые двигатели,... в общем накопилось прилично, можно будет пару принтеров собрать почти полностью. В плана...

[Перевод] Python как предельный случай C++. Часть 1/2 От переводчикаБрендон Роудс − весьма скромный человек, представляющий себя в твиттере как «Python-программиста, возвращающего долг сообществу в форме докладов или эссе». Число этих «докладов и эссе» впечатляет, равно как и число свободных проектов, контрибьютором которых Бре...

[recovery mode] Простота и cложность примитивов или как определить ненужный препроцессинг для нейронной сети Это третья статья по анализу и изучению эллипсов, треугольников и других геометрических фигур. Предыдущие статьи вызвали у читателей несколько очень интересных вопросов, в частности о сложности или простоте тех или иных обучающих последовательностей. Вопросы на самом деле оч...

MWO Mauler     Закончил мелкого Raven’a (https://3dtoday.ru/blogs/joel1988/mworaven), и решил я сделать меха чуть больше. Посмотрел на то что имеется в игре, и приглянулся мне Mauler, тяжелый, 90 тонный амбал ростом почти 18 метров в игре.    Достал как и до этого модельки игровые. Ног...

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

[Перевод] Элегантная обработка ошибок в JavaScript с помощью монады Either Давайте немного поговорим о том, как мы обрабатываем ошибки. В JavaScript у нас есть встроенная функция языка для работы с исключениями. Проблемный код мы заключаем в конструкцию try...catch. Это позволяет прописать нормальный путь выполнения в разделе try, а затем разобрать...

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

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

Математик решил загадку числа 42 Задача звучит следующим образом: может ли любое число от 1 до 100 быть выражено как сумма трех кубов? Если записать формулу 1954 года, то получится следующее: х3 + y3 + z3 = K. K в данном случае — любое число от 1 до 100. Соответственно, нужно было определить все три неизве...

Опасность использования multi-character-констант Во время анализа кода, PVS-Studio выполняет анализ потока данных и оперирует значениями переменных. Значения берутся из констант или выводятся из условных выражений. Мы называем их виртуальными значениями. Недавно мы улучшали их для работы с multi-character-константами и эт...

AMD Radeon RX 5000 Navi сохранят блоки GCN, а полноценные ГП RDNA выйдут в 2020 году В своём выступлении на Computex AMD анонсировала новые графические карты серии Radeon RX 5700, основанные на 7-нм чипе Navi. Компания объявила, что ускорители используют совершенно новую архитектуру RDNA (Radeon DNA), которая станет основой ГП следующего поколения. Но, похож...

Язык Bosque — новый язык программирования от Microsoft Буквально несколько дней назад компания Microsoft представила публике новый язык программирования. Языку дали название Bosque. Главная миссия дизайна языка — лучше быть богатым и здоровым, чем бедным и больным чтобы он был прост и понятен как для человека, так и для компьюте...

Allure-Android. Информативные отчеты для мобильной автоматизации Автоматизация мобильных приложений довольно молодая сфера: фреймворков много и многие проекты сталкиваются с проблемой выбора самого «быстрого, стабильного, простого в использовании». Также и мы около двух лет назад стояли перед выбором нового инструмента автоматизации тести...

С сожалением об отсутствии в C++ полноценного static if или… … как наполнить шаблонный класс разным содержимым в зависимости от значений параметров шаблона? Когда-то, уже довольно давно, язык D начали делать как "правильный C++" с учетом накопившегося в C++ опыта. Со временем D стал не менее сложным и более выразительным языком, чем C...

Находим баги в LLVM 8 с помощью анализатора PVS-Studio Прошло более двух лет с момента последней проверки кода проекта LLVM с помощью нашего анализатора PVS-Studio. Давайте убедимся, что анализатор PVS-Studio по-прежнему является лидирующим инструментом по выявлению ошибок и потенциальных уязвимостей. Для этого проверим и найдё...

Какой следующий член…? — Ищем формулу для n-го члена последовательности, производящие функции и Z-преобразование Скачать файл с кодом и данные можно в оригинале поста в моем блоге В языке Wolfram Language есть четыре совершенно потрясающие функции: FindSequenceFunction, RSolve, DifferenceRootReduce и FindFormula. В этой статье мы обсудим их возможности и поговорим о функциях, тесно с ...

Фрактал Чезаро ауксетик? Просматривая схемы различных фракталов, я обратил внимание на снежинку Коха, а точнее на ее частный случай – фрактал Чезаро (Cesaro). Глядя на него, я предположил, что из него можно получить ауксетик. Подробнее о том что такое ауксетики я рассказывал тут. Для начала вспомним...

#DevStory – История создания приложения для подготовки к экзаменам Нам пишут разработчики проекта «Медицинские тесты». «Два основных принципа современного образования: образование для всех и образование через всю жизнь» Международная комиссия по вопросам образования,
науки и культуры при ООН (ЮНЕСКО) Проект «Медицинские тесты» во...

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

IPFS без боли (но это не точно) Не смотря на то, что на хабре была уже не одна статья про IPFS Сразу уточню, что я не являюсь экспертом в этой области, но не раз проявлял интерес к этой технологии, но попытки поиграться с ней часто вызывало некоторую боль. Сегодня я опять взялся за эксперименты и получ...

Дизельный малыш ТГК2 в масштабе 1/87 Еще только начав знакомится 3d моделированием, пытался я сделать модель промышленного тепловоза ТГК2. Маленький, узнаваемый, с довольно простыми формами. На тот момент рисовал я в Sketchup и получилась вот такая поделкаДалее Sketchup был благополучно заброшен и осуществлен п...

[recovery mode] Расширение (плагин) SketchUp для проектирования мебели программистом При расчете стоимости новой кухни цена оказалась такой большой, что я решил сделать её сам так как это обойдется в два раза дешевле. Для тренировки решил сделать для себя рабочий стол. Достаточно быстро пришло понимание: чтобы сделать хорошую вещь нужно сделать 3D модель. Эт...

Хотите отредактировать PDF на Mac? Попробуйте это приложение Офисных работников и фрилансеров-домоседов объединяет одно: необходимость регулярно работать с документами. Как правило, обмен документацией осуществляется в формате PDF, так как он удобен в использовании. Конечно, для всего этого нужна мощная утилита, которая не просто поз...

Ещё к вопросу о планетарных редукторах  Заинтересовавшись темой, изучил изрядно информации и посмотрел некоторое количество моделей. С некоторым удивлением обнаружил, что конструкторы моделей часто выбирают плохое количество зубьев на колёсах планетарного редуктора. Конкретно:9,9,279,11,318,12,3210,15,41 &n...

Алгоритмы поиска простых чисел «Самое большое простое число 232582657-1. И я с гордостью утверждаю, что запомнил все его цифры… в двоичной форме». Карл Померанс Число называется простым, если оно имеет только два различных делителя: единицу и само себя. Задача поиска простых чисел не дает покоя математи...

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

Необычные системные вызовы на Linux Что видит программист, начиная работать с языком C? Он видит fopen, printf, scanf и ещё много других функций. Видит он и всякие open и mmap — казалось бы, зачем их выделять? Но, в отличие от первой группы, эти две функции при выполнении на ядре Linux являются системными в...

[Из песочницы] Локальный (offline) npm репозиторий Предыстория Решив продаться задорого, я оказался у работодателя, где интернета нет не только в пром-контуре, но и в деве (ситуация на самом деле нередкая во многих, так сказать, "энтерпрайзах"). Есть IE в консоли, где ты, мой дорогой читатель, можешь конечно посм...

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

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

Иллюзия иммутабельности и доверие как основа командной разработки Вообще я C++ программист. Ну так получилось. Подавляющее большинство коммерческого кода, который я написал за свою карьеру, — это именно C++. Мне не очень нравится такой сильный перекос моего личного опыта в сторону одного языка, и я стараюсь не упускать возможности написать...

Edge 75.0.107.0 – первая версия браузера Edge на Chromium Microsoft уже примерно около полугода занимается разработкой новой версии браузера Edge. Ключевой особенностью нового браузера считается переход со собственного движка EdgeHTML на движок Chromium. Ходило очень много слухов насчет того, как будет выглядеть новый браузер. Посл...

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

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

RAID0 из пары SATA SSD или... Intel Optane 800p: продолжаем поиски смысла старых подходов в современных условиях Недавно мы попробовали «поиграть» с массивами RAID0 из пары NVMe-накопителей и пришли к выводу, что это лишено практического смысла. Даже если окажется, что старого маленького медленного SSD уже не хватает, его проще заменить на новый большой и быстрый, а не пытаться докупит...

Сказ о том, как наукам компьютерным обучаться Эта статья ориентирована, в первую очередь, на тех, кто хочет начать изучать программирование, но не имеет возможности платить за это обучение. Статей написанных на эту тему на Хабре довольно много, вот только некоторые из них: Почему трава зеленая, а программисты крутые, ...

[Из песочницы] Как создать 2D игру с Python и аркадной библиотекой Привет, Хабр! представляю вашему вниманию перевод статьи How to create a 2D game with Python and the Arcade library автора Paul Vincent Craven Как создать 2D игру с Python и аркадной библиотекой Узнайте, как начать работу с Arcade, простой в использовании библиотеки Python д...

TCP против UDP или будущее сетевых протоколов Перед каждым сервисом, генерирующим хотя бы 1 Мбит/сек трафика в интернете возникает вопрос: «Как? по TCP или по UDP?» В прикладных областях, в том числе и платформах доставки уже сложились предпочтения и традиции принятия подобных решений. По идее, если бы, к примеру, одна...

Google "случайно" слил информацию о новом ... На сайте интернет-магазина Google внезапно появилось изображение нового продукта под названием Google Nest Hub Max. Разумеется, на текущий момент данные уже удалены, но заинтересованные пользователи успели сделать скриншоты - как известно, "удалить информацию из Интернета" п...

Уникальный калькулятор MyScript Calculator 2 доступен на iOS и Android бесплатно Разработчики приложения MyScript Calculator 2 сделали все для того, чтобы сделать процесс решения примеров и уравнений максимально простым и интуитивным. Вместо того, чтобы выбирать нужные цифры и знаки на виртуальной клавиатуре, вам достаточно просто написать пальцем,...

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

Что делать, если камера смартфона не фокусируется Если вы читаете это, то, скорее всего, ваш смартфон уже не раз в самый неподходящий момент съемки, вдруг, отказывался фокусироваться. Эта неприятность может коснуться как основной, так и сефли-камеры, но хуже всего, если этой проблеме подверглись обе камеры. Даже в этом слу...

[Из песочницы] ClusterJ — работаем с MySQL NDB Cluster из Java Привет, Хабр! В этой статье я хочу рассмотреть такую библиотеку для Java, как ClusterJ, которая позволяет очень просто работать с движком MySQL NDBCLUSTER из Java кода, которая представляет собой высокоуровневое API, схожее по концепции с JPA и Hibernate. В рамках статьи со...

GeForce GTX 1650 получила кодировщик видео прошлого поколения После вчерашнего релиза видеокарты GeForce GTX 1650 выяснилось, что её графический процессор Turing TU117 отличается от своих старших «собратьев» поколения Turing не только меньшим количеством ядер CUDA, но и другим аппаратным кодировщиком видео NVENC. Как отмечает сама комп...

[Из песочницы] Как я делился местоположением через ВК API Недавно решил попробовать реализовать идею о том, как можно делиться местоположением через API ВКонтакте с друзьями в режиме, приближенном к реальному времени. На выходе получилось кроссплатформенное Qt-приложение для iOS/Android, веб-приложение для ВКонтакте и парочка pull ...

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

[Перевод] Хитрый Perl-квайн Прим. пер.: Встретил сегодня в твиттере очень забавный, на первый взгляд, тред. А потом пригляделся и понял, что он не только забавный, но и занятный. А раз уж так сложилось, что сегодня пятница, то решил, что стоит поделиться обнаруженным и с товарищами:) Сохраните следу...

Простейшее профилирование памяти на STM32 и других микроконтроллерах «С опытом приходит стандартный, научный подход к вычислению правильного размера стека: взять случайное число и надеяться на лучшее» — Jack Ganssle, «The Art of Designing Embedded Systems» Привет, Хабр! Как ни странно, но в абсолютном большинстве виденных мной «учебников дл...

[Из песочницы] QlikView. Условное форматирование «Как в Эксель» Пришла задача от заказчика – сделать условное форматирование таблицы «как в эксель». QlikView вполне себе справляется со стандартными задачами раскраски по условию, но вот с выбором параметров динамически, да еще и как в эксель – возник вопрос «это как вообще..?». Итог: был...

PHP для начинающих. Обработка ошибок Не совершает ошибок только тот, кто ничего не делает, и мы тому пример — сидим и трудимся не покладая рук, читаем Хабр :) В этой статье я поведу свой рассказа об ошибках в PHP, и о том как их обуздать. Читать дальше →

Новая прошивка для принтера Anycubic Photon S с антиалиасингом Может еще не все знают, но недавно Эникубик анонсировал новую прошивку для своего фотополимерного принтера Photon S. После того, как я выпросил у техподдержки старую версию прошивки (на всякий случай, чтобы можно было откатиться назад), я прошил принтер новой версией и немно...

[Перевод] Roslyn Analyzers. Как писать код быстро и безошибочно Roslyn, платформа компилятора .NET, помогает обнаруживать ошибки еще до запуска кода. Одним из примеров является анализатор проверки орфографии Roslyn, который встроен в Visual Studio. Скажем, вы создаете статический метод и случайно написали слово static как statc. Вы сможе...

Искусство парсинга 2 или транслитерация собственной разметки +БОНУС: как включать классы друг в друга в C++ Привет, Хабр! Эта статья — прямое продолжение статьи Искусство парсинга или DOM собственными руками, где мы разобрали HTML-документ и построили на его основе абстрактное синтаксическое дерево (AST) с доступом к любому элементу ч...

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

Атаки на домен При проведении тестирований на проникновение мы довольно часто выявляем ошибки в конфигурации домена. Хотя многим это не кажется критичным, в реальности же такие неточности могут стать причиной компрометации всего домена. К примеру, по итогам пентеста в одной компании мы ...

[Из песочницы] Цвет Луны и Солнца из космоса в значениях RGB и цветовой температуры Казалось бы, вопрос цвета Луны и Солнца из космоса для современной науки настолько простой, что в нашем веке совсем не должно возникать проблем с ответом. Речь идёт о цветах при наблюдении именно из космоса, т. к. атмосфера приводит к изменению цвета из-за рэлеевского рассея...

Обзор Coolmuster Android Eraser. Чистим смартфон надежно Глядя на ту ересь, что происходит нынче с Facebook и безопасностью персональных данных в целом, немудрено задуматься – а насколько уязвим ваш смартфон? Как сильно вы можете пострадать, если ваше устройство попадет не в те руки. Приложение Coolmuster Android Eraser долж...

«Очень важное совещание» в Comedy. Разберём полёты? Все выходные лента в  Facebook и моя личка ломились от ссылок на одно и то же видео — «Очень важное совещание» от участников Comedy Club. Комментарии и подписи были односложными: «ха», «точняк», «а помнишь, у нас в N так же делал R» и т.д. Я не сразу посмотрела видео, но как...

Экструдер нити для 3D принтера Добрый день!Хочу поделиться своим опытом по сборке экструдера нити для 3D принтера. Нужно признаться что собирал я не спеша ввиду разных обстоятельств. Было допущено просто колоссальное число ошибок ) Ценой как правило некоторых ошибок было как деньги так и время. В первую о...

Простая реализация небольших CAM на ПЛИС Введение Как-то раз мне потребовалось по работе реализовать небольшой блок ассоциативной памяти. Почитав, как это делается у Xilinx на BlockRAM (BRAM) или на SRL16, я несколько опечалился, так как их реализации занимали довольно много места. Решил попробовать сделать его сам...

Когда вредно хешировать ПредисловиеДанный текст будет являться одной из переписанных глав для учебного пособия по защите информации кафедры радиотехники и систем управления, а также, с этого учебного кода, кафедры защиты информации МФТИ (ГУ). Полностью учебник доступен на github (см. также draft re...

Митапы Saint TeamLead Conf для углубления в тему В продолжение серии статей о том, как на Saint TeamLead Conf мы собираемся раскрыть три важнейших блока работы тимлида — работу с командой, инструментарий тимлида и развитие осознанности — сегодня расскажу о темах, которые будем обсуждать в формате камерных встреч, митапов, ...

Учебные проекты на Godot — Pong (часть 1) Создание и настройка сцены игрового процесса Приветствую вас, хабровчане! Как и обещал в конце прошлой статьи, я обратил свой взгляд на игровой движок. Правда мне больше приглянулся Godot. Почему? Тема для отдельной статьи размышления, а я не умею долго думать и, тем более, размышлять. Несмотря на то, что Pong имеетс...

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

Как сделать скриншот на Galaxy S10 Процесс создания скриншотов довольно прост, а причины для их создания бывают самые разные. Так, например, чтобы сохранить какую-нибудь публикацию из Instagram или Twitter для последующей ее публикации в Facebook, нужно сделать скриншот. Полезным это может оказаться и тогда,...

О новых стандартах C++ Сегодня у меня довольно короткий пост. Я бы его и не писал, наверное, но на Хабре в комментах довольно часто можно встретить мнение, что плюсы становятся хуже, комитет делает непонятно что непонятно зачем, и вообще верните мне мой 2007-й. А тут такой наглядный пример вдруг п...

Ломаем игру на память: целый детектив Эта игра не давала нам покоя несколько месяцев. Правила очень простые: надо выкладывать карточки с картинками и придумывать сказку. Потом вспомнить её. Простая штука на запоминание, подумали мы. Сто раз в такое играли, и всё наше образование просто вопит, что сейчас буд...

Предложения по программе для учета коммерческой 3D-печати Тут много раз спрашивалось и писалось по вопросам расчета стоимости коммерческой печати. Большинство, как я понял, считает или просто на калькуляторе или делает табличку в Excel для расчета стоимости.Я решил попробовать убить всех зайцев одним выстрелом - написать программу ...

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

Исповедь рекламного агентства из глубинки: взлёты, падения и внедрение CRM «Я CIO, CTO, швец, жнец и на дуде игрец в небольшом рекламном агентстве в топ-85 регионе России. На первый взгляд, все эти полиграфии, концепции и нанесения страшно далеки от Хабра. Однако это не так. Сложные станки, автоматизация бизнеса, CRM, склад — неполный список ИТ-инф...

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

Kaspersky о безопасности решений для удаленного доступа Эксперт «Лаборатории Касперского» Павел Черемушкин изучил безопасность промышленных систем удаленного доступа (Virtual Network Computing, VNC). В результате исследования в четырех таких решениях было обнаружено 37 уязвимостей, многие из которых годами переходят из ...

Arend – язык с зависимыми типами, основанный на HoTT (часть 1) В данном посте мы поговорим о только что выпущенном JetBrains языке с зависимыми типами Arend. Этот язык разрабатывался JetBrains Research на протяжении последних нескольких лет. И хотя репозитории уже год назад были выложены в открытый доступ на github.com/JetBrains, полноц...

Есть вопросы по ремонту техники Apple? Задавайте, а мы ответим! Техника Apple славится своей надежностью, однако проблемы, как известно, бывают у всех, и iPhone, iPad, компьютеры Mac — не исключение. Иногда неполадки вызваны износом или даже заводским браком (редко), но зачастую они возникают из-за неправильной эксплуатации. Прост...

Добровольная амнезия: манипуляции с гиппокампом для удаления болезненных воспоминаний У каждого человека есть воспоминания, которые он старается забыть. Некоторые из них просто неприятны, вызывающие грусть, стыд, страх, а некоторые могут наносить серьезный ущерб, вызывая у человека самые настоящие психические расстройства (ПТСР, тревожное расстройство и т.д...

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

[Перевод] Марвин Мински «The Emotion Machine»: Глава 8.1-2 «Творческий подход» 8.1 Творческий подход «Хотя такая машина многое могла бы сделать так же хорошо и, возможно, лучше, чем мы, в другом она непременно оказалась бы несостоятельной, и обнаружилось бы, что она действует не сознательно, а лишь благодаря расположению своих органов». — Декарт. Р...

[Из песочницы] Swagger – умная документация вашего RESTful web-API — обзор Junior back-end developer-а для новичков Предисловие Команда, в которой я сделала свои первые шаги на поприще написания промышленного кода, занималась разработкой удобного API к функциональности программного продукта на C# (для удобства назовем его, скажем, буквой E), существовавшего уже много лет и зарекомендов...

Тишина и DX12: MSI GeForce RTX 2080 VENTUS Выход первой игры с «настоящей» трассировкой лучей – Metro Exodus – существенно подстегнул интерес к видеокартам семейства RTX. Споры «стоит-не стоит» вспыхнули с новой силой, у каждой стороны хватает аргументов. Но, как оно обычно бывает, впечатление – штука субъективная, и...

Больше статистики сайта в своём маленьком хранилище Анализируя статистику сайта, мы получаем представление о том, что происходит с ним. Результаты мы сопоставляем с другими знаниями о продукте или сервисе и этим улучшаем наш опыт. Когда анализ первых результатов завершён, прошло осмысление иформации и сделаны выводы, начинае...

Функциональная обработка ошибок в Kotlin с помощью Arrow Привет, Хабр! Все любят runtime exceptions. Нет лучшего способа узнать о том, что что-то не было учтено при написании кода. Особенно — если исключения обваливают приложение у миллионов пользователей, и эта новость приходит паническим email'ом с портала аналитики. В суббот...

iPhone 11 Pro Max уступил китайским смартфонам по качеству фото Камера iPhone 11 Pro Max хороша, но не настолько, как у китайских смартфонов Несмотря на то что многие пользователи Android уверяют, что их смартфон лучше, чем iPhone, на самом деле часть из них втайне мечтает вырваться из оков «зелёного робота» и пересесть на iOS. Ведь како...

Проблемы использования сервиса Яндекс.Метрика В последние дни наблюдаем весьма странное поведение сервиса Яндекс.Метрика. Некоторые сайты, в которых нужно вводить/выбирать пользовательские данные, стали вести себя не очень адекватно. При полной очистке истории браузера проблема пропадает, однако далее всё возобновляется...

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

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

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

Как создать Python wrapper и не сойти с ума Недавно на Хабре прочитал статью про очень полезный инструмент, и так как я уже давно искал какой-то проект, чтобы начать контрибьютить, решил посмотреть, что там есть на гитхабе и чем можно помочь. Одно из issue было на счет создания обертки (дальше буду использовать wrappe...

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

Первые после анонса тесты видеокарты GeForce RTX 2060 показывают, что она зачастую не дотягивает до GTX 1070 Ti Компания Nvidia сегодня представила видеокарту GeForce RTX 2060, которую оценила в 350 долларов. Nvidia утверждает, что новинка должна показывать производительность на уровне GTX 1070 Ti. Что же, уже сейчас в Сети появился первый обзор, так что мы можем это проверить. ...

Фишинг на Хеллоуин: как получить сладости без гадостей? Только с прошлого года количество попыток фишинга возросло на 40,9%. При этом каждый месяц создается 1,5 миллиона новых фишинговых сайтов. Их количество резко возрастает перед каждым праздником или значимым мероприятием, а значит, сейчас нужно быть особенно аккуратными.Что м...

Обработка системных вызовов посредством LD_PRELOAD с единой точкой входа Делая пере-реализацию QInst на LLVM, я столкнулся с такой проблемой: QEMU в режиме эмуляции одного процесса естественным образом перехватывает все «гостевые» системные вызовы. В итоге плагин инструментации имеет единую точку входа для их предобработки, где можно по номерам S...

Попробовали первую аудио-платформу дополненной реальности. И это круто Приложения, в основе функциональности которых лежит дополненная реальность, пользуются популярностью среди владельцев iPhone. Но мы привыкли, что она ограничивается только ARKit — разработка способна распознавать габариты окружающего пространства и учитывать условия о...

10 полезных команд для Терминала в Mac Терминал — это мощный инструмент OS X. Вы даете своему компьютеру команды, и операционная система их покорно выполняет. С помощью терминала вы можете выполнить действия, которые значительно сложнее или невозможно выполнить, используя графический пользовательский интер...

Платформа NVIDIA GeForce RTX в основе свыше 40 моделей ноутбуков от всех крупных производителей К концу января на рынке будут доступны свыше 40 новых моделей в более чем 100 конфигурациях. В их основу легли графические процессоры NVIDIA GeForce RTX, которые объединяют производительные шейдеры нового поколения с трассировкой лучей в реальном времени и искусственным инте...

[Перевод] Thinking with Portals: создаём порталы в Unreal Engine 4 В этой статье я расскажу, как создавать порталы в Unreal Engine 4. Я не нашёл никаких источников, подробно описывающих такую систему (наблюдение сквозь порталы и проход через них), поэтому решил написать собственную. Что такое портал? Давайте начнём с примеров и объяснения...

Deno: время Node.JS уходит? Прошло примерно 18 месяцев с внутреннего релиза Deno, вышел preview release, появилось несколько статей на Хабре, и Райан ездит по конференциям и рассказывает о нём. Однако я нигде так и не видел сколько-нибудь вдумчивого разбора этого проекта — почему-то все ограничиваются...

Синглтон размещающий объекты в ROM и статические переменные(С++ на примере микроконтроллера Cortex M4) В предыдущей статье Где хранятся ваши константы на микроконтроллере CortexM (на примере С++ IAR компилятора), был разобран вопрос о том, как расположить константные объекты в ROM. Теперь же я хочу рассказать, как можно использовать порождающий шаблон одиночка для создания ...

Робот тестирует SAP ERP Мы в Альфастраховании используем SAP ERP как процессную систему урегулирования убытков. И так уж получилось, что мы ее немножко дорабатываем, это неизбежно приводит к возникновению в коде ошибок. Если ошибки доходят до продуктивной системы — это плохо. Этого надо избегать, о...

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

Сообщения об ошибках при установке Windows 10 станут более информативными Сообщения об ошибках в операционной системе Windows часто раздражают своей бесполезностью. Вы можете получить код ошибки, идентификационный номер ошибки в базе знаний (Knowledge Base) или же вовсе фразу «что-то пошло не так». К счастью, в Microsoft понимают наличие этой про...

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

Тест повторяемости Щупа из оптического концевика Добрый день, уважаемая публика!После предыдущей публикации о своём щупе, были высказаны сомнения в полученных тогда измерениях повторяемости. Я вполне их понимаю и не считаю прям совсем необоснованными. Действительно выглядит это прям чересчур))   Напомню, что в двух се...

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

VueJs + VueRouter + modal. Очередной велосипед Добрый день. В этой статье я разберу способ, который позволяет при смене адреса показывать модальное окно для наших нужд. Я знаю, что есть собственное решение для компонента «modal» на официальном сайте. Вдобавок к этому на Хабре есть много других статей, посвященных теме мо...

Ошибка с миграцией локали ru-RU в Google Chrome и как от нее избавиться Это статья о том, как я боролся с последствиями некорректной миграции «ru-RU» на «ru» в Google Chrome. Это статья для тех, у кого Chrome выглядит примерно так: или, говоря простым языком, упрямо продолжает отображать сайты на русском языке несмотря на то что везде в наст...

Вредные советы: как правильно писать техническую документацию? Часть вторая Советы по грамотному написанию технической документации для пользователей. Часть 2 Продолжение руководства нашего технического писателя Андрея Старовойтова, которое поможет сделать вашу пользовательскую документацию проще и понятнее. Начало статьи можно почитать тут, а то...

Возможно ли без Redux? На сегодняшний день можно найти уйму позиций, где требуется react/redux. React прекрасен, вопросов нет. Вопрос к Redux — возможно ли без него. Если погуглить чуть-чуть, найдется добротная статья на хабре (https://habr.com/ru/post/350850/), где автор задается таким же вопросо...

Тесты или типы? — Rust version Пару дней назад 0xd34df00d опубликовал здесь перевод статьи, описывающей, что можно узнать о функции в разных языках, если рассматривать её как "чёрный ящик", не используя информацию о её реализации (но, разумеется, не мешая ей пользоваться компилятору). Разумеется, получаем...

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 21. Дистанционно-векторная маршрутизация RIP Тема сегодняшнего урока – RIP, или протокол маршрутной информации. Мы поговорим о различных аспектах его применения, о его настройке и ограничениях. Как я уже говорил, тема RIP не входит в учебный план курса Cisco 200-125 CCNA, однако я решил посвятить этому протоколу отдель...

«Это не брак, прочитайте инструкцию». Samsung объяснила мерцающие пиксели на экране Galaxy S10+ Некоторые из первых пользователей Samsung Galaxy S10+ начали жаловаться на проблему с экраном —  мерцающие пиксели, опасаясь, что такие дисплеи могут быстро выйти из строя.  Жалобы начали поступать во всё большем количестве и на разных форумах. Тем не м...

Как и зачем чистить кэш в Google Chrome на Android Кэш в Google Chrome Несмотря на то что мобильная версия Google Chrome, в отличие от настольной не перегружает процессор и не расходует всю доступную оперативку, назвать её экономичной довольно сложно. Даже в отсутствие расширений и тем, которые оказывают негативное влияние н...

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

[Перевод] Собеседование: Swift. Вопросы и ответы Языку программирования Swift всего четыре года, но он уже становится основным языком разработки для iOS. Развиваясь до версии 5.0, Swift превратился в сложный и мощный язык, отвечающий как объектно-ориентированной, так и функциональной парадигме. И с каждым новым релизом в н...

[Перевод] Грокаем DLR Предисловие переводчика Это скорее вольный пересказ, а не перевод. Я включил в эту статью только те части оригинала, которые имеют непосредственное отношение к внутренним механизмам работы DLR или объясняют важные идеи. Примечания будут заключены в квадратные скобки Многие...

Заблуждения начинающих C# разработчиков. Пытаемся ответить на стандартные вопросы Недавно мне выпала возможность пообщаться с довольно большим количеством начинающих специалистов по разработке на языке C#. Многие из них интересуются языком и платформой, и это очень круто. Среди зеленых юниоров распространено мракобесие по поводу очевидных (только что проч...

Ассоциация 3д-образования и "техзадание" Здравствуйте, дорогие форумчане. Сегодня я хотел бы вам рассказать про ассоциацию 3д образования, а точнее про один из её перлов. Иначе это не назвать, так как серьёзным подходом это не назвать. Некоторые данные могут быть изменены в целях скрытности, но я думаю если уладитс...

[Из песочницы] Как просто наблюдать за состоянием сайта Чтобы дистанционно следить за работоспособностью серверов, профессионалы используют специальные программные комплексы, вроде Zabbix или Icinga. Но, если вы начинающий владелец или администратор одного-двух веб-сайтов с небольшой нагрузкой, то нет нужды в больших системах мон...

VPN в каждый дом или как приручить Дракона Ниже я расскажу о том, как заменить ваш VPN провайдер собственным сервером, развернутым на DigitalOcean с использованием WireGuard. В чем главная проблема VPN провайдеров? Вы не знаете что они делают с вашими данными. Очень мало VPN провайдеров прошли сторонний аудит и почти...

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

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

Не прорыв, а провал: Почему с Toyota Land Cruiser 150 всё очень плохо – блогер Изначально эксперт был настроен не так критично, но «Прадик» быстро вывел его из себя. Начиная свой обзор на канале «Вафля» блогер сразу предупредил, что сперва он не планировал так «разносить» Toyota Land Cruiser Prado 150, однако эта японская «легенда» сломалась практичес...

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

Почему не SQL? Без преувеличения можно сказать, что SQL — один из самых распространенных в мире языков. Информационные системы могут быть написаны на Java, Python, JavaScript, C#, PHP и десятке других языков, но SQL база в том или ином виде будет в абсолютном большинстве таких систем. Ср...

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

Сообщения об ошибках установки Windows 10 скоро станут понятней Обычным пользователям их будет гораздо проще понятьСообщения об ошибках являются нормой для пользователей ПК, но это не делает их менее расстраивающими, когда они всплывают; особенно когда они не предлагают много полезной информации, сообщает ITbukva.com.Плохо объясненные ош...

Можно ли считать статистику при малом количестве данных? В целом ответ – да. Особенно, когда есть мозги и знание теоремы Байеса. Напомню, что среднее и дисперсию можно считать только, если у вас имеется определенное количества событий. В старых методичках СССР РТМ (руководящий технический материал) говорилось, что чтобы считать ср...

Не очередной язык программирования В последнее время на рынке появилось огромное количество новых языков программирования: Go, Swift, Rust, Dart, Julia, Kotlin, Hack, Bosque – и это только из числа тех, которые на слуху. Ценность того, что эти языки привносят в мир программирования, тяжело переоценить, но,...

RISC-V: RocketChip в неестественной среде обитания Недавно на Хабре публиковалась статья о том, как поэкспериментировать с архитектурой RISC-V без затрат на «железо». А что, если сделать подобное на отладочной плате? Помните мемы про генератор игр: штук 20 галочек в стиле «Графика не хуже Кризиса», «Можно грабить корованы» ...

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

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

Klipper TMC2208 UART Не большое продолжение темы TMC2208 v2 UART.Многих заинтересовала тема прошивки Klipper и UART. Что-ж, попробую удовлетворить спрос.Для чего? Сами по себе драйвера тихие, но глючные и слабые из-за своего автоматического режима работы и частым явлением является пропуск шагов....

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

[Перевод] Используйте __main__.py Зачем нужен __init__.py знает, наверное, любой питонист, но что насчёт __main__.py? Я видел немало проектов либо рабочих, либо на Github, которые не используют это магический файл, хотя могли бы сделать свою жизнь проще. На мой взгляд, __main__.py это лучший способ для взаим...

[Перевод] Подключение MySQL после ошибки 1040: слишком много соединений И снова ERROR 1040… Техподдержка получает много жалоб на эту печально известную ошибку: ERROR 1040: Too many connections — слишком много соединений. Проблема очевидна: приложение или пользователи создают больше соединений, чем допускает сервер, то есть текущее число соединен...

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

Анализ кода CUBA Platform с помощью PVS-Studio Для Java программистов существуют полезные инструменты, помогающие писать качественный код, например, мощная среда разработки IntelliJ IDEA, бесплатные анализаторы SpotBugs, PMD и другие. Всё это уже используется в разработке проекта CUBA Platform, и в этом обзоре найденных...

Самые распространенные проблемы Bluetooth-наушников и их решение Проблема с Bluetooth-наушниками? Без паники. Сейчас все решим! Совсем недавно мы писали вам о самых достойных представителях из мира беспроводных наушников. Но любое электронное устройство может работать некорректно, как бы вы хорошо с ним не обращались. При этом с проблемой...

[Из песочницы] Управление подставкой для ноутбука с помощью digispark Решил написать статью об очень простом устройстве, сделанным за два вечера. Решило оно давнюю проблему, чему я сильно рад и использую его по сей день. Отработало исправно оно около 3 месяцев. Собственно вот что получилось в итоге. Кого заинтересовало, прошу под кат. Читат...

[Перевод] Погружение в Move — язык программирования блокчейна Libra от Facebook Далее мы рассмотрим в деталях основные характеристики языка Move и в чем его ключевые различия с другим, уже популярным языком для смарт-контрактов — Solidity (на платформе Ethereum). Материал основан на изучении доступного он-лайн 26-страничного whitepaper-а. Введение Move...

6 советов по измерению удовлетворенности пользователей Часто проводится много дискуссий о том, что измерять при оценке  службы поддержки ИТ и управления ИТ-услугами. В книгах ITIL предлагают множество всевозможных параметров: ключевые показатели эффективности (KPIs), критические факторы успеха (CSF) — так много, что л...

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

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

Проверяем исходный код Roslyn Время от времени мы возвращаемся к проектам, которые уже проверяли ранее с помощью PVS-Studio и писали про это статьи. Делать это интересно по двум причинам. Во-первых, чтобы понять, насколько лучше стал наш анализатор. Во-вторых, чтобы отследить, обратили ли авторы проекта...

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

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

Наблюдаем Солнце: 5 видов гаджетов, от простых до «профессиональных» Привет, Хабр. Как ни странно, но на Хабре/Geektimes было довольно много статей по астрономии, но про наблюдение нашего самого яркого светила практически нет ни одной статьи. Восполним этот пробел, и посмотрим как можно наблюдать Солнце. Ведь как известно, просто так в телес...

Делаем ретро-игру из 80-х или как готовить макеты для лазерной резки Хабр, привет! Так получилось, что меня давно просили сделать старую настольную игру из СССР — «Сражение». Вот пришло время выполнять обещание, заодно решила показать как создавать макеты для лазерной резки и что получается в итоге. Большой сложности в этом нет, но есть неко...

Microsoft объединяет свои мобильные офисные приложения в одно Microsoft предлагает пакет программ «все в одном» Компания Microsoft известна, в первую очередь, своей настольной операционной системой Windows, а также весьма популярным офисным пакетом приложений (ставшим, фактически, стандартом де-факто в индустрии) в лице прило...

PVS-Studio идёт в облака: GitLab CI/CD Эта статья является продолжением цикла публикаций об использовании PVS-Studio в облачных системах. На этот раз мы рассмотрим работу анализатора совместно с GitLab CI — продуктом от GitLab Inc. Интеграция статического анализатора в CI систему позволяет выявить баги сразу пос...

Отладка cети с помощью eBPF (RHEL 8 Beta) Всех с прошедшими праздниками! Нашу первую статью после праздников мы решили посвятить линуксу, то есть под наш замечательный курс «Администратор Linux», который у нас входит в когорту самых динамичных курсов, то есть с наиболее актуальным материалами и практиками. Ну и, со...

Plants vs. Zombies 3 официально анонсирована, на Android стартовал альфа-тест Совершенно внезапно Electronic Arts и студия PopCap Games объявили о разработке новой Plants vs. Zombies 3. В Google Play уже стартовало предварительное альфа-тестирование проекта. Оно будет проходить по этапам, поэтому не факт, что у вас даже получится присоединиться к игр...

[Из песочницы] Использование let объявлений переменных и особенности образуемых при этом замыканий в JavaScript Написать данную заметку меня сподвигло прочтение статьи на Хабре «Var, let или const? Проблемы областей видимости переменных и ES6» и комментариев к ней, а также соответствующей части книги Закаса Н. «Understanding of ECMAScript 6». Исходя из прочитанного я вынес, что не всё...

6 скрытых функций историй в Instagram, о которых вы не знали Instagram на сегодняшний день — это одна из самых популярных социальных сетей. Она постоянно обрастает новыми и новыми функциями. Уже довольно давно в Instagram появились истории (или сторис), которые можно публиковать в специальной ленте и они будут доступны вашим по...

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

[Перевод] LLVM IR и Go В этой статье мы рассмотрим, как построить программу на Go, такую, как компилятор или статический анализатор, которая взаимодействует с фреймворком компиляции LLVM, используя язык ассемблера LLVM IR. TL;DR мы написали библиотеку для взаимодействия с LLVM IR на чистом Go, см...

Fix by Root Nation #4: Увеличиваем плавность в играх "разгоном" частоты обновления монитора Если у вас обычный монитор (не геймерский с повышенной частотой) и вы любитель динамичных шутеров (CS:GO, CoD, Battlefield), то наверняка у вас время от времени появляется ощущение недостатка плавности происходящего на экране. Вот вроде бы всё хорошо: Full HD, 60 FPS, игра и...

Управление мощностями: в поисках идеального баланса Здравствуйте! Меня зовут Иван Давыдов, я занимаюсь исследованиями производительности в Яндекс.Деньгах. Представьте, что у вас есть мощные сервера, на каждом из которых размещается ряд приложений. Если последних не очень много, они не мешают друг другу работать — им комфортн...

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

Элементарно, Watson: вы интегрируетесь с Voximplant Работа с естественными языками (NLU, NLP) – зона активной конкуренции между IT-гигантами. Равно как и развитие ИИ. Ну и, соответственно, пересечение этих множеств – тоже горячая ниша, за которой интересно наблюдать и осваивать новое. Voximplant давно подружился с гугловским...

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

Способы применения и искажения меткости в играх. Наглядные графики для сравнения Вычислять факт попадания в играх на основе полученной меткости можно по разному: — сравнивая с одним псевдослучайным числом (которое тоже можно получать по разному [1]); — сравнивая с наибольшим или наименьшим из двух псевдослучайных чисел; — сравнивая среднее из двух и б...

Язык программирования Zig Первым комментарием к замечательной статье Субъективное видение идеального языка программирования оказалась ссылка на язык программирования Zig. Естественно, стало интересно, что же это такое за язык, который претендует на шину C++, D и Rust. Посмотрел — язык показался симп...

Лучшие игры для тренировки вашего мозга Что наша жизнь? Игра! В данном случае — игра, которая поможет вам натренировать мозг Современный смартфон позволяет вам получить доступ ко множеству самых разных приложений. Вы можете читать в интернете интересные статьи (в том числе и на нашей страничке в Яндекс.Дзен)...

[Перевод] Разбор: 23 популярные ошибки в письменном английском и как их избежать Даже если вы учите английский язык много лет, скорее всего время от времени совершаете ошибки при письме. Я нашел интересный пост с подборкой более чем двух десятков распространенных ошибок и советами о том, как их избежать. Представляю перевод этого полезного материала. Ч...

5 способов сделать Python-сервер на Raspberry Pi. Часть 1 Привет, Хабр. Сегодня в большом числе проектов домашней (и не только) автоматизации используется Raspberry Pi. При этом достаточно удобно иметь не только прямой доступ к устройству, но и использовать браузер — это позволяет выполнять необходимые действия и с компьютера, и с...

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

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

Сайзеры wxWidgets Привет Хабр! Сегодня хочу немного рассказать о своем опыте применения сайзеров в wxWidgets. Всю свою сознательную 'жизнь' на С++ я провёл в среде C++Builder с редкими вылазками в Misrosoft VC. В поисках чего-то нового решил попробовать связку CodeBlocks и wxWidgets. И сраз...

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

Так будут выглядеть видеокарты в 2035 году: Intel показала несколько концептов Компания Intel только готовится выйти на рынок дискретных видеокарт, и пока непонятно, насколько серьезным игроком она станет в сегменте. Тем не менее, компания при каждом удобном случае старается напомнить о том, насколько рынок GPU для нее интересен. Вот и на текущей ...

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

Очередное незавоевание теней в Phaser, или польза велосипедов Два года назад я уже экспериментировал с веществами тенями в Phaser 2D. На последнем Ludum Dare мы внезапно решили сделать хоррор, а какой же хоррор без теней и света! Хрустнул я костяшками пальцев… … и ни черта не успел за LD. В игре конечно есть немного света и теней, но ...

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

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

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

Дизайн интерфейсов встраиваемых систем Осциллографы Встраиваемые и промышленные системы — моя любимая тема в разработке дизайна. Когда делаешь интерфейс ПО какого-нибудь лазера или яхты — это чистый кайф и творчество. На прошлой неделе я посетил выставки expoelectronica и embeddedday именно как UI разработчик. Ц...

Samsung сделала приложение, которое будет работать только на Galaxy S10 5G Никто, я думаю, не станет спорить с тем, что AR (дополненная реальность) – тренд, которому производители в мире мобильной индустрии уделяют, пожалуй очень много внимания. К сожалению, в большинстве случаев это повышенное внимание приводит к созданию очередных «анимоджи», ис...

Опубликован первый снимок, сделанный пентакамерным флагманом Nokia 9 PureView Завтра HMD Global официально представит несколько смартфонов, в числе которых окажется и флагманская модель Nokia 9 PureView. Ее особенностью является камера с пятью объективами. Кое-какие подробности мы о ней уже знаем, а сейчас в Сети появилось и первое фото, сделанно...

Дельта с прямоугольным расположением тяг (Экперимент и Вывод). Дельта с прямоугольным расположением тяг (Экперимент и Вывод).Как то давно загорелся желанием сделать принтер со столом не меньше 200х300.У самого был принтер Delta Anycubic Kossel Pulley, у него стол круглый с рабочим диаметром 180мм. Решил сделать невозможное и сделать дел...

AMD решила снизить цены на видеокарты Radeon RX 5700 и RX 5700 XT ещё до старта продаж Только вчера вечером мы успели ознакомиться с первым полноценным тестом видеокарт Radeon RX 5700 и RX 5700 XT в играх и сделать предварительные выводы, как сегодня стало известно, что выводы придётся менять. Источник утверждает, что AMD решила снизить цены на видеокарты...

[Из песочницы] Матрёшка Си. Слойная система языка программы Попробуем представить химию без Периодической системы Менделеева (1869). Сколько же элементов надо было держать в голове, причём в произвольном порядке… (Тогда — 60.) Для этого достаточно подумать об одном или нескольких сразу языках программирования. Те же чувства, тот же...

Быстрый старт: Go + Apache Kafka + Redis В последнее время я, в силу необходимости, просмотрел все объявления о вакансиях Go-разработчиков, и в половине из них (как минимум) упоминается платформа для обработки потоков сообщений Apache Kafka и NoSQL база данных Redis. Ну и все, конечно, хотят, чтобы кандидат знал Do...

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

TDDx2, BDD, DDD, FDD, MDD и PDD, или все, что вы хотите узнать о Driven Development Просматривая статьи по проектированию ПО, я постоянно встречал тучу невиданных сокращений и вскользь упоминаемых практик разработки. TDD — ну, это все знают, сначала пишем тесты, а потом остальной код. BDD — что-то знакомое, вроде как, тоже тесты, но особенные. TDD — снов...

Сообщения об ошибках при установке Windows 10 станут информативнее Теперь можно будет попробовать сразу решить проблему.

Доступно для скачивания Windows 10 Build 18362.418 Накопительные обновления Windows 10 за октябрь 2019 года теперь доступны для всех поддерживаемых версий ОС. Компьютеры с обновлением May 2019 Update получают Windows 10 Build 18362.418 с исправлением печати. Прямые ссылки для загрузки автономных установщиков Windows 10 KB451...

[Из песочницы] Замечательная аннотация Version в JPA Введение Итак, начнем! Что же означает аннотация Version в JPA? Если коротко, то она отвечает за блокировки в JPA. Данная аннотация решает одну из проблем, которые могут возникнуть в результате параллельного выполнения транзакций. Какие же могут возникнуть проблемы? Пот...

ТЕСТ: Сможете ли вы решить простые математические примеры? Вся техника мира вышла из строя, ручек и бумаги больше не осталось, да и вообще творится какой-то апокалипсис. Чтобы вернуть всё на свои места, нужно без ошибок решить пару примеров. Да-да, в уме! Проверьте, сможете ли вы совладать со всякими скобками, отрицательными числами...

Предварительный обзор DJI Mavic Mini. Самый компактный дрон В последнее время тема коптеров довольно плохо раскрыта, ведь производители не делают упор на чем-то принципиально новом. Гораздо проще поставить чуть более крутую камеру и все, можно выпускать в продажу. Специалисты из DJI решили пойти иным путем и показали достаточно круто...

Как быстро открыть конкретный раздел в настройках iOS Это стало возможным с приложением «Команды» для iOS Пару недель назад на Reddit было обнаружено сообщение, в котором утверждалось, что Apple восстановила возможность запуска определенных разделов приложения «Настройки» с помощью приложения «Команды» в iOS и iPadOS ...

[Перевод] Шардинг в Блокчейне Всем привет, я один из разработчиков Near Protocol, который, среди прочего, реализует шардинг, и в этой статье хочу подробно рассказать что вообще такое шардинг в блокчейне, как он работает, и коснуться ряда проблем, которые возникают при попытке его построить. Хорошо извест...

[Перевод] Самое простое объяснение принципа работы современных алгоритмов симметричного шифрования (Нашёл в твиттере тред с очень крутым объяснением работы симметричных шифров. Его написал Colm MacCárthaigh один из основных контрибьюторов Apache. Я спросил разрешение Колма на перевод, он любезно согласился). Я объясню вам доступным языком, что происходит при шифровании да...

[Из песочницы] Новый проект братьев Дуровых: Telegram Open Network Приближается момент полномасштабного запуска самого ожидаемого криптопроекта, который действительно может изменить мир. К началу ноября сеть TON будет запущена и все смогут в полной мере оценить её достоинства и начать использовать по назначению: разработчики — создавать пол...

3 приложения, которые помогут выявить проблему на Android-смартфоне до поломки Давайте признаемся, что мы редко задумываемся о профилактике смартфона, пока он хорошо работает. При этом как только наш гаджет начинает «плохо себя вести», мы просто перелопачиваем магазин приложений для того, чтобы установить различные «чистильщики памяти» и другие подобн...

Поиграем-3. Пазл - "Зверинец" Доброго дня, господа тудэевцы!Заканчивается очередной учебный год у наших спиногрызов и настаёт время, когда они будут болтаться без дела дома и на улице. А не заинтересовать ли нам наших любимых оболтусов чудесами 3D печати? Такскать, для развития костей мозга? Вот как раз ...

Автоматизация Для Самых Маленьких. Часть Вторая. Дизайн сети В первых двух статьях я поднял вопрос автоматизации и набросал её фреймворк, во второй сделал отступление в виртуализацию сети, как первый подход к автоматизации настройки сервисов. А теперь пришло время нарисовать схему физической сети. Если вы не на короткой ноге с устрой...

Основы шаблонов С++: шаблоны функций Дисклаймер: статья была начата еще в феврале, но, по зависящим от меня причинам, закончена не была. Тема очень обширна, поэтому публикуется в урезаном виде. Что не поместилось, будет рассмотренно позже. Невозможно разбираться в современном С++, не зная, что такое шаблоны п...

[Из песочницы] Учимся стандарту проектирования — Entity Relationship Здравствуйте. Данная статья посвящена одной из самых популярных, а также и многим знакомой, модели проектирования — ER(Entity Relationship), которая была предложена учёным, в области информатики — Питером Ченом, в 1976 году. По ходу статьи простым языком на простых примера...

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

[Из песочницы] Применение Go в производственных системах. Валидаторы Добрый день, Хабр! Я довольно часто начинаю утро с просмотра хабра и наконец решил внести свой вклад в данный процесс изучения интересного. Если всё сложится, то это первая моя статься из цикла применения языка GO на производственных системах. Я хочу рассказать некоторые т...

Пишем свой язык программирования, часть 2: промежуточное представление программ Введение Приветствую всех, кто заглянул почитать мою очередную статью. Повторюсь, я описываю создание языка языка программирования, на основе проведенной ранее работы, результаты которой описал в этом посте. В первой части (линк: habr.com/post/435202) я описал этапы прое...

[Перевод] Как встроить С-библиотеку в Swift-фреймворк В 2014 году был представлен Swift, новый язык для разработки приложений экосистемы Apple. Новинка принесла не только новые возможности и функции, но и проблемы — тем, кто хотел пользоваться старыми добрыми C-библиотеками. В этой статье я рассмотрю одну из них — бандлинг C-...

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

Мнение: Почему Google Play по подписке не нужен На прошлой неделе стало известно, что Google тестирует новый сервис под названием Google Play Pass. Он станет составной частью каталога Google Play, но при этом позволит пользователям получать доступ к премиум-версиям сотен приложений и игр без встроенных покупок за 5 долла...

Mini cube factory ЧПУ 5 в 1 В сегодняшней статье опишу конструкцию рамы стола.Габариты печатаемой модели составляют 300*600*350.Лифты собраны из набора деталей, только лишь по тому что конструкция модульная, универсальная и собирается как конструктор лего под нужные вам спеки!  Использовал подшипники д...

Нельзя разблокировать iPhone X – как решить проблему После выхода нового статусного iPhone X, многие владельцы приобрели возможность попробовать в работе новую и вполне безопасную технологию Face ID, которая позволяет быстро разблокировать устройство. Дабы система смогла сканировать владельца, нужно направить фронтальную камер...

[Перевод] Python как предельный случай C++. Часть 2/2 Продолжение. Начало в «Python как предельный случай C++. Часть 1/2». Переменные и типы данных Теперь, когда мы окончательно разобрались с математикой, давайте определимся, что в нашем языке должны означать переменные. В С++ у программиста есть выбор: использовать автоматичес...

Как настроить типы задач и не сойти с ума Вводная частьВ предыдущем посте я писал как организовать процесс “грумминга” задач в системе JIra так чтобы “Менеджеру продукта” было удобно осуществлять навигацию по всему Беклогу продукта. Продолжая продуктовую тему напишу о том как я долго шел к пониманию того — что такое...

Какие проблемы может повлечь за собой гнутый iPad Pro В конце октября прошлого года, Apple показала нам обновленное поколение iPad Pro. Как выяснилось позже, тонкий корпус планшетов оказался подвержен изгибам — причем данный дефект мог проявиться не только в процессе использования, но даже и на абсолютно новом устройстве. Пред...

«Ты узнаешь ее из тысячи...» или классифицируем изображения с веб-камеры в реальном времени с помощью PyTorch Вот бывает же в жизни такое. Сидишь себе не шалишь, никого не трогаешь, починяешь примус, а тут из этого примуса, из телевизора, да и вообще из каждого утюга, до тебя доносится: «нейронные сети, глубокое обучение, искусственный интеллект, цифровая экономика…». Я — человек,...

Что важнее при кластеризации – интент запроса, или пересечения по ТОПам? Пример Вопрос пользователя: Есть информационный ключ (например «маска с репейным маслом против выпадения волос») При кластеризации мне его нужно распределить в одну из групп «репейная маска для волос» или «маска против выпадения волос» Если смотреть по топу, то пересечение по трем ...

Как использовать Google Lens и Google Переводчик в режиме офлайн Пользоваться переводом можно и без интернета Находясь за границей, нам не всегда хватает знания иностранных языков для того, чтобы объясниться с местными жителями или просто прочитать те же самые вывески магазинов или дорожные указатели. Для того, чтобы избежать неудобств, у...

[Перевод] Статический анализ больших объёмов Python-кода: опыт Instagram. Часть 1 Серверный код в Instagram пишут исключительно на Python. Ну, в основном это именно так. Мы используем немного Cython, а в состав зависимостей входит немало C++-кода, с которым можно работать из Python как с C-расширениями. Наше серверное приложение — это монолит, представ...

Если окна окрывают, значит — это кому-нибудь нужно Однажды мне потребовалось открыть окно из консольного приложения. Я хотел это сделать используя wpf, но информации, разбросанной по сети оказалось мало, так что я решил как-то систематизировать и представить этот маленький туториал. Читать дальше →

[Перевод] Рукопожатие SSH простыми словами Secure Shell (SSH) — широко используемый протокол транспортного уровня для защиты соединений между клиентами и серверами. Это базовый протокол в нашей программе Teleport для защищённого доступа к инфраструктуре. Ниже относительно краткое описание рукопожатия, которое происхо...

[Перевод] Как подписывать приложения для macOS Catalina 10.15 [Прим. пер.: переведя вызвавший широкое обсуждение на Хабре пост, я заинтересовался новыми правилами для разработчиков ПО, введёнными компанией Apple. В этой статье рассказывается о личном опыте освоения правил одним из разработчиков игр.] Введение В новой версии macOS App...

[Перевод] Сравнение одинакового проекта в Rust, Haskell, C++, Python, Scala и OCaml В последнем семестре университета я выбрал курс компиляторов CS444. Там каждая группа из 1-3 человек должна была написать компилятор из существенного подмножества Java в x86. Язык на выбор группы. Это была редкая возможность сравнить реализации больших программ одинаковой фу...

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

[Из песочницы] 10 самых распространенных ошибок Spring Framework Привет, Хабр! Представляю вашему вниманию перевод статьи «Top 10 Most Common Spring Framework Mistakes» автора Toni Kukurin. Spring, вероятно, один из самых популярных Java-фреймворков, а также могучий зверь для укрощения. Хотя его базовые концепции довольно легко понять, д...

Печать нейлоном от тримит Некоторое время назад кто-то писал, что попробовал леску завода Тримит.У автора возникли проблема с межслойной адгезией и вероятнее всего это было из-за специальных присадок в леску от спекания. Спекание лески для триммера  травы - неприятность, так что с этим борются.О...

Не ради рекламы, а благодарности ради. Здравствуйте друзья тридэшники!!! Решил на днях заказать пару катушек пластика, т.к. я печатаю в основном для себя, то обычно заказываю не дорогой пластик, зашел на сайт BF посмотреть, что есть по акции или переходный купить, в итоге заказал 3 катушки переходного пластика 1 ...

AirTest IDE и Image Recognition — автоматизация тестирования мобильных игр на основе распознавания изображений В предыдущей статье мы познакомились с AirTest IDE, но, на всякий случай, давайте повторим: AirTest IDE разработан компанией NetEase и предназначен для "hard-to-automate" приложений, таких как, например, игр. Собственно на них и делается основной упор разработчиками, хотя эт...

Что делать, если Android не удаётся получить IP-адрес сервера для доступа в интернет Регулярные баги и ошибки свойственны любой операционной системе, и чинят их разработчики, к сожалению, не всегда сразу. Если вы столкнулись на Android с проблемой подключения к сети, а система вам сообщает, что ей не удаётся найти IP-адрес сервера, знайте, вы не одиноки. С ...

[Из песочницы] Дифференциальная геометрия кривых. Часть 1 Предисловие Привет всем читателям. Просто решил написать статью о дифференциальной геометрии кривых. На мой взгляд, тема из «непрерывной» математики будет большинству читателей Хабра полезна, по крайней мере ближайший час =), учитывая что это IT ресурс, а IT это где то ближ...

Охотник (Bloodborne) и Пустынная ведьма (Dark Souls III). Величайшие игры от From Software. Всем доброго времени суток. После отпуска было дикое желание что-то напечатать, Давно намеревался сделать персонажей из любимых игр. Пластик АБС от FD Plast, белый. Руки и голову печатал высотой слоя 0,12, толщина стенки 0,8. Принтер хорошо с этим справляется, пробовал парам...

Sigma признает наличие дефекта в объективах 60-600mm F4.5-6.3 DG OS HSM | Sports и 70-200mm F2.8 DG OS HSM | Sports, приводящего к зависанию камер Компания Sigma опубликовала сервисное сообщение, адресованное владельцам объективов 60-600mm F4.5-6.3 DG OS HSM | Sports и 70-200mm F2.8 DG OS HSM | Sports. Производитель признал, что в этих объективах есть дефект. Если такой объектив установлен на камеру, «при на...

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

Вейвлет-анализ.Часть 3 Введение При проведении CWT анализа средствами библиотеки PyWavelets (бесплатное программное обеспечение с открытым исходным кодом, выпущенное по лицензии MIT) возникают проблемы с визуализацией результата. Предложенная разработчиками тестовая программа по визуализации прив...

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

[Из песочницы] Идея, как можно предоставлять сотрудникам временный доступ к ресурсам клиента, не светя лишний раз пароли Небольшая предыстория После лекции на HighLoad++ 2017. Я посмотрел этот доклад, “Как мы админа увольняли”, в записи. Докладчик сказал, что все web компании испытывает проблемы с паролями, и у меня появилась идея как это решить. Скорее всего кто-то уже сделал, но, если честно...

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

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

[Перевод] Воссоздание старой DOS-игры на C++ 17 В 2016 году я начал работу над хобби-проектом по реверс-инжинирингу игры Duke Nukem II и воссозданию с нуля его движка. Проект имеет название Rigel Engine и выложен в open source (его страница на GitHub). Сегодня, более чем два с половиной года спустя на моём движке уже можн...

Сборка Android-проекта в Docker-контейнере Разрабатывая проект под платформу Android, даже самый небольшой, рано или поздно приходится сталкиваться с окружением для разработки. Кроме Android SDK, необходимо чтобы была последняя версия Kotlin, Gradle, platform-tools, build-tools. И если на машине разработчика все эти ...

[Из песочницы] Мой опыт разработки на Playcanvas Существуют ли среди читателей люди, которые хотя бы краем уха слышали, что есть некий 3D движок для разработки WebGL приложений с редактором, похожим на Unity, только в браузере? Тема крайне непопулярная, но я стал одним из таких людей почти 2 года назад. И теперь мне захоте...

Взгляд со стороны EcmaScript на общую теорию ООП Привет, Хабр! До сего дня я занимался лишь переводами интересных, на мой взгляд, статей англоязычных авторов. И вот настала пора самому что-то написать. Для первой статьи я выбрал тему, которая, я уверен, будет полезна junior-разработчикам, стремящимся дорасти до «мидлов»,...

Как запустить ML-прототип за один день. Доклад Яндекс.Такси Машинное обучение применяется на всём цикле заказа автомобиля в Яндекс.Такси, и число компонентов сервиса, работающих благодаря ML, постоянно растёт. Чтобы строить их единообразно, нам потребовался обособленный процесс. Руководитель службы машинного обучения и анализа данных...

Как быстро и легко удалить фон с фотографии на Android Вы наверняка знаете, что на смартфоне редактировать фото можно не хуже, чем на компьютере, например, с помощью того же мобильного Photoshop, Snapseed, PicsArt или Lightroom. Да, эти программы не так просты, как кажутся с первого взгляда, и, если их освоить, можно стать гуру ...

[Из песочницы] Как я поступал в 18 университетов США Всем привет. Меня зовут Даниил, и в этой статье я хочу поделиться с вами своей историей поступления в бакалавриат 18 университетов США. В интернете достаточно много рассказов о том, как можно учиться в магистратуре или аспирантуре совершенно бесплатно, но мало кто знает, что...

[Из песочницы] SVG индикатор загрузки на Vue.js Привет! Учусь на front-end, и параллельно, в учебном проекте, разрабатываю SPA на Vue.js для back-end, который собирает данные от поискового бота. Бот нарабатывает от 0 до 500 записей, и я должен их: загрузить, отсортировать по заданным критериям, показать в таблице. Ни back...

Анализ коммитов и pull request'ов в Travis CI, Buddy и AppVeyor с помощью PVS-Studio В анализаторе PVS-Studio для языков С и C++ на Linux и macOS, начиная с версии 7.04, появилась тестовая возможность проверить список указанных файлов. С помощью нового режима можно настроить анализатор для проверки коммитов и pull request'ов. В этой статье будет рассказано,...

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

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

[Из песочницы] Подсчет скорости скачивания в вашем приложении Предыстория Есть у меня маленький и уютный pet-project, который позволяет качать файлы из интернета. Файлы при этом группируются и пользователю отображается не каждый файл, а некоторая группировка. И весь процесс скачивания (и отображение этого процесса) сильно зависел от да...

Мой опыт прошивки Marlin 2 на Skr E3 DIP с драйверами 2208 UART. Доброго времени суток.Купил я пару недель назад Ender 3 Pro и сразу заказал к нему skr E3 DIP с драйверами 2208 UART в комплекте.После установки столкнулся с проблемой что последний офф марлин работает некорректно на плате от skr.Собрал сборку офф марлина почти без проблем и...

[Из песочницы] Настройка поиска Sphinx для интернет-магазина Информации по Sphinx не так много, как хотелось бы. Лишняя статья не помешает. Первые шаги в освоении Sphinx мне помогли сделать статьи Создание ознакомительного поискового движка на Sphinx + php и Пример Sphinx поиска на реальном проекте — магазин автозапчастей Tecdoc Совет...

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

[Перевод] Понимание алгоритма БПФ Здравствуйте, друзья. Уже завтра стартует курс «Алгоритмы для разработчиков», а у нас остался один неопубликованный перевод. Собственно исправляемся и делимся с вами материалом. Поехали. Быстрое преобразование Фурье (БПФ — англ. FFT) является одним из важнейших алгоритмов о...

[Из песочницы] Элементарные шифры на понятном языке Привет, Хабр! Все мы довольно часто слышим такие слова и словосочетания, как «шифрование данных», «секретные шифры», «криптозащита», «шифрование», но далеко не все понимают, о чем конкретно идет речь. В этом посте разберемся, что из себя представляет шифрование и рассмотрим...

[Перевод] Как сделать контейнеры еще более изолированными: обзор контейнерных sandbox-технологий Несмотря на то, что большая часть ИТ-индустрии внедряет инфраструктурные решения на базе контейнеров и облачных решений, необходимо понимать и ограничения этих технологий. Традиционно Docker, Linux Containers (LXC) и Rocket (rkt) не являются по-настоящему изолированными, пос...

[Из песочницы] Обзор и доработка устройств от DreamSourseLab Всех приветствую. По следам предыдущих статей по логическим анализаторам на Хабре решил таки закончить свой "фундаментальный" труд. Читать дальше →

[Перевод] Комбинирование Signed Distance Fields в 2D В предыдущем туториале мы научились создавать и перемещать простые фигуры с помощью функций расстояний со знаком. В этой статье мы научимся комбинировать несколько фигур для создания более сложных полей расстояний. Большинству описанных здесь техник я научился из библиотеки ...

Как экономить 64 часа, сочетая клавиши в PowerPoint Вы знали, что выполнить операцию в офисном документе мышкой на 2 секунды дольше, чем с использованием сочетания клавиш? Вы можете сэкономить 64 часа ежегодно для себя, выучив сочетания клавиш в PowerPoint. Что еще важнее — вас больше не будет раздражать пауза в работе, котор...

Apple провалилась с Apple Arcade. Или нет? Иконка Apple Arcade на главном экране Apple TV С выходом iOS 13 Apple официально запустила Apple Arcade — игровой сервис, который все ждали аж с марта, когда он был впервые представлен публике. Несколько месяцев студии делали эксклюзивные игры для новой платформы, поль...

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

Anet A8 установка на оси X рельсы MGN12 Являюсь владельцем двух принтеров: ANET A8 и ZAV MAX PRO.ANET A8, по моим понятиям, рабочая лошадка, которая после доработки работает как часы. Владею им уже с пару лет, и Direct extruder очень радует. Мучаясь с Bowden на ZAVe - желания ANET переводить на Bowden нет ни малей...

Vivaldi 2.9 — Улучшение улучшений Всем привет! Процесс совершенствования браузера, как и ремонт в квартире, невозможно закончить — его можно только остановить. И в этом контексте у нас есть две новости, одна — хорошая, а другая — плохая. Плохая новость: да, браузер Vivaldi ещё далёк от совершенства. Хорош...

Candy Bump - конфетное безумие Иногда хочется поиграть во что-то, что не займет много времени. Именно для такого случая подойдет Candy Bump. Candy Bump - простая казуальная игра. Основная задача - достигнуть финиша не задев ни одной цветной сладости, сбивать можно только сладости белого цвета. Управлен...

«Как управлять интеллектуалами. Я, нерды и гики» (бесплатная эл. версия книги) Привет, Хаброжители! Мы решили, что правильно не только продавать книги, но и делиться с ними. Обзор самой книг был здесь. В самом посте отрывок «Синдром дефицита внимания у Гиков» и сама книга. Основная идея книги «Оружие Юга» предельно проста и при этом очень странна. Чт...

[Перевод] Управляем асинхронностью в PHP: от промисов к корутинам Что такое асинхронность? Если кратко, то асинхронность означает выполнение нескольких задач в течение определенного промежутка времени. PHP выполняется в одном потоке, что означает, что в любой момент времени может выполняться только один фрагмент PHP-кода. Это может показа...

Лучшие программы для взлома Wi-Fi сетей Android-смартфон способен на многое. В том числе и на то, чтобы взломать беспроводную сеть В одном из наших предыдущих материалов мы уже рассказывали вам о лучших хакерских приложениях. Чтобы не пропускать такие материалы — подпишитесь на наш канал в Телеграм, если эта...

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

iPhone научили выявлять снижение умственных способностей у пожилых Apple как никто другой увлечена медицинскими технологиями, стремясь дать каждому человеку возможность следить за своим здоровьем 24/7. Всего за несколько лет компания продвинулась в этом направлении весьма значительно, совместно с партнерами обучив Apple Watch измерять пуль...

Безопасный доступ к полям регистров на С++ без ущерба эффективности(на примере CortexM) Рис. взят с сайта www.extremetech.com/wp-content/uploads/2016/07/MegaProcessor-Feature.jpg Всем доброго здравия! В прошлой статье я рассмотрел вопрос о проблеме доступа к регистрам микроконтроллера с ядром CortexM на языке С++ и показал простые варианты решения части про...

Введение боевого пропуска Season Challenges помогло Clash of Clans увеличить выручку на 72% Вы можете по-разному относиться к free-to-play. Однако миллионы игроков во всем мире счастливы играть в игры, за которые не нужно платить. Счастливы настолько, что готовы... платить. Нельзя сказать, что это большой парадокс, но недавнее нововведение в одной из популярнейших ...

Карьера программиста. Глава 3. Университет Продолжение рассказа «Карьера программиста». Закончив вечернюю школу, пришла пора поступать в университет. В нашем городе был один университет технической направленности. В нем же, был один факультет «Математики и Информатики», на котором была одна кафедра «Компьютерных сис...

Создана система мониторинга усталости Система способна оценить состояние водителя, после чего он в случае необходимости получает предупреждающий сигнал или ограничение доступа к заказам сервиса. Нейросеть Яндекса научилась распознавать усталость водителей, а технологии VisionLabs помогли делать это в движени...

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

Фракталы в иррациональных числах Статья является продолжением моей первой статьи «Фракталы в простых числах». В предыдущей статье мы научились рисовать самоподобные паттерны с помощью взаимно простых чисел. В этой статье покажу фрактальную природу числа . Без предисловия. Под кат. Читать дальше →

GOSTIM: P2P F2F E2EE IM за один вечер с ГОСТ-криптографией Будучи разработчиком PyGOST библиотеки (ГОСТовые криптографические примитивы на чистом Python), я нередко получаю вопросы о том как на коленке реализовать простейший безопасный обмен сообщениями. Многие считают прикладную криптографию достаточно простой штукой, и .encrypt() ...

Тест 5G в самом центре Москвы На днях мы собрали свои вещи, взяли микрофон и камеру и вышли из своей уютной студии, чтобы оказаться в салоне оператора Tele2. Всё дело в том, что здесь есть возможность протестировать сети 5G. Мы постарались разобраться, что у нас в стране и в городе работает, какую скорос...

Делфийская история успеха программиста из Улан-Удэ Мир суровый, но маленький и возможности его изменить есть у каждого. В 1996 году начиная изучать только что появившийся Delphi, я не мог себе представить, какая будет судьба у этого языка, который сильно повлиял на Java и C#, а также какая судьба будет у самой компании Borla...

[Перевод] C# или Java? TypeScript или JavaScript? Классификация языков программирования на основе машинного обучения На GitHub представлено больше 300 языков программирования, начиная с общеизвестных языков, таких как Python, Java, и Javascript, и заканчивая эзотерическими языками, такими как Befunge, известными только малым группам людей. Топ-10 языков программирования, размещенных на Gi...

AMA с Хабром v.8.0. Онбординг, новости для всех, PWA Апрель — месяц субботников. Наша команда тоже провела  виртуальный субботник и навела порядок с некоторыми вопросами на Хабре — а значит, у нас для вас снова есть порция новостей. Сегодня мы проводим очередную сессию вопросов и ответов (AMA). Пользователи Хабра и команда Хаб...

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

[Из песочницы] Ускорение компиляции в Xcode на swift С ростом проекта, скорость компиляции проекта замедляется. Особенно это заметно становится, когда тестируешь программу, делая параллельно небольшие изменения в программе. Сначала давайте узнаем как долго компилируется проект до наших улучшений. ЧТобы это сделать надо в тер...

Последнее обновление ломает HomePod. Но не сбрасывайте настройки AudioOS 13.2 ломает HomePod. Лучше её не устанавливать Вчера вечером вместе с iOS 13.2 компания Apple выпустила обновление прошивки HomePod за номером 13.2. Апдейт принёс поддержку многих функций, которые не были доступны пользователям умной колонки ранее. Среди них и распоз...

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

Archie - не линейный 3D принтер Всем привет. Сегодня я хотел бы представить свой проект 3D принтера на базе оригинального дельта - робота. Принтер называется «Archie» - в честь Архимеда (Archimedes). Это уже второй дельта робот, которого я собираю. Первая версия была создана на базе проекта 3Dreplicator,...

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

Делись, рыбка, быстро и нацело Деление — одна из самых дорогих операций в современных процессорах. За доказательством далеко ходить не нужно: Agner Fog[1] вещает, что на процессорах Intel / AMD мы легко можем получить Latency в 25-119 clock cycles, а reciprocal throughput — 25-120. В переводе на Русский ...

Asus пока ограничилась весьма простыми версиями видеокарты GeForce GTX 1660 Компания Nvidia сегодня представила видеокарту GeForce GTX 1660. Производители видеокарт, конечно, сразу добавили на свои сайты соответствующие адаптеры. У Asus таких пока четыре, но в ближайшее время их явно станет больше, так как пока нет ни одной карты семейства ROG....

[Из песочницы] Длинные имена слишком длинные Привет, Хабр! Представляю вашему вниманию перевод статьи "Long Names Are Long" автора Bob Nystrom. Одно из умных вещей которые делает Google это строгие code review. Каждое изменение, прежде чем вам разрешат его внести в основную ветку, рассматривается как минимум ...

Для тех у кого Cura не видит принтер Я понимаю , что может и не новость для кого-то и вообще не в тему . Но столкнулся  с такой проблемой еще  год назад когда залил Repetier на Due+ruramps4d с тем ,  что Cura не видит принтер в упор хоть и издает щелчки движками при запуске программы, потому поль...

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

Passper WinSenior: восстановление забытого пароля Windows без переустановки операционной системы Бывают моменты, когда вы не можете зайти на компьютер из-за банальной ошибки – забыли пароль. Или вам отдали тот же ноутбук, который оказался заблокированным. Ничего страшного! Есть решение от подобной неудачи и называется оно Passper WinSenior.Благодаря данной программе вы ...

Запускаем инструментальные тесты в Firebase Test Lab. Часть 1: iOS проект Меня зовут Дмитрий, я работаю тестировщиком в компании MEL Science. Совсем недавно я закончил разбираться со сравнительно свежей фичей от Firebase Test Lab — а именно, с инструментальным тестированием iOS приложений с использованием нативного фреймворка тестирования XCUITe...

Gears 5 — системные требования и графические технологии Релиз Gears 5 запланирован на 10 сентября (кстати, проект будет доступен и на платформе Steam). В The Coalition заявили, что в процессе разработки игры студия тесно сотрудничала с AMD. В результате в экшене будут доступны современные технологические наработки. Например, аси...

Тест ювелирного принтера JAP J Приветствую Коллеги.Довелось мне попробовать в работе фотополимерный принтер который делает Владимир.Его ник на портале 3DLab.Он разрабатывает и изготавливает принтеры сам. Есть много статей на портале о том как их собирать, какие комплектующие использовать.Последняя его раз...

Вебинар «Разворачиваем кластер Kubernetes за час в Облаке КРОК» Классический вариант вебинара — лектор рассказывает теорию и (в лучшем случае) дает немного практики. Мы решили попробовать альтернативный способ. Павел Селиванов, архитектор решений в Southbridge и преподаватель Слёрма, будет во время вебинара создавать и настраивать класте...

Чего мне не хватает в Java после работы с Kotlin/Scala В последнее время я часто слышу о том, что Java стала устаревшим языком, на котором сложно строить большие поддерживаемые приложения. В целом, я не согласен с этой точкой зрения. На мой взгляд, язык все еще подходит для написания быстрых и хорошо организованных приложений. О...

Избавляемся от наплывов на углах или Linear Advance В связи с тем, что инструкций по настройке Linear Advance на русском языке я не нашел, решил поделиться.           Начнем, пожалуй, с попытки разобраться в том, что это вообще такое.Гугл переводчик безапелляционно сообщает, что это линейное продвижен...

Java REPL вам не ScriptEngine Привет, Хабр! Меня зовут Дима, я разработчик в команде “Архитектура” в hh.ru. Среди прочего, я занимаюсь тем, что делаю разработку проще для коллег. Выполнение кода в продакшене является типовой задачей. Поэтому когда я услышал, что с этим есть проблемы, я решил заняться и...

Все материалы на данном сайте взяты из открытых источников или присланы посетителями сайта и предоставляются исключительно в ознакомительных целях. Права на материалы принадлежат их владельцам. Администрация сайта ответственности за содержание материала не несет. (Правообладателям)