Социальные сети Рунета
Четверг, 25 апреля 2024

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

Особенности настройки Palo Alto: SSL VPN Несмотря на все преимущества межсетевых экранов Palo Alto, в рунете не так много материалов по настройке этих устройств, а также текстов, описывающих опыт их внедрения. Мы решили обобщить материалы, накопленные у нас за время работы с оборудованием этого вендора и рассказа...

[Перевод] 10 самых распространенных ошибок при работе с платформой Spring. Часть 1 Всем привет. Сегодня делимся первой частью статьи, перевод которой подготовлен специально для студентов курса «Разработчик на Spring Framework». Начнём! Spring — пожалуй, одна из самых популярных платформ разработки на языке Java. Это мощный, но довольно сложный в освоении...

Геттеры/сеттеры и проблема с инкапсуляцией в Symfony коде Сравнительно недавно работаю с Symfony (чуть более года) и во всех проектах, что довелось поработать — сущности всегда создавались таким образом, что они содержали только приватные поля и голые сеттеры/геттеры к ним. В статьи будут рассуждения и примеры, почему такой подход...

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

[Перевод] Разбор: как на самом деле правильно использовать Present Perfect в английском Из всех используемых в английском языке времен, именно Present perfect зачастую оказывается одним из самых трудных для понимания не-носителями. Аналоги этого времени существуют во множестве языков, но в использовании есть едва уловимые отличия. В итоге английская версия pr...

[Из песочницы] OutOfMemory и использование векторных изображений в Android Studio Привет, Хабр! В данной статье, ориентированной на новичков, я бы хотел дать несколько советов по оптимизации использования приложением памяти устройства, дабы постоянно не получать OutOfMemory, а также рассмотреть использование векторных изображений в текущей актуальной верс...

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

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

[Перевод] Вся правда об ОСРВ. Статья #26. Каналы: вспомогательные службы и структуры данных В данной статье мы продолжим рассматривать каналы передачи данных. Вспомогательные службы каналов Nucleus RTOS имеет четыре вызова API, которые предоставляют вспомогательные функции, связанные с каналами: сброс канала, получение информации о канале, получение количества к...

[Из песочницы] JavaScript: Создание простого MEVN-приложения О чем статья Цель этой статьи — показать, как можно создать базовое MEVN-приложение. Акроним MEVN означает — MongoDB + Express.js + Vue.js + Node.js. В качестве примера будет написано одностраничное приложение, которое содержит форму, состоящую из нескольких текстовых полей....

5 типовых задач на собеседованиях по JavaScript: разбор и решения От переводчика: опубликовали для вас статью Марии Перна (Maria Antonietta Perna), которая рассказывает о типовых задачах по JavaScript, чаще всего предлагаемых соискателям-разработчикам на собеседованиях. Статья будет полезна, в первую очередь, начинающим программистам. ...

[Перевод] Современное окружение для React Native приложений В этой статье мы рассмотрим настройку React Native окружения с использованием expo-cli, Typescript, и Jest. Typescript поможет нам избежать ошибок при разработке и написать более эффективное мобильное приложение. Современные разработки позволяют интегрировать Typescript в ...

Делаем UITableView. Для начинающих Новогодние праздники прошли, а мое стремление писать полезные и не очень статьи — нет! Сегодня поговорим о UITableView, работе с UITableViewDataSource и переиспользовании ячеек. Затронем как установить рут контроллер без сториборда, ошибки при работе с таблицей, лейаут и бол...

Краш-тесты СХД AERODISK ENGINE N2, проверка на прочность Всем привет! Этой статьей компания AERODISK открывает блог на Хабре. Ура, товарищи! В предыдущих статьях на Хабре были рассмотрены вопросы об архитектуре и базовой настройке СХД. В этой статье мы рассмотрим вопрос, который ранее не был освещен, но его часто задавали – об от...

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

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

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

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

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

Hyperledger Fabric для Чайников A Blockchain Platform for the Enterprise Добрый день, дорогие читатели, меня зовут Николай Нефедов, я технический специалист компании IBM, в этой статье я хотел бы познакомить вас с блокчейн платформой – Hyperledger Fabric. Платформа предназначена для построения бизнес прил...

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

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

[Перевод] Будущее внедрения зависимостей в Android Предлагаю вашему вниманию перевод оригинальной статьи от Jamie Sanson Создание Activity до Android 9 Pie Внедрение зависимостей (DI) — это общая модель, по ряду причин используемая во всех формах разработки. Благодаря проекту Dagger, он взят в качестве шаблона, используемог...

[Из песочницы] Краткое введение в рекурсию. JavaScript Перевод: Привет, Хабр! Представляю вашему вниманию перевод статьи "A Quick Intro to Recursion in Javascript" Yazeed Bzadough. Примечание. Рекурсия не единожды обсуждалась на хабре, но данная статья даёт базовое понимание рекурсии. Это будет полезно начинающим разр...

Разработка сайта на WebAssembly с помощью NetCore 3 и Blazor Мое мнение, что WebAssembly будущее интернета. Данная технология на текущий момент уже интегрирована в большинство современных браузерах (а точнее в их движках) на ПК и мобильных устройствах. В таких браузерах как Chrome, Edge, Firefox, и WebKit. В данной статье я опишу как ...

Использование Liquibase для управления структурой БД в Spring Boot приложении. Часть 1 В этой статье я разберу использование утилиты Liquibase в Spring Boot приложениях для версионирования структуры реляционной БД и миграции этой структуры с одной версии на другую. В первой части разберем базовый пример, а во второй поговорим об использовании liquibase-mave-pl...

Разработка Unix подобной OS — Драйверы символьных устройств (8) В предыдущей статье мы ввели многозадачность. Сегодня пришло время рассмотреть тему драйверов символьных устройств. Конкретно сегодня мы напишем драйвер терминала, механизм отложенной обработки прерываний, рассмотрим тему обработчиков верхних и нижних половин прерываний. ...

[Перевод] 9 правил крутого расширения для Visual Studio Крутые расширения Visual Studio имеют несколько ключевых признаков, которые отличают их от остальных. Они выглядят и на самом деле хорошо продуманы, функциональны и надежны. Кроме того, они делают то, что должны, до уровня совершенства и нативно вписываются во внутренние фун...

[Перевод] 5 распространенных ошибок при использовании архитектурных компонентов Android Даже если вы не делаете этих ошибок, стоит о них помнить, чтобы не столкнуться с некоторыми проблемами в будущем. Читать дальше →

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

defi.js — реактивная библиотека, основанная на Object.defineProperty defi.js — это библиотека, включающая в себя дюжину функций, которые добавляют интересные фичи любым JavaScript объектам с помощью геттеров и сеттеров. Гифка для привлечения внимания (3.5МБ) Репозиторий В качестве Hello World создадим небольшой виджет, состоящий из поля имен...

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

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

[Из песочницы] Топ 20 ошибок при работе с многопоточностью на С++ и способы избежать их Привет, Хабр! Предлагаю вашему вниманию перевод статьи «Top 20 C++ multithreading mistakes and how to avoid them» автора Deb Haldar. Сцена из фильма «Петля времени (2012) Многопоточность— одна из наиболее сложных областей в программировании, особенно в C++. За годы разраб...

[Перевод] Что есть и чего нет в Go. Часть 2 Всем привет! Cегодня делимся заключительной частью перевода статьи «Что есть и чего нет в Go». Напоминаем, в первой части речь шла о элементах, которые есть в Go, сегодня же поговорим о том, чего в Go нет. Перевод данного материала подготовлен в преддверии старта нового пот...

Flare-On 2019 write-up -0x01 — Intro Данная статья посвящена разбору всех заданий Flare-On 2019 — ежегодного соревнования по реверс-инжинирингу от FireEye. В данных соревнованиях я принимаю участие уже второй раз. В предыдущем году мне удалось попасть на 11-ое место по времени сдачи, решив все з...

Фишки VS Угрозы технологии контейнеризации Использование контейнеров для разработки и развёртывания софта давно превратилось в стандартную практику. Возможность с лёгкостью обеспечить программе стандартное окружение, независимое от хоста, на котором она выполняется, быстро изменить настройки, добавить или изменить ка...

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

Разбор Wechat-платежей Хотя рынок 3rd party payments в КНР крайне обширен, свои электронные кошельки имеются у любого производителя телефонов, каждого сотового оператора, а в их рейтингах встречаются десятки названий, не будет преувеличением сказать, что рассматривая электронные платежные системы,...

HolyJS 2019: Разбор задач от компании SEMrush (Часть 2) Это вторая часть разбора задач от нашего стенда на конференции HolyJS, прошедшей в Санкт-Петербурге 24-25 мая. Для большего контекста рекомендуется сначала ознакомиться с первой частью настоящего материала. А если Countdown Expression уже пройден, то добро пожаловать на сл...

Использование Liquibase для управления структурой БД в Spring Boot приложении. Часть 2 В предыдущей части мы разобрались с основными возможностями Liquibase и написали базовый пример Spring boot приложения, который использует Liquibase для инициализации БД. Полный код базового приложения можно увидеть тут. В этой статье мы поговорим про liquibase-maven-plugin ...

Введение в контекстно-ориентированное программирование на Kotlin Это перевод статьи An introduction to context-oriented programming in Kotlin В этой статье я постараюсь описать новое явление, которое возникло как побочный результат стремительного развития языка Kotlin. Речь идет о новом подходе к проектированию архитектуры приложений и б...

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

Открытый вебинар «Разработка высоконагруженных систем на PHP» Добрый вечер! В преддверии старта курса «Backend-разработчик на PHP» мы традиционно провели открытый урок. На нём поговорили о высоконагруженных системах, масштабировании, архитектуре. Детально рассмотрели HighLoad, а также основные подходы и тактики при разработке высоконаг...

Техподдержка 3CX отвечает: захват SIP-трафика на сервере АТС В этой статье мы поговорим об основах захвата и анализа SIP-трафика, генерируемого АТС 3CX. Статья адресована начинающим системным администраторам или обычным пользователям, в обязанности которых входит обслуживание телефонии. Для углубленного изучения темы рекомендуем пройт...

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

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

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

5 ошибок начинающего лида У каждого тимлида есть своё кладбище сотрудников управленческих ошибок. Каждый день публикуются новые статьи «5 ошибок начинающего разработчика», «7 примеров того, как не надо управлять процессами», «100 и 1 способ укладываться в сроки». И это круто! Чужие грабли экономят в...

Инструменты для запуска и разработки Java приложений, компиляция, выполнение на JVM Ни для кого не секрет, что на данный момент Java — один из самых популярных языков программирования в мире. Дата официального выпуска Java — 23 мая 1995 года. Эта статья посвящена основам основ: в ней изложены базовые особенности языка, которые придутся кстати начинающим “д...

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

[Перевод] GCP: Разбор вычислительного стека Google Cloud Platform Перевод статьи подготовлен специально для студентов курса «Облачные сервисы». Интересно развиваться в данном направлении? Смотрите запись профессионального мастер-класса «AWS EC2 сервис», который провёл Егор Зуев — TeamLead в компании InBit и автор образовательной программы...

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

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

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

Самые распространенные SEO-ошибки на сайте — исследование Serpstat В течение 2018 года пользователи Serpstat провели 204 тысячи аудитов сайтов с использованием инструмента Аудит сайта и проверили  223 миллиона страниц. Специалисты  Serpstat проанализировали эти данные и обнаружили наиболее распространенные ошибки оптимизации, кото...

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

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

[Из песочницы] Краткий разбор статьи «DeViSE: A Deep Visual-Semantic Embedding Model» Рассматриваемая статья. Введение Современные распознавательные системы лимитированы классифицировать на относительно не большое количество семантически не связанных между собой классов. Привлечение текстовой информации, даже несвязанной с картинками, позволяет обогатить моде...

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

Трезвый взгляд на Helm 2: «Вот такой, какой есть...» Как и любое другое решение, Helm — пакетный менеджер для Kubernetes — имеет плюсы, минусы и область применения, поэтому при его использовании стоит правильно оценивать свои ожидания… Мы используем Helm в своём арсенале инструментов непрерывного выката. На момент написания ...

Разработка в облаке, ИБ и персональные данные: дайджест для чтения на выходных от 1cloud Это — материалы из нашего корпоративного и хабраблога о работе с персональными данными, защите IT-систем и облачной разработке. В этом дайджесте вы найдете посты с разборами терминов, базовых подходов и технологий, а также материалы об IT-стандартах. Читать дальше →

[Перевод] Подготовка к Spring Professional Certification. Spring REST Сегодняшняя статья рассмотрит основные вопросы про REST в Spring. Она будет особенно полезна для начинающих программистов. Официальный гид от Pivotal, в котором написано про темы для подготовки. Оглавление Внедрение зависимостей, контейнер, IoC, бины AOP (аспектно-ориентир...

Техподдержка 3CX отвечает — 5 правил безопасности IP-АТС Взломы АТС 3CX, которые приводят к серьезным последствиям, случаются достаточно редко. Тем не менее, наши клиенты иногда становятся жертвами мошенников. Как показала практика, в основном это связано или с неверными настройками системы, или с использованием устаревшей версии ...

[Из песочницы] Визуализация времени возрождения Рошана В данной статье рассматривается перехват функций графического API на примере DirectX 9 под x64 применительно к игре Dota 2. Будет подробно рассказано, как внедриться в процесс игры, как изменить поток выполнения, приведено краткое описание внедряемой логики. В конце поговор...

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

[Из песочницы] Основы прозрачного проксирования с использованием 3proxy и iptables/netfilter или как «пустить всё через прокси» В данной статье хотелось бы раскрыть возможности прозрачного проксирования, которое позволяет абсолютно незаметно для клиентов перенаправлять весь либо часть трафика через внешние прокси-серверы. Когда я начинал решать данную задачу то столкнулся с тем, что её реализация ...

Алиса приобретает навык В этой статье речь пойдёт о голосовых интерфейсах (Voice User Interface — VUI), а также будет показано, как на Node.js можно создать приложение (навык — в терминологии платформы Яндекс.Диалоги) для голосового помощника Алисы. С помощью стороннего API наше приложение будет ...

RxSwift и корутины в Kotlin — факультатив по мобильной разработке от AGIMA и GeekBrains Знания — это хорошо, просто отлично. Но нужна еще и практика, чтобы можно было использовать полученные данные, переведя их из статуса «пассивное хранение» в статус «активное использование». Каким бы хорошим ни было теоретическое обучение, требуется еще работа «в поле». Ска...

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

[Перевод] Руководство по Docker Compose для начинающих Автор статьи, перевод которой мы сегодня публикуем, говорит, что она предназначена для тех разработчиков, которые хотят изучить Docker Compose и идут к тому, чтобы создать своё первое клиент-серверное приложение с использованием Docker. Предполагается, что читатель этого мат...

[Из песочницы] UICollectionView всему голова: Изменение представления на лету Привет, Хабр! Представляю вашему вниманию перевод статьи "UICollectionView Tutorial: Changing presentation on the fly". В данной статье мы рассмотрим использование различный способов отображение элементов, а также их переиспользование и динамическое изменение. Зде...

Kali Linux NetHunter на Android Ч.2: атаки на беспроводные сети Предыдущие статьиKali Linux NetHunter на Android: зачем и как установить И снова здравствуй, мой любознательный друг! Как ты, наверняка, помнишь, в прошлой статье мы говорили об установке NetHunter на Android устройство. Сейчас мы займемся практической частью и обзором возм...

[Перевод] Чтобы вести разработку быстрее, необходимо замедлиться Примечание переводчика: Начало года — отличное время, чтобы вдумчиво оценить прошедший год. Окинуть широким взглядом происходящее и понять, как сделать 2019 год лучше, спокойнее и продуктивнее. В этом деле нам показалась полезной статья How To Slow Down to Go Faster Than E...

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

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

.Net Community Райффайзенбанка приглашает на митап .NET Community Райффайзенбанка приглашает на Meetup, который состоится в московском офисе в Нагатино 23 мая. Сообщество разработчиков Райффайзенбанка активно проводит митапы, готовит вокркшопы, и делает еще много всего, для того, чтобы сотрудники могли делиться опытом и зна...

Проблемы пакетной обработки запросов и их решения (часть 2) Это продолжение статьи «Проблемы пакетной обработки запросов и их решения». Рекомендуется сначала ознакомиться с первой частью, так как в ней подробно описана суть задачи и некоторые подходы к ее решению. Здесь же мы рассмотрим другие методы. Читать дальше →

Книга «Vue.js в действии» Привет, Хаброжители! Цель этой книги — дать вам знания, с помощью которых вы без колебаний присоединитесь к любому проекту, использующему эту библиотеку. Книга предназначена для всех, кто заинтересован в изучении Vue.js и имеет опыт работы с JavaScript, HTML и CSS. От вас не...

[Перевод] Введение в Hashicorp Consul’s Kubernetes Авторизацию Все верно, после релиза Hashicorp Consul 1.5.0 в начале мая 2019 года в Consul можно делать авторизацию приложений и служб, запущенных в Kubernetes, нативно. В этом руководстве мы шаг за шагом создадим POC (Проверка концепции (Proof of concept, PoC — доказательство [осущест...

Интересные доклады на HighLoad++ Siberia 2019 по версии Plesk Всем привет! В июне в Новосибирске прошла конференция по разработке высоконагруженных приложений HighLoad++ Siberia 2019. Ранее в статьях на Хабре мы упоминали, что мы в компании Plesk проводим ретроспективу конференций и докладов, которые посещаем, чтобы не потерять получен...

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

[Перевод] Создание динамических PDF-файлов с использованием React и Node.js Материал, перевод которого мы сегодня публикуем, посвящён созданию динамических PDF-файлов с использованием HTML-кода в качестве шаблона. А именно, речь пойдёт о том, как сформировать простой счёт на оплату неких товаров или услуг, динамические данные, включённые в который, ...

Sigma rules. Поделка или новый стандарт для SOC Я Сергей Рублев, руководитель SOC (Security Operations Center) в компании «Инфосекьюрити». В этой статье подробно рассмотрю амбициозный проект Sigma Rules, девиз которого: «Sigma для логов — это как Snort для трафика и Yara для файлов». Речь пойдет про три аспекта: Пр...

Решение задания с pwnable.kr 11-coin1, 12-blackjack, 13-lotto. Ошибки в логике приложений В данной статье рассмотрим решения 3-х заданий с сайта pwnable.kr. Организационная информацияСпециально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях: ...

Промышленные неуправляемые коммутаторы EKI Серия EKI-2000/5000 — это неуправляемые промышленные коммутаторы, которые, при всей простоте, обладают рядом продвинутых функций. Коммутаторы легко интегрируются в любую SCADA-систему благодаря поддержке открытых протоколов Modbus TCP и SNMP, имеют защиту от неправильной ко...

[Из песочницы] Когда использовать var, let и const в Javascript [перевод статьи Tyler’а McGinnis] Привет, Хабр! Представляю вашему вниманию перевод статьи «var vs let vs const in JavaScript» автора Tyler McGinnis. В этой статье вы узнаете 2 новых способа для создания переменных в Javascript (ES6), let и const. На протяжении этой статьи мы рассмотрим разницу между var,...

[Из песочницы] Проблемы и нюансы при разработке под SmartTV с использованием React.js Хочу поделиться опытом разработки приложения с просмотром видео контента для SmartTV (Tizen и WebOS) и с какими проблемами мы столкнулись. На современных телевизорах, как мы знаем, можно устанавливать разные приложения, для облегчения работы с какими-то ресурсами и контенто...

Как реализовать контекстные меню (Context Menu) в iOS 13 Всем привет, меня зовут Денис, мы разрабатываем сервис по аналитике подписок iOS-приложений – Apphud. На WWDC 2019 Apple представила новый способ взаимодействия с интерфейсом вашего приложения: контекстные меню. Они выглядят так: В этой статье мы рассмотрим некоторые тонкос...

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

Apple выпустила iOS 12.1.3 с исправлениями ошибок для HomePod, iPad Pro, CarPlay и многого другого Apple выпустили iOS 12.1.3, пятое обновление операционной системы iOS 12 с момента ее запуска в сентябре. iOS 12.1.3 — это небольшое обновление, которое следует за iOS 12.1.2 (только для iPhone), выпущенной еще в декабре, и iOS 12.1.1, также выпущенной в декабре. Обно...

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

Microsoft переименовала приложение Xbox для Windows 10 в «Компаньон консоли Xbox» Microsoft выпустила обновление приложения Xbox для Windows 10, переименовав его в «Компаньон консоли Xbox». Это связано с тем, что компания приняла решение изменить предназначение приложения. Если ранее это был основной способ доступа к спискам друзей, сообщениям и групповы...

2. Анализ логов Check Point: SmartEvent Здравствуйте, коллеги. В прошлый раз, в статье «1. Анализ логов Check Point: официальное приложение Check Point для Splunk» мы обсуждали разбор логов шлюза безопасности на основе официального приложения в системе логирования Splunk. В заключении пришли к выводу что хоть пр...

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

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

Сравнение и выбор систем миграции данных Сравнение и выбор систем миграции данных Модель данных в процессе разработки имеет свойство изменяться, и в какой-то момент она перестает соответствовать базе данных. Конечно же, БД можно удалить, и тогда ORM создаст новую версию, которая будет соответствовать модели, но т...

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

Функция buildargv с помощью Ragel Забавное использование Ragel State Machine Compiler для создания функции разбора строки на int argc, char *argv[]. Все началось с того, что понадобилась функция buildargv, чтобы разбирать строку для последующей передачи в int main (int argc, char *argv[]) { body } Ну ладно п...

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

Использование кастомных функций потери и метрики качества обучения в Keras При обучении нейронной сети на обучающей выборке на выходе нейросети вычисляются два ключевых параметра эффективности обучения — ошибка и точность предсказания. Для этого используются функция потери (loss) и метрика точности. Эти метрики различаются в зависимости от поставле...

Лучшие программы-архиваторы на Android Работать с архивами на Android просто Одним из наиболее распространенных типов файлов, с которыми нам приходится иметь дело, являются архивные файлы. Файлы форматов zip, rar, 7z и многие другие являются довольно удобным и универсальным инструментом для обмена информацией. См...

Алиса в стране Битрикс Приветствую вас (лично вас, а не всех кто это читает)! Сегодня мы: Создадим приложение (навык) Алисы с использованием нового (октябрь 2019) сервиса Yandex Cloud Functions. Настроим наше приложение так, чтобы оно отправляло заказы клиентов (т.н. лиды) в CRM Битрикс24. ...

Шифрование трафика в Direct Connect, ч.2 – Ты кто??? – Я новый русский. – А я тогда кто?! Предисловие В первой части статьи мы обустраивали ADCs хаб и рассуждали о Direct Connect в целом. Сегодня нам предстоит научиться использовать такой хаб по прямому назначению. Для этого мы рассмотрим совместимые DC клиенты,...

[Из песочницы] Работа с JSON RPC в Symfony 4 Всем привет, сегодня поговорим о том, как подружить Symfony 4, JSON RPC и OpenAPI 3. Данная статья рассчитана не на новичков, вы уже должны понимать как работать с Symfony, Depedency Injection и другими «страшными» вещами. Сегодня рассмотрим одну конкретную реализацию JSON ...

SciPy, оптимизация с условиями SciPy (произносится как сай пай) — это основанный на numpy математический пакет, включающий в себя также библиотеки на C и Fortran. С SciPy интерактивный сеанс Python превращается в такую же полноценную среду обработки данных, как MATLAB, IDL, Octave, R или SciLab. В это...

[Перевод] API IntersectionObserver и ленивая загрузка изображений Использование ленивой загрузки изображений для улучшения производительности веб-проектов — востребованная техника оптимизации. Всё дело в том, что изображения — это «тяжёлые» ресурсы, которыми переполнены современные веб-сайты. Мы уже кое-что об этом публиковали. Здесь можно...

Импортозамещение на практике. Часть 2. Начало. Гипервизор В предыдущей статье были рассмотрены варианты, на что можно заменить существующие системы в рамках выполнения приказа об импортозамещении. Далее в статьях речь пойдет о выборе конкретных продуктов для замены развернутых в настоящее время. Начнем с точки отсчета — системы вир...

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

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

Как диагностировать проблемы интеграции SDK. Опыт команды разработки Yandex Mobile Ads SDK Всем привет! Меня зовут Дмитрий Фисько, я разрабатываю Yandex Mobile Ads SDK. Наша библиотека предназначена для монетизации мобильных приложений на платформе Android и iOS. Сегодня я хочу рассказать вам о том, как мы упростили разбор сложных ошибок интеграции SDK в Android-п...

[Перевод] Разбор задачи с собеседования в Google: синонимичные запросы Это новая статья из разбора задач с собеседований в Google. Когда я там работал, то предлагал кандидатам такие задачи. Потом произошла утечка, и их запретили. Но у медали есть обратная сторона: теперь я могу свободно объяснить решение. Читать дальше →

TheOutloud — озвучивай и делись любимыми статьями и историями Привет всему сообществу, Habr! Уже некоторое время я являюсь вашим читателем и сегодня решил, что пришло время для моего первого поста здесь. Я давно хотел научиться программировать и последние пару месяцев проводил все свободное время, просматривая обучающие ролики на yout...

Tic Tac Toe, часть 7: pytest и Travis CI Tic Tac Toe: содержание цикла статейВ этой статье рассмотрим Непрерывную Интеграцию/Сontinuous Integration на примере использования Travis CI. Читать дальше →

[Перевод] Интервью — 10 вопросов про Swift. Часть 3 Профессиональная программа «iOS Разработчик» — 5 месяцев Best Practice по разработке мобильных приложений с помощью Swift 5. Лучших выпускников ждут на собеседованиях 12 компаний-партнёров OTUS, поэтому публикуем перевод заключительной статьи из серии «iOS Interview Question...

Геймдизайн в жизнь. Экономика игры (Часть II) Доброго дня! Немного об авторе: меня зовут Мария, гейм дизайнер. Это третья статья из цикла по применению теории геймдизайна в жизни. Ссылки: Первая статья: «Гейм дизайн в жизнь. Пример разбора механики игры» Вторая статья: «Геймдизайн в жизнь. Экономика игры (Часть I)» ...

Работа с датами на языке R (базовые возможности, а также пакеты lubridate и timeperiodsR) Получить текущую дату в любом языке программирования, операция эквивалентная "Hello world!". Язык R не является исключением. В этой статье мы разберёмся с тем, как устроена работа с датами в базовом синтаксисе языка R, а также рассмотрим несколько полезных пакетов, расширяющ...

Статическое распределение объектов FreeRTOS По умолчанию все объекты в системе FreeRTOS распределяются динамически — очереди, семафоры, таймеры, задачи (потоки), и мьютексы. Программист видит только «кучу» — область где динамически выделяется память по запросу программы или системы, а что там творится внутри – не ясно...

Боль и слёзы в Svelte 3 Вместо предисловия Статья будет полезна тем, кто так-же как и Мы решил попробовать Svelte в живом проекте. В нашу небольшую компанию пришёл заказ на разработку веб-админки для сервиса с бекэндом на Mongodb Stitch. В последние пару лет frontend Мы пишем на React или Vue (в за...

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

[Перевод] Пол Грэм проводит разбор полетов: Viaweb июня 1998 года За несколько часов до того, как продаться «Yahoo» в июне 1998 года, я сделал скриншот сайта Viaweb. Мне показалось, что интересно будет однажды на него взглянуть. Первая вещь, на которую вы сразу обратите внимание, это то, как компактны страницы. В 1998-ом экраны были заме...

[Из песочницы] JavaScript в 3D: введение в Three.js Привет, Хабр! Представляю Вашему вниманию перевод статьи «JavaScript in 3D: an Introduction to Three.js» автора Брета Кемерона (Bret Cameron). Введение Three.js это мощный инструмент. Он помогает использовать 3D дизайн в браузере с приемлемой производительностью. По нач...

Битва L2TP, RRAS vs SoftEther «Украденная с запада картинка для привлечения внимания» В прошлых наших статьях мы рассказали, как работать с VDS на Windows Server Core 2019 на нашем новом тарифе UltraLight за 99 рублей в месяц. Предлагаем еще один способ использования данного тарифа. На этот раз речь по...

Concurrency и паттерны ошибок, скрытые в коде: Deadlock Наверняка, многие слышали, а кто-то встречал на практике, такие слова, как взаимные блокировки(deadlock) и гонки(race condition). Эти понятия относятся к разряду ошибок в использовании concurrency. Если я задам вам вопрос, что такое дедлок, вы с большой вероятностью без доли...

Всплывай! Транзишены в iOS Привет, Хабр! Всем нравятся отзывчивые приложения. Ещё лучше, когда в них есть уместные анимации. В этой статье я расскажу и покажу со всем «мясом», как правильно показывать, скрывать, крутить, вертеть и делать всякое с всплывающими экранами. Читать дальше →

[Из песочницы] Руководство по организации архитектуры Android приложения Привет, Хабр! Представляю вашему вниманию вольный перевод «Руководство по архитектуре приложения (Guide to app architecture)» из JetPack. Все замечания по переводу прошу оставлять в комментариях, и они будут исправлены. Так же для всех будут полезны комментарии от тех кто ис...

[Перевод] Горький урок отрасли ИИ По итогу 70-ти лет исследований в области ИИ главный урок заключается в том, что общие вычислительные методы в конечном счёте наиболее эффективны. И с большим отрывом. Конечно, причина в законе Мура, точнее, в экспоненциальном падении стоимости вычислений. Большинство иссл...

ScrumBut в команде аналитиков: перед взлётом Привет, Хабр! Меня зовут Женя. Я системный аналитик компании «НОРБИТ» и начинающий Scrum-мастер. Я давно присматривалась к Scrum с целью изучить, попробовать и оценить его возможности в нашей команде аналитиков. И вот, после легкого пинка воодушевляющего разговора с РП я пон...

[Перевод] Извлечение данных при машинном обучении Хотите узнать о трех методах получения данных для своего следующего проекта по ML? Тогда читайте перевод статьи Rebecca Vickery, опубликованной в блоге Towards Data Science на сайте Medium! Она будет интересна начинающим специалистам. Получение качественных данных — это пе...

Первые опыты использования потокового протокола на примере связи ЦП и процессора в ПЛИС комплекса REDD В предыдущих статьях мы уже познакомились с шиной Avalon-MM, где MM означает Memory Mapped, то есть проецируемая на память. Эта шина вполне себе универсальная. К ней может быть подключено несколько ведущих (Master) и несколько ведомых (Slave) устройств. Мы уже подключали с...

[Перевод] Руководство по React Native для начинающих Android-разработчиков (с примером приложения) Представляем вам перевод статьи Nikhil Sachdeva, опубликованной на hackernoon.com. Автор делится опытом разработки мобильных приложений с помощью React Native и предлагает создать свое приложение, используя этот фреймворк. Я был Android-разработчиком и довольно длительное...

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

Блокировки в PostgreSQL: 4. Блокировки в памяти Напомню, что мы уже поговорили о блокировках отношений, о блокировках на уровне строк, о блокировках других объектов (включая предикатные), и о взаимосвязи разных типов блокировок. Сегодня я заканчиваю этот цикл статьей про блокировки в оперативной памяти. Мы поговорим о сп...

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

[Из песочницы] Госзакупки: баланс между итальянской забастовкой и русской уголовкой Прочитал я на днях статью ЕЭТП о госзакупках, и даже поучаствовал в комментариях. Хочу рассказать о своем видении данного процесса. Меньше теории, больше практики. Практики будет больше со стороны поставщика, в роли которого мне приходилось выступать, но не только. Мнение...

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

Создание таблиц в дизайн системе Figma и реализация в Storybook (React) В предыдущей статье на тему дизайна таблиц в Фигме мы выяснили, что базовый элемент создания любого data grid — это компонент ячейки, внутри которого спрятано все необходимое для того, чтобы оставаться в одном экземпляре и строить таблицы ячейка-за-ячейкой. Теперь поговори...

[Из песочницы] Full-stack TypeScript Apps Привет, Хабр! Представляю вашему вниманию перевод статьи "Full-Stack TypeScript Apps — Part 1: Developing Backend APIs with Nest.js" автора Ana Ribeiro. Часть 1: Разработка серверного API с помощью Nest.JS TL;DR: это серия статей о том, как создать веб-приложение TypeScript ...

[Перевод] Лямбды: от C++11 до C++20. Часть 2 Привет, хабровчане. В связи со стартом набора в новую группу по курсу «Разработчик C++», делимся с вами переводом второй части статьи «Лямбды: от C++11 до C++20». Первую часть можно прочитать тут. В первой части серии мы рассмотрели лямбды с точки зрения C++03, C++11 и C+...

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

[Перевод] 12 возможностей ES10 в 12 простых примерах Перед вами перевод статьи из блога Carlos Caballero на сайте Medium.com. Автор расскажет нам о функциях, которые появились в версии ES10 2019 года. ES10 — это версия ECMAScript, актуальная для 2019 года. Она содержит не так много нововведений, как версия ES6, выпущенная в...

Анализ механизмов локализации интерфейса приложений в Splunk В данной статье мы рассмотрим основной механизм локализации интерфейса приложений Splunk (в т.ч. стандартных элементов приложения Search) — gettext internationalization and localization (i18n). Читать дальше →

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

СКУД моего ЖК — безопасность на двух болтах Спешу предупредить читателей: Данная статья написана только для ознакомления, и ни в коем случае не призывает к любым противоправным действием. Автор не несет ответственности за любые неправомерные действия совершенные людьми с использованием информации из данной статьи. Пр...

[Перевод - recovery mode ] Как правильно обрабатывать ошибки: тишина — не всегда хорошо У меня никогда не было какого-то особого мнения относительно обработки ошибок. Если я начинала работать с существующим кодом, я продолжала выполнять задачу, над которой трудился автор исходника; если писала код с нуля — делала то, что казалось мне правильным. Но недавно...

На какие вопросы по виртуализации вы ожидаете ответ от выпускника? Именно в такой постановке — на какие вопросы по виртуализации вы ожидаете ответ и, желательно, правильный от выпускника. Опыта у него, скорее всего, ещё нет, но базовые вещи… А что каждый подразумевает под этими базовыми вещами, знание которых обязательно? Читать дальше →

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

Loli — новый высокопроизводительный язык В этой статье мы поговорим о новом интерпретируемом языке Loli, рассмотрим синтаксис и сравним с языками C и Python. Читать дальше →

Зоопарк AFL фазеров На Хабре уже пару раз появлялись статьи, поднимающие тему American Fuzzy Lop (AFL) (1,2). Но в данной статье речь пойдет не о классическом AFL, а о вспомогательных утилитах для него и его модификациях, которые, на наш взгляд, могут значительно улучшить качество фаззинга. Е...

.Net Meetup в Райффайзенбанке 28/11 Приглашаем на .Net Community Meetup 28 ноября. На митапе поговорим о проектировании desktop-приложений и рассмотрим вызовы, с которыми сталкивается любая компания на пути к микросервисам. Ждём вас в офисе Райффайзенбанка в Нагатино! Читать дальше →

Astra Linux «Орел» Common Edition: есть ли жизнь после Windows Astra Linux — дериватив Debian, который был создан в рамках российской инициативы перехода на СПО. Существует несколько версий Astra Linux, одна из которых предназначена для общего, повседневного использования — Astra Linux «Орел» Common Edition. Российская операционка для в...

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

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

[Перевод] 12 советов для тех, кто использует Redux при разработке React-приложений Когда речь идёт о разработке React-приложений, то, в плане архитектуры кода, маленькие проекты часто бывают более гибкими, чем большие. Нет ничего плохого в том, чтобы создавать такие проекты с использованием практических рекомендаций, нацеленных на более крупные приложения....

Интервью с Иваном Кругловым, Principal Developer в Booking.com: Service Mesh и «нестандартные» инструменты Booking Иван Круглов, Principal Developer в Booking.com, выступал на Слёрм DevOps c темой SRE, а после выступления согласился за чашкой кофе поговорить о Kubernetes, Service Mesh, open source и «нестандартных» решениях в Booking.com Так как тема SRE оказался намного обширнее, то Ива...

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

[Перевод] Руководство по логированию в Node.js Первая задача, с которой чаще всего сталкиваются разработчики, начинающие программировать на JavaScript, – как регистрировать события в журнале консоли с помощью метода console.log. В поисках информации по отладке кода на JavaScript вы найдёте сотни статей в блогах, а также...

Расширяем возможности UObject в Unreal Engine 4 Всем привет! Меня зовут Александр, я уже более 5 лет работаю с Unreal Engine, и почти все это время — с сетевыми проектами. Поскольку сетевые проекты отличаются своими требованиями к разработке и производительности, нередко необходимо работать с более простыми объектами, та...

[Из песочницы] Изучение комбинаторных парсеров с Rust Привет, Хабр! Представляю вашему вниманию перевод статьи "Learning Parser Combinators With Rust". Эта статья учит основам комбинаторных парсеров людей, которые уже знакомы с Rust. Предполагается, что никаких других знаний не требуется, а всё, что не имеет прямого о...

10 распространенных ошибок при использовании iPhone и iPad Как заряжать, настраивать, эксплуатировать и ухаживать за iPhone и iPad. В этом материале собраны 10 наиболее  распространенных ошибок, совершаемых пользователями смартфонов и планшетов Apple.  ПО ТЕМЕ: Быстрая зарядка для iPhone: какие модели поддерживаются и какое зарядное...

[Из песочницы] Parse & Android: рекомендации начинающим разработчикам Аннотация В данной статье я бы хотел поделиться общими впечатлениями от использования BaaS – решения под названием Parse для разработки бэкэнда Android-приложения, рассказать о всех «подводных камнях», с которыми мне пришлось столкнуться в период разработки. Впервые эту плат...

[Из песочницы] О реализации известного жанра на платформе Minecraft Целью данной статьи является помощь начинающим игровым проектам с нестандартной тематикой избежать базовых ошибок в реализации. Данная статья рассказывает о личном опыте ведения игрового стартапа в рамках Minecraft. Как всё начиналось Мои интересы во многом не совпадали с и...

[Из песочницы] Общее представление об архитектуре Clean Swift Привет, читатель! В этой статье я расскажу об архитектуре iOS приложений — Clean Swift. Мы рассмотрим основные теоретические моменты и разберем пример на практике. Читать дальше →

this и ScopeChain в EcmaScript Привет, Хабр! В предыдущей статье мы рассматривали общую теории ООП в применении к EcmaScript и популярное заблуждение начинающих разработчиков относительно отличия ООП в JS и классических языках. Сегодня мы поговорим о двух других не менее важных концепциях EcmaScript, а...

[Перевод] Бессерверные вычисления на основе OpenWhisk, часть 2 Эта статья продолжает цикл переводных заметок об OpenWhisk от автора Priti Desai. Сегодня будут рассмотрены примеры развертывания GitHub webhook, периодических сигналов, а также приведено простейшее приложение для отправки сообщений в Slack. Читать дальше →

[Перевод] Вся правда об ОСРВ. Статья #29. Прерывания в Nucleus SE Все современные микропроцессоры и микроконтроллеры содержат какие-либо механизмы прерывания. Эти механизмы необходимы для обеспечения «отзывчивости», требуемой многими приложениями. Безусловно, отзывчивость и предсказуемость являются основной целью при использовании ОСРВ, но...

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

Swift 5.0. Что нового? Swift 5 — долгожданный релиз, включающий в себя несколько десятков улучшений и исправлений. Но самой главной целью релиза Swift 5.0 было достижение ABI стабильности. В этой статье вы узнаете, что такое ABI и что стабильный ABI даст iOS/macOS разработчикам. А также проведём р...

Работаем с USB Custom HID на Android В современных Android — приложениях для взаимодействия с другими устройствами чаще всего используются беспроводные протоколы передачи данных, как например Bluetooth. В годы, когда часть устройств имеют беспроводную зарядку, сложно представить себе связку Android устройства ...

[Перевод] 7 привычек высокоэффективных программистов Начинающие программисты тратят много времени, набирая знания, необходимые для прохождения интервью. Они решают задачи и улучшают свои резюме. Но самое интересное начинается после того, как программист получает вожделенную должность — в каком-нибудь стартапе, в Google, в Amaz...

[Перевод] Подготовка приложения к Android Q. Часть 2 Перевод статьи подготовлен специально для студентов курса «Android-разработчик. Базовый курс». Также напоминаем о том, что мы продолжаем набор на расширенный курс «Специализация Android-разработчик» О конфиденциальности и безопасности можно прочитать в первой части статьи...

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

ИТ-игра «Что? Где? Когда?». Разбор вопросов 29 августа в офисе ManyChat прошел интеллектуальный ИТ-вечер «Что? Где? Когда?». За звание лучших знатоков боролось сразу 10 команд. Мы рады поделиться с вами записью с мероприятия, разбором вопросов, а также некоторыми секретами о следующих встречах. Все подробности скрываю...

Спать нельзя кодить: как собрать команду и подготовиться к хакатону? Я организовывал хакатоны по Python, Java, .Net, каждый из которых посетило от 100 до 250 человек. Как организатор я наблюдал за участниками со стороны и убедился, что хакатон – это не только про технологии, но и про грамотную подготовку, слаженную работу и коммуникацию. В эт...

[Перевод] 26 рекомендаций по использованию типа var в Java The Java Local Variable Type Inference (LVTI) или кратко — тип var (идентификатор var — это не ключевое слово, а зарезервированное имя типа) был добавлен в Java 10 с помощью JEP 286: Local-Variable Type Inference. Являясь 100% функцией компилятора, она не влияет на байт-код...

Обработка ошибок в Kotlin/Java: как правильно это делать? Источник Обработка ошибок в любой разработке играет важнейшую роль. В программе может пойти не так практически всё: пользователь введёт некорректные данные, или они могут прийти такими по http, или мы ошиблись при написании сериализации/десериализации и в процессе обработки...

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

Аналитика и монетизация мобильных приложений для начинающего разработчика На GeekBrains в начале осени был запущен факультатив «Аналитика и монетизация мобильных приложений». Новое направление, действующее в рамках факультетов Android и iOS-разработки, стало востребованным — монетизация мобильных приложений становится все более актуальной. Появ...

Бро vs. не бро В этой статье предлагаю совершить экскурс в социобиологию и поговорить о эволюционных истоках альтруизма, родственном отборе и агрессии. Мы коротко (но со ссылками) рассмотрим результаты социологических исследований и исследований с нейровизуализацией, в которых показано, ка...

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

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

Flutter, руководство для начинающих На дворе середина 2019 года, кроссплатформа плотно вошла в жизнь стартапов по всему миру, но все чаще в ее сторону смотрят и команды аутсорс-разработки, и клиенты, которые делают ставку на снижение затрат. Кто-то делает ставку на React Native, кто-то исследует возможности Ko...

[Перевод] F#4: Let / Use / Do В этом посте мы рассмотрим привязки в F#, в частности мы рассмотрим Let / Use / Do. Теперь вы, возможно, спрашиваете себя, что такое привязки, и, поскольку мы еще не рассмотрели их, сейчас самое время поговорить об этом. Проще говоря, привязка связывает идентификатор со зна...

8 советов начинающим программистам или ретроспектива моей карьеры Ровно 15 лет назад, в этот самый день, своими дрожащими коленками я переступил порог офиса небольшого провинциального интернет-провайдера. Моя первая настоящая работа в качестве программиста. Знаний почти нет. Тонкий испуганный голосок откуда-то из желудка советует разверну...

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

ЧПУ в хоббийной мастерской (часть 2) → Первая часть В статье рассмотрим стандартное и нестандартное использование CNC-роутера. Для чего кроме вырезания деревянных картинок можно приспособить такой станок. Осторожно, трафик. Читать дальше →

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

[Перевод] Стратегии деплоя в Kubernetes: rolling, recreate, blue/green, canary, dark (A/B-тестирование) Прим. перев.: Этот обзорный материал от Weaveworks знакомит с наиболее популярными стратегиями выката приложений и рассказывает о возможности реализации наиболее продвинутых из них с помощью Kubernetes-оператора Flagger. Он написан простым языком и содержит наглядные схемы, ...

[Перевод] 13 приёмов работы с npm, которые помогают экономить время Каждый день миллионы разработчиков, создавая свои JavaScript-приложения, обращаются к npm (или к Yarn). Выполнение команд наподобие npm init или npx create-react-app стало привычным способом начала работы над практически любым JavaScript-проектом. Это может быть сервер, клие...

Meeting Room L̶i̶t̶t̶l̶e̶ Helper v 2 Данная статья подробно описывает этапы разработки мобильного приложения Meeting Room Helper: от зарождения идеи до релиза. Приложение написано на Kotlin и построено по упрощённой MVVM архитектуре, без использования data binding. Обновление UI-части происходит с помощью LiveD...

[Перевод] Подготовка приложения к Android Q. Часть 1 Перевод статьи подготовлен специально для студентов курса «Android-разработчик. Базовый курс». Также напоминаем о том, что мы продолжаем набор на расширенный курс «Специализация Android-разработчик» Мы находимся на 10-м году разработки Android (Android Q должен быть верс...

Приложения для электронных книг на операционной системе Android. Часть 5. Облачные хранилища и плееры В этой, последней, части статьи о приложениях для электронных книг на операционной системе Android будут рассмотрены две темы: Облачные хранилища и Аудиоплееры. Бонус: список бесплатных библиотек с каталогами OPDS. Краткое содержание предыдущих четырёх частей статьиВ 1-ой ч...

Один из методов получения профиля рабочей нагрузки и истории ожиданий в PostgreSQL Продолжение статьи "Попытка создать аналог ASH для PostgreSQL ". В статье будет рассмотрено и показано на конкретных запросах и примерах — какую же полезную информацию можно получить с помощью истории представления pg_stat_activity. Предупреждение. В силу довольно большого ...

Приложения для электронных книг на операционной системе Android (часть 3) В этой (третьей) части статьи о приложениях для электронных книг на операционной системе Android будут рассмотрены следующие две группы приложений: 1. Альтернативные словари 2. Заметки, дневники, планировщики Краткое содержание предыдущих двух частей статьи: В 1-ой част...

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

Julia: пользовательские типы В этой статье рассмотрим добавление в программу на Julia пользовательского типа данных и перегрузку стандартных функций для удобной работы с новым типом. Читать дальше →

[Перевод] Глючный код на Python: 10 самых распространенных ошибок, которые допускают разработчики О Python Python — это интерпретируемый, объектно-ориентированный язык программирования высокого уровня с динамической семантикой. Встроенные структуры данных высокого уровня в сочетании с динамической типизацией и динамическим связыванием делают его очень привлекательным для...

Новые карты CUBA Работа с геопространственными данными и отображение карт являются неотъемлемыми составляющими множества бизнес-приложений. Это могут быть городские и региональные информационные системы, приложения для нефтегазовой отрасли, системы управления транспортной инфраструктурой, а...

Работа с API КОМПАС-3D → Урок 16 → Управляющие символы Продолжаем цикл статей по работе с API САПР КОМПАС-3D. Управляющие символы уже несколько раз встречались нам на предыдущих уроках цикла. Тогда каждый раз говорилось, что выводимые строки не должны их содержать, так как КОМПАС обрабатывает их особым образом. Теперь пришло вре...

[Из песочницы] Программируем проходной выключатель. MicroPython на esp8266 (sonoff) с OTA. Часть 1 Всем привет. В процессе ремонта возникла задача сделать проходной выключатель. Конечно же захотелось сделать самым простым и удобным способом, добавив базовые функции управления с телефона. Я выбрал наиболее простую и удобную технологию для этого (конечно, на свой взгляд) —...

«Обезличенные данные» или что планируется в 152-ФЗ Краткая выдержка из законопроекта о внесении изменений в Федеральный закон от 27.07.2006 N 152-ФЗ «О персональных данных» (152-ФЗ). С данными правками 152-ФЗ «позволит торговать» Big Data, усилит права оператора персональных данных. Возможно читателям будет интересно обратит...

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

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

PostGIS и JPA PostGIS — открытое программное обеспечение, добавляющее поддержку географических объектов в реляционную базу данных PostgreSQL. В этой небольшой статье будет рассмотрено использование его в Java. В частности — задача нахождения географических объектов по их координатам. Ч...

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

[Перевод] Учебник по JavaFX: расширенные макеты Как организовать и разместить GUI компоненты в приложении JavaFX, используя расширенные макеты. В предыдущей статье мы рассмотрели некоторые основные макеты JavaFX. Теперь пришло время рассмотреть остальные имеющийся макеты. Учебник по JavaFX: начало работы Учебник по Ja...

[Перевод] Использование AD Federation Service для авторизации пользователей на AWS с раздачей прав Вольный перевод статьи Jeff Wierer "Enabling Federation to AWS Using Windows Active Directory, ADFS, and SAML 2.0" с добавлениями и уточнениями. 1. Исходные данные 2. Подготовка 3. Конфигурирование AD 4. Установка ADFS 5. Конфигурирование ADFS 6. Конфигурирование AWS 7. ...

[Из песочницы] Make it True — Разработка логической игры на Unity Хочу поделиться процессом разработки простой мобильной игры силами двух разработчиков и художника. Данная статья в большей мере состоит описания технической реализации. Осторожно, много текста! Статья не являются руководством или уроком, хотя надеюсь что читатели смогут в...

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

Делаем современное веб-приложение с нуля Итак, вы решили сделать новый проект. И проект этот — веб-приложение. Сколько времени уйдёт на создание базового прототипа? Насколько это сложно? Что должен уже со старта уметь современный веб-сайт? В этой статье мы попробуем набросать boilerplate простейшего веб-приложения...

[Из песочницы] Учебное пособие по TensorFlow: 10 минутное практическое занятие по TensorFlow для начинающих [перевод] Привет, Хабр! Представляю вашему вниманию перевод статьи "TensorFlow Tutorial: 10 minutes Practical TensorFlow lesson for quick learners" автора Ankit Sachan. Этот туториал по TensorFlow предназначен для тех, кто имеет общее представление о машинном обучении и пыта...

Async/await в C#: концепция, внутреннее устройство, полезные приемы Доброго времени суток. В этот раз поговорим на тему, в которой начинал разбираться каждый уважающий себя адепт языка C# — асинхронное программирование с использованием Task или, в простонародье, async/await. Microsoft проделали хорошую работу — ведь для того, чтобы использов...

Мультиязычные приложения в Angular В этой статье рассмотрим как можно быстро перевести ваш Angular проект на мультиязычный режим работы и какие есть для этого утилиты. Читать дальше →

Kafka и микросервисы: обзор Всем привет. В этой статье я расскажу, почему мы в Авито девять месяцев назад выбрали Kafka, и что она из себя представляет. Поделюсь одним из кейсов использования — брокер сообщений. И напоследок поговорим о том, какие плюсы мы получили от применения подхода Kafka as a Ser...

Ликбез по передаче параметров по значению в конструкторы и сеттеры (современный C++, примеры) Судя по комментам habr.com/ru/post/460831/#comment_20416435 в соседнем посте и развернувшейся там дискуссии, на Хабре не помешает статья, как правильно передавать аргументы в конструктор или сеттер. На StackOverflow подобного материала полно, но тут что-то я не припомню. По...

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

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

MVP и Dagger 2 – скелет Android-приложения – часть 1 Данная статья нацелена на новичков в Android-разработке и призвана помочь в создании минимально необходимой структуры приложения. Так получилось, что я относительно недавно начал программировать под Android – после месяца без проекта в компании, где я работаю, меня определи...

[Перевод] Оптимизация стратегии игры в Блэкджек методом Монте-Карло Перевод статьи подготовлен специально для студентов курса «Machine learning». Обучение с подкреплением штурмом взяло мир Искусственного Интеллекта. Начиная от AlphaGo и AlphaStar, все большее число видов деятельности, в которых раньше доминировал человек, теперь завоевано...

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

[Перевод] Кеширование в Laravel: основы плюс tips&tricks Техника кеширования позволяет создавать более масштабируемые приложения, запоминания результаты некоторых запросов в быстрое in-memory хранилище. Однако, некорректно реализованное кеширование может сильно ухудшить впечатление пользователя о вашем приложении. Эта статья содер...

[Перевод] Учебник по JavaFX: основные макеты Перевод статьи «JavaFX Tutorial: Basic layouts» автора Vojtech Ruzicka. Как организовать и разместить GUI компоненты в приложении JavaFX. Это четвертая статья в серии о JavaFX. В предыдущей статье я описал, как использовать FXML и SceneBuilder для создания вашего пользоват...

Apache, ViewState&Deserialisation В данной статье рассмотрим уязвимость на основе подмены сериализованного Java-объекта ViewState и метод её эксплуатации на примере web-приложения виртуальной машины с HackTheBox, использующей технологию Apache MyFaces. Читать дальше →

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

SamsPcbGuide, часть 9: Гальваническая изоляция, безопасность и печатные платы Данная статья продолжает рассмотрение вопроса, поднятого @olartamonov, а именно, обеспечение безопасности в высоковольтных приложениях. В статье будут рассмотрены физические основы пробоя диэлектриков, а также новый стандарт безопасности. Читать дальше →

Реверс-инжиниринг бинарного формата на примере файлов Korg SNG. Часть 2 В прошлой статье я описал ход рассуждений при разборе неизвестного двоичного формата данных. Используя Hex-редактор Synalaze It!, я показал как можно разобрать заголовок двоичного файла и выделить основные блоки данных. Так как в случае формата SNG эти блоки образуют иерар...

Фреймворки для постэксплуатации. Выбираем между Metasploit, Cobalt Strike, Merlin, Apfell, Faction C2, Koadic и другими Для подписчиковВ этой статье мы поговорим о фреймворках, которые помогут эксплуатировать уязвимости, закрепиться и продвинуться в целевой инфраструктуре. Для этого рассмотрим основные актуальные проекты, их функции и особенности. Надеюсь, ты найдешь для себя что-нибудь новен...

Разработка монолитной Unix подобной OS — GDT & IDT (5) В предыдущей статье мы с вами реализовали менеджер динамической памяти. Сегодня мы рассмотрим основы работы в защищенном режиме процессора Intel i386. А именно: глобальную таблицу дескрипторов и таблицу векторов прерываний. Читать дальше →

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

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

Решение заданий WorldSkills модуля Network в компетенции «СиСА». Часть 2 — Базовая настройка Продолжаем разбор заданий модуля Network чемпионата WorldSkills в компетенции «Сетевое и системное администрирование». В статье будут рассмотрены следующие задания: На ВСЕХ устройствах создайте виртуальные интерфейсы, подынтерфейсы и интерфейсы типа петля. Назначьте IP-ад...

Анализируем тональность текстов с помощью Fast.ai В статье пойдет речь о классификации тональности текстовых сообщений на русском языке (а по сути любой классификации текстов, используя те же технологии). За основу возьмем данную статью, в которой была рассмотрена классификация тональности на архитектуре CNN с использование...

9 типовых проблем в сети, которые можно обнаружить с помощью анализа NetFlow (на примере Flowmon) Относительно недавно мы публиковали статью “Сетевой мониторинг и выявления аномальной сетевой активности с помощью решений Flowmon Networks”. Там мы кратко рассмотрели возможности этого продукта и процесс установки. Неожиданно для нас, после статьи и вебинара, поступило бо...

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

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

[Из песочницы] Разработка Chrome Extension вместе с Angular CLI Разработкой расширений к Chrome я занимаюсь давно и за это время я прошел целый путь от Greasemonkey юзер-скриптов до полноценного Angular-приложения в оболочке chrome-extension. Моя задача в том, что я патчу некоторые уже работающие сайты, чтобы изменить их функционал и авт...

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

Установка и настройка Sonata Admin на Symfony 4 Приветствую всех. В данной статье поговорим об Symfony 4 и Sonata Admin. В процессе установки я столкнулся с массой неточностей в документации и сама документация была раскидана по нескольким местам. Здесь я рассмотрю весь процесс, начиная от создания проекта и заканчивая а...

[Перевод] Объясняем код с помощью ASCII-арта Примечание от переводчика: типично пятничная статья во вторник утром… почему бы и нет? Большинство людей — визуалы. Они используют изображения, чтобы вникнуть в суть проблемы. А вот мэйнстримные языки программирования, напротив, основаны на текстовом представлении. Возник...

[Перевод] Фаззинг в стиле 2000 года на современных приложениях Windows 10 Рис. 1. Ушиблен, но не сломлен. Калькулятор Windows, чей код недавно опубликован на Github, оказался одним из двух протестированных приложений, которые не зависли и не упали в противостоянии с фаззером оконных сообщений разработки 2000 года. Размер окна специально увеличен,...

PVS-Studio идёт в облака: Azure DevOps Это вторая статья про использование статического анализатора PVS-Studio в облачных CI-системах, и на этот раз мы рассмотрим платформу Azure DevOps – облачное CI\CD-решение от компании Microsoft. В качестве анализируемого проекта в этот раз рассмотрим ShareX. Читать дальше ...

Privileged Access Management как приоритетная задача в ИБ (на примере Fudo PAM) Есть довольно интересный документ CIS Controls, который рассматривает Информационную безопасность с применением принципа Парето (80/20). Этот принцип гласит, что 20% защитных мер дают 80% результата с точки зрения защищенности компании. Ознакомившись с этим документом мног...

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

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

[Перевод] Четыре больших ошибки, которые совершал каждый программист Фотограф — Blake Connally, источник — Unsplash Создание программного обеспечения — искусство. Написание кода позволяет нам самовыражаться. И каждый разработчик делает это по-своему. Но индивидуализм не бесплатен — в этой статье я напишу о некоторых самых распространённых оши...

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

[Перевод] 5 важных и упущенных навыков, необходимых лучшему разработчику Предисловие Вы видели эти статьи тысячу раз: «10 вещей, которые нужно создать чтобы стать лучшим разработчиком.» «Лучшие фреймворки для изучения в 2019.» «Сделайте это чтобы стать разработчиком Rockstar.» «Прочитайте эти десять технических книг, и Вы станете успешным раз...

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

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

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

Приглашаем на DroidHeads Meetup 8 июня 8 июня в московском офисе Mail.ru Group состоится встреча всех неравнодушных к мобильной разработке. ​В этот раз мы проведем ее совместно с сообществами MosDroid и CocoaHeads. Соберем представителей обеих платформ, чтобы участники знали, с чем могут столкнуться при разрабо...

20 проектов, 20 языков, срок вчера. Часть 3 Заключительная статья об интеграции Serge+Smartcat. В этой статье я расскажу, как мы масштабируем Serge на всю компанию, рассмотрю 4 нестандартных интеграции и, в качестве бонуса, расскажу о 2 фичах которые могут упростить вам жизнь. Предыдущие статьи: 20 проектов, 20 язык...

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

Microsoft раздала новый Windows 10 не тем пользователям Компания Microsoft продолжает делать нечто загадочное с обновлениями для операционной системы Windows. Хотя на этот раз обновление ничего особенно не сломало, но апдейт был доставлен неправильной категории пользователей.  Апдейт под номером KB4523786 был распростр...

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

Сидорин: KnowledgeConf — это про то, как сохранить знания при средней продолжительности работы на одном месте в 2-3 года В современном мире продукты выпускаются все быстрее, а люди задерживаются в компании в среднем всего на пару лет. О том, как эти факторы влияют на участие сотрудников в процессе обмена знаниями, мы поговорили с одним из ключевых спикеров KnowledgeConf Алексеем Сидориным, рук...

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

[Перевод] Создание приложения для Slack с использованием функций 8base Slack — отличное приложение для внутреннего общения между командами. Одна из особенностей, что мы можем легко его расширить, создавая и интегрируя чат-ботов и слэш команды чата, позволяющие пользователям взаимодействовать с внешними сервисами. Отличным ботом Slack, весьма ...

[Перевод] Обработка ошибок в Go Привет, хабровчане! Уже сегодня в ОТУС стартует курс «Разработчик Golang» и мы считаем это отличным поводом, чтобы поделиться еще одной полезной публикацией по теме. Сегодня поговорим о подходе Go к ошибкам. Начнем! Освоение прагматической обработки ошибок в вашем Go-коде...

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

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

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

[Перевод] Разработка приложения для потокового вещания с помощью Node.js и React Автор материала, перевод которого мы сегодня публикуем, говорит, что работает над приложением, которое позволяет организовывать потоковое вещание (стриминг) того, что происходит на рабочем столе пользователя. Приложение принимает от стримера поток в формате RTMP и преобра...

Курс лекций «Основы цифровой обработки сигналов» Всем привет! Часто ко мне обращаются люди с вопросами по задачам из области цифровой обработки сигналов (ЦОС). Я подробно рассказываю нюансы, подсказываю нужные источники информации. Но всем слушателям, как показало время, не хватает практических задач и примеров в процессе...

[Перевод] Node.js для начинающих: основы работы с файлами Сегодня мы поговорим о том, как работать с файловой системой средствами Node.js, рассмотрим базовые операции, выполняемые с файлами. К таким операциям относятся следующие: Создание файла Чтение файла Запись данных в файл Удаление файла Переименование файла Необходимость в...

Опыт использования flatten-maven-plugin для упрощения версионирования в maven-проектах О нас В 1С мы разрабатываем не только платформу 1С: Предприятие на С++ и JavaScript, но и приложения на Java – в частности новую среду разработки Enterprise Development Tools на базе Eclipse и сервер глубоко интегрированного с платформой мессенджера – Системы Взаимодействия....

[Перевод] Что раздувает память в Ruby? У нас в Phusion работает простой многопоточный HTTP-прокси на Ruby (раздаёт пакеты DEB и RPM). Я видел на нём потребление памяти 1,3 ГБ. Но это безумие для stateless-процесса… Вопрос: Что это? Ответ: Использование памяти процессом Ruby с течением времени! Оказывается, я н...

[Из песочницы] Основные проблемы разработки современных интерфейсов Привет, Хабр! Представляю вашему вниманию перевод поста Дэна Абрамова «The Elements of UI Engineering» о современных проблемах и задачах, которые должны быть решены в хорошем интерфейсе. Автор разбирает фундаментальные проблемы при разработке интерфейсов, осмысление и решени...

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

[Перевод] Инструментарий для рефакторинга баз данных: Flyway vs. Liquibase В этой статье мы поговорим о Flyway и Liquibase — двух наиболее популярных инструментах на основе Java для рефакторинга баз данных. Цель статьи — сравнить эти инструменты и выяснить, какой из них в каких случаях лучше применять. Читать дальше →

[Из песочницы] CI/CD, используя Jenkins на Kubernetes Добрый день. На Хабре уже есть несколько статей о jenkins, ci/cd и kubernetes, но в данной я хочу сконцентрироваться не на разборе возможностей этих технологий, а на максимально простой их конфигурации для постройки ci/cd pipeline. Я подразумеваю, что читатель имеет базовое ...

[Перевод] Введение в Redis с использованием Spring Boot Перевод статьи подготовлен специально для студентов курса «Разработчик на Spring Framework». В этой статье мы рассмотрим основы использования Redis через Spring Boot с помощью библиотеки Spring Data Redis. Мы создадим приложение, которое демонстрирует, как выполнять CR...

Безопасность алгоритмов машинного обучения. Защита и тестирование моделей с использованием Python В рамках предыдущей статьи мы рассказали про такую проблему машинного обучения, как Adversarial примеры и некоторые виды атак, которые позволяют их генерировать. В данной статье речь пойдет об алгоритмах защиты от такого рода эффекта и рекомендациях по тестированию моделей....

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

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

MVCC в PostgreSQL-8. Заморозка Мы начали с вопросов, связанных с изоляцией, сделали отступление про организацию данных на низком уровне, подробно поговорили о версиях строк и о том, как из версий получаются снимки данных. Затем мы рассмотрели разные виды очистки: внутристраничную (вместе с HOT-обновления...

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

Как продвигать мобильное приложение в 2019 году: 4 практических способа + полезные инструменты Конкуренция на рынке мобильных приложений растет быстрыми темпами. Сегодня уже трудно рассчитывать на успех, освоив подходы ASO, необходимо более глубокое погружение и разработка нестандартных рекламных и маркетинговых шагов. Сегодня мы поговорим о способах продвижения м...

Методы оптимизации кода для Redd. Часть 1: влияние кэша В первой статье цикла я активно продвигал идею, что разработка кода под Redd вторична, а первичен основной проект. Redd — вспомогательный инструмент, так что тратить на него уйму времени неправильно. То есть разработка под него должна идти быстро. Но это совсем не значит, чт...

«Секретики» DPAPI или DPAPI для пентестеров Вторая статья по итогам выступления нашей команды на OFFZONE-2018. На этот раз рассмотрим доклад с MainTrack “Windows DPAPI “Sekretiki” or DPAPI for pentesters”. Внимание! Очень много буков! При проведении RedTeam кампаний хочется давать меньше поводов для реакции BlueTeam...

[Из песочницы] Proof-Of-Work эффективен Привет, Хабр! Представляю вашему вниманию перевод статьи «PoW is Efficient» автора Dan Held. Вступление Большинство людей думает, что энергия, потраченная на Proof-Of-Work (далее PoW), тратится впустую. В этой статье я расскажу, почему все основано на энергии, включая деньг...

Google рассказала, как создавать приложения на Android «Разработка Android-приложений на языке Kotlin» – это бесплатный онлайн-курс, который компания Google разработала совместно с образовательной организацией Udacity для того, чтобы любой желающий мог пройти самостоятельное обучение и постичь азы (и не только) программирования...

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 7. F.A.Q Сегодня мы рассмотрим ответы на часто встречающиеся вопросы, которые касаются предыдущих видеоуроков. С момента первой публикации прошло уже около года, и множество людей оставили свои комментарии под моими видеоуроками на канале YouTube. Я внимательно читал все ваши коммент...

Открытая лекция курса «JavaScript-разработчик» Стартовый курс по Javascript посвящен основам языка и решению типичных задач для верстальщика и начинающего фронтендера: галереи, слайдеры, таймеры, калькуляторы, проверка форм. Входные требования: базовое знакомство с HTML+CSS, наличие терминала, базовое...

Разрабатываем приложение, которое отсылает данные другим приложениям (экосистемное приложение) Привет, хаброжители! Это моя вторая статья про разработку своего проекта. Тем, кто не читал предыдущая статейку: она про то, как из одного места (гугл таблицы) автоматически экспортировать данные в другое (ноушн). Сегодня я расскажу, как я писал (и проектировал) библиотеку...

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

[Перевод] Proposal: try — встроенная функция проверки ошибок Краткое содержание Предлагается новая конструкция try, созданная специально для устранения if-выражений, обычно связанных с обработкой ошибок в Go. Это единственное изменение языка. Авторы поддерживают использование defer и стандартных библиотечных функций для обогащения или...

[Перевод] Вся правда об ОСРВ. Статья #25. Каналы передачи данных: введение и базовые службы После небольшого перерыва мы продолжаем публиковать переводы статей «Вся правда об ОСРВ» Колина Уоллса. В этот раз поговорим о каналах передачи данных (далее – каналы), которые были уже были упомянуты в одной из предыдущих статей, а именно в #5. Каналы, по сравнению с почт...

Быстрый способ добавить уведомления в Android-приложение Перевели для вас статью Брендона Вивера о работе с уведомлениями в Android OS. Программист объясняет, как быстро добавить этот функционал в свое приложение. Статья, в первую очередь, будет полезна начинающим Android-разработчикам. Уведомления — один из самых легких и бы...

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

Сколько стоит App построить Я фриланс, и потому «и швец, и жнец, и на дуде игрец». И значительная часть рабочего времени уходит на переговоры с потенциальными заказчиками. Вот то базовое непонимание, которое я наблюдаю у людей в 50% случаев: Проект по разработке приложения стоит столько, сколько он сто...

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

Митап Нетологии «Карьера в Data Science для начинающих» Привет! 26 мая в Кампусе Нетологии (Москва) проведем митап «Карьера в Data Science для начинающих». С докладами выступят специалисты из 1С-Битрикс, Skyeng и наши коллеги из Нетологии. Поговорим о том, как построить карьеру в сфере Data Science, какие навыки нужны начинающему...

По следам Highload++ Siberia 2019 — 8 задач по Oracle Привет! 24-25 июня в Новосибирске прошла конференция Highload++ Siberia 2019. Наши ребята тоже там были докладом «Контейнерные базы Oracle (CDB/PDB) и их практическое использование для разработки ПО», мы выложим текстовую версию немного позже. Было круто, спасибо olegbunin ...

Code style как стандарт разработки Давайте сразу, это не про скобочки. Здесь речь пойдет о том, как работает наш мозг и почему code style помогает обеспечивать линейное развитие проекта, значительно ускоряет адаптацию новых сотрудников и, в целом, формирует и воспитывает культуру разработки. Я постарался собр...

[Перевод] Подготовка к Spring Professional Certification. Spring Security Эта статья является переводом статьи по подготовке к Spring Professional Certification. В ней будет рассмотрена тема Spring Security и основные вопросы по ней. Ее также можно использовать для подготовки к собеседованию. ↓ Остальные статьи доступны по ссылкам в оглавлении ↓ ...

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

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

Любительская голография — галогенсеребряные фотоматериалы В предыдущей статье речь шла о голографии в общем и о наборе для первых шагов от Litiholo основанном на фотополимерных голографических материалах. Теперь настал черёд разобраться с фотоматериалами на основе галогенидов серебра, которые имеют значительно более высокую чувстви...

[Перевод] Выпуск Rust 1.32 Команда разработчиков Rust рада сообщить о выпуске новой версии Rust, 1.32.0. Rust — это язык программирования, который дает возможность каждому создавать надежное и эффективное программное обеспечение. Если у вас установлена предыдущая версия Rust с помощью rustup, то для о...

Прямой эфир: как обуздать iOS-разработку в больших командах Всем привет! Меня зовут Женя Суворов, я руководитель команды мобильной архитектуры в Авито. 4 апреля на нашем ютуб-канале и в социальных сетях мы проведем прямой эфир и обсудим, как в iOS-разработке удержать качество продукта на высоком уровне даже при сильном масштабировани...

Разработка Unix подобной OS — Виртуальное адресное пространство (6) В предыдущей статье мы рассмотрели основы работы в защищенном режиме IA-32. Сегодня пришла пора научиться работать с виртуальным адресным пространством. Читать дальше →

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

Антирейтинг 2018 Эта статья написана по аналогии со статьей «Как не надо писать на Хабр: Антирейтинг 2017». Статьи взяты за 2018 год, точнее, начиная с индекса 345000. Кроме отрицательных значений рейтинга, есть список по абсолютному количеству минусов (видимо, самые обсуждаемые темы, в бо...

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

Настраиваем официальный шаблон PostgreSQL на Zabbix 4.4 Всем привет. В Zabbix появился официальный Template DB PostgreSQL. В этой статье настроим его в Zabbix 4.4. ПРИМЕЧАНИЕ Если у вас все хорошо с английским, то рекомендую установить шаблон по официальному мануалу github.com/zabbix/zabbix/tree/master/templates/db/postgresq...

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

Миграция на инфраструктуру async-await в Rust img source На прошлой неделе для Rust комьюнити случилось огромное событие — вышла версия компилятора 1.39, а в месте с ней и стабилизация async-await фичи. В этом посте я постараюсь резюмировать все релевантные изменения в компиляторе и экосистеме, а также предоставить инс...

Идиоматичное программирование GPU на Rust: Библиотека Emu Введение Emu — это высокоуровневый язык программирования видеокарт, способный встраиваться в обычный код на системном языке программирования Rust. В данной статье речь пойдёт о синтаксисе Emu, его особенностях, а также будут показаны несколько наглядных примеров его использ...

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

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

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

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

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

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 26. DNS и DHCP Система распределения доменных имен DNS и протокол динамической настройки узла DHCP являются очень важными для сетей, особенно для сети Интернет, так как позволяют настроить доступ к интернету, сконфигурировать браузер и т.д. На предыдущих уроках мы уже рассматривали настрой...

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

[Перевод] Создание калькулятора чаевых на Kotlin: как это работает? Рассказываем, как создать простое приложение для расчета чаевых на языке Kotlin. Если точнее, то Kotlin 1.3.21, Android 4, Android Studio 3. Статья будет интересной, в первую очередь, для тех, кто начинает свой путь в разработке Android-приложений. Она позволяет понять, ч...

Приключения в отдельном потоке. Доклад Яндекса Как работать с изображениями на клиенте, сохраняя плавность UI? Разработчик интерфейсов Павел Смирнов рассказал об этом на основе опыта разработки поиска по фотографиям на Маркете. Из доклада можно узнать, как правильно использовать Web Workers и OffscreenCanvas. — На про...

[Из песочницы] Настройка автоматического тестирования гибридного приложения В этой статье хочу поделиться опытом решения задачи запуска автоматизированного тестирования мобильного приложения на Android. О чем расскажу: Как запустить среду автоматического тестирования используя Appium (ОС ПК — Windows 10) Как избежать некоторых ошибок которые возн...

Microsoft Azure Developer Camp Россия 23 мая | 9:30 – 19:00 Офис Microsoft, БП Крылатские Холмы, ул. Крылатская 17к1, Переговорные комнаты Уран, Юпитер, Сатурн Москва, Россия Распространение облачных технологий постепенно изменяет методы разработки приложений, и перед программистами возникают новые сложные зад...

Митап по PHP в Иванове Привет, Хабр! Мы рады сообщить, что уже в эту субботу в офисе компании Инвольта состоится митап на тему: “PHP: Неправильный путь. Почему важно знать инструменты Native PHP сегодня. Личный опыт разработчика Rambler.” Как уже понятно из темы, на митапе мы будем говорить про ...

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

MU-MIMO: один из алгоритмов реализации Предисловие В качестве дополнения к моей недавней статье хотелось бы также поговорить о теме MU (Multi User) MIMO. Есть у мною уже упомянутого профессора Хаардта одна очень известная статья, где он вместе со своими коллегами предлагает алгоритм разделения пользователей по ни...

Делаем облачное видеонаблюдение своими руками: новые возможности Web SDK Ivideon У нас есть несколько интеграционных компонентов, позволяющих любому партнеру создавать собственные продукты: Open API для разработки любой альтернативы личного кабинета пользователя Ivideon, Mobile SDK, с помощью которого можно разработать полноценное решение, эквивалентно...

10 материалов о необычных музыкальных инструментах и нетипичных способах извлечения звука В качестве чтения на выходные мы хотели бы предложить вам наиболее популярные материалы нашего «Мира Hi-Fi». Сегодняшний топ-10 посвящен необычным музыкальным инструментам. Здесь есть исторические разборы и статьи о технологиях, предвосхитивших современные семплеры, нейронн...

MVCC-1. Изоляция Привет, Хабр! Этой статьей я начинаю серию циклов (или цикл серий? в общем, задумка грандиозная) о внутреннем устройстве PostgreSQL. Материал будет основан на учебных курсах по администрированию, которые делаем мы с Павлом pluzanov. Смотреть видео не все любят (я точно не л...

Учимся общаться между микросервисами на Node.js через RabbitMQ Это продолжение статьи «Пишем первый микросервис на Node.js с общением через RabbitMQ», которая была неплохо принята пользователями хабра. В этой статье я расскажу о том, как нужно правильно общаться между микросервисами, чтобы микросервисы оставались изолированными. Читать ...

[Перевод] Быстрое введение в Svelte с точки зрения разработчика на Angular Svelte — сравнительно новый UI фреймворк, разработанный Ричем Харрисом, который также является автором сборщика Rollup. Скорее всего Svelte покажется совершенно не похожим на то, с чем вы имели дело до этого, но, пожалуй, это даже хорошо. Две самые впечатляющие особенности э...

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

[Перевод] Потоки Redis как чистая структура данных Новая структура данных Redis 5 под названием «потоки» (streams) вызвала живой интерес в сообществе. Как-нибудь я поговорю с теми, кто использует потоки в продакшне, и напишу об этом. Но сейчас хочу рассмотреть немного другую тему. Мне начинает казаться, что многие представля...

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

[Из песочницы] Зубы мудрости: удалить нельзя оставить Уважаемые друзья, сегодня я предлагаю вам поговорить о зубах мудрости. Причём, поговорить о самом сложном и самом непонятном — показаниям к их удалению. Издавна с восьмёрками (третьими молярами или «зубами мудрости») связано очень много анекдотов, суеверий, легенд и истор...

Изучение английского — непопулярное мнение Всем привет. Очередная статья от «курсов изучения английского» сподвигла меня написать свои заметки. Этой статьёй я надеюсь ответить на некоторые вопросы изучающих язык и отговорить от глупых советов «запомнить вот эти 10/15/20 слов/конструкций», которые подаются как некие ...

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

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

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

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

[Перевод] Новое в Java 12: The Teeing Collector В этой статье мы рассмотрим новый коллектор, представленный в Java 12. Эта новая функция не была анонсирована в официальном JEP, поскольку это был минорный change request с заголовком "Create Collector, which merges the results of two other collectors". Она предназначена для...

ShIoTiny: узлы, связи и события или особенности рисования программ Основные тезисы или о чем эта статья Тема статьи — визуальное программирование ПЛК ShIoTiny для умного дома, описанного тут: ShIoTiny: малая автоматизация, интернет вещей или «за полгода до отпуска». Очень кратко рассмотрены такие понятия, как узлы, связи, события, а такж...

DeepPavlov для разработчиков: #2 настройка и деплоймент Всем привет! В первой статье из нашего цикла мы узнали, что такое DeepPavlov, какие модели библиотеки готовы к использованию без предварительного обучения и как запустить REST серверы с ними. Перед тем, как приступить к обучению моделей, мы расскажем о различных возможностях...

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

Разработка гибридных PHP/Go приложений с использованием RoadRunner Классическое PHP-приложение — однопоточность, тяжелая загрузка (если вы конечно не пишите на микрофреймворках) и неизбежная смерть процесса после каждого запроса… Такое приложение тяжелое и медленное, но мы можем дать ему вторую жизнь гибридизацией. Чтобы ускорить — демонизи...

HDMI-LVDS. Разработка на TSUMV59 от MStar Доброго времени суток, Хабр! В продолжение прошлой статьи на тему DisplayPort-LVDS, решил написать о своей новой разработке контроллера HDMI-LVDS на чипе TSUMV59 от MStar. Контроллер имеет много интересного на борту, например, аналоговый выход звука, ИК порт, кнопки управ...

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

Разбор задач JPoint 2019 Всем привет! Закончилась одна из самых хардкорных конференций по Java – JPoint 2019, она проходила в седьмой раз и как всегда побила рекорд по посещаемости, в этот раз мероприятие привлекло более 1700 специалистов в области Java-разработки. «Одноклассники» принимали уча...

Ssh-chat Привет, Хабр. Console chat отличная вещь, но для фронтендеров, а что если вы хотите такой же, но для бэкэнда. Если да, то эта статья для вас. Но какой инструмент часто используют в бэкенде? Правильно ssh, так что представляю sshchat Читать дальше →

[Перевод] Детальный разбор новых возможностей React 16+, часть 1: общие сведения Сегодня мы представляем вам первую часть перевода этого большого материала. Он посвящён детальному разбору новых возможностей React, которые появились в этой библиотеке начиная с версии 16. Автор этого материала уже 5 лет занимается программированием. В прошлом он был дизайн...

[Перевод] Порождение событий, CQRS и Laravel Перевод статьи подготовлен для студентов профессионального курса «Framework Laravel» ________________________ Введение Эта статья посвящена основам создания событийных CQRS-систем на языке PHP и в фреймворке Laravel. Предполагается, что вы знакомы со схемой разработки с ...

«Анализ данных на Python» в двух частях Курсы по анализу данных в CS центре читает Вадим Леонардович Аббакумов — кандидат физ.-мат. наук, он работает главным экспертом-аналитиком в компании Газпромнефть-Альтернативное топливо. Лекции предназначены для двух категорий слушателей. Первая — начинающие аналитики, кот...

C++, FIX, Oracle и PL/SQL: что нужно знать IT-специалисту для получения работы в сфере финансов + реальные вакансии В наши дни, большинство бирж уже давно работают в электронном формате, а сделки совершаются не с помощью выкриков трейдеров из специальной ямы, а в пару кликов через интернет. Для организации торгов и участия в них используется передовой софт, железо, разрабатываются сложн...

Аттестация информационных систем по принципу типовых сегментов. Мифы и реальность Доброго времени суток, Хабр! Сегодня мы хотели бы рассмотреть различные мифы, связанные с аттестацией объектов информатизации (ОИ) по требованиям безопасности информации по принципу типовых сегментов. А также разберемся, как все-таки правильно делать такую аттестацию. Миф...

Приложения для электронных книг на операционной системе Android. Часть 4. Игры В сегодняшней, четвёртой (предпоследней), части статьи о приложениях для электронных книг на операционной системе Android будет рассмотрена только одна, но обширная тема: игры. Краткое содержание предыдущих трёх частей статьиВ 1-ой части были подробно рассмотрены причины, п...

[Перевод] Типы для HTTP-API, написанных на Python: опыт Instagram Сегодня мы публикуем второй материал из цикла, посвящённого использованию Python в Instagram. В прошлый раз речь шла проверке типов серверного кода Instagram. Сервер представляет собой монолит, написанный на Python. Он состоит из нескольких миллионов строк кода и имеет неско...

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

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

Clean Decomposition Об использовании чистой архитектуры в Android сказано предостаточно. На GitHub можно найти десятки шаблонов на разные вкусы: на Java или Kotlin, с Dagger2 или Koin, с Rx или с Coroutines. Но никто не говорит о том, как разбить определенный функционал при использовании «чисто...

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

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

Использование DiagnosticSource в .NET Core: практика В предыдущей статье я рассказал про механизм DiagnosticSource и на простом примере показал, как с его помощью можно перехватывать запросы в базу данных через классы SqlConnection и SqlCommand и измерять время их выполнения. В настоящее время DiagnosticSource уже используется...

iOS 13: Что нужно и чего совершенно не нужно делать при разработке под новую ОС С момента выхода iOS 13 вышло бесчисленное количество обзоров, в которых уже рассказано о новых фишках системы для пользователей. Сегодня мы не будем подробно останавливаться на этом, но зато поговорим о том, что меняет iOS 13 для разработчика приложений. Читать дальше →

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

[Перевод] Как обучать детей правильно пользоваться технологиями, если в вашем детстве такого не было? Привет, Хабр! Предлагаю вашему вниманию перевод статьи "Children's Exposure to Digital Technology Causes Parental Anxiet" от Kim Flaherty и Kate Moran. Читать дальше →

Типичные ошибки при работе с PostgreSQL. Часть 2 Мы продолжаем публиковать видео и расшифровки лучших докладов с конференции PGConf.Russia 2019. В первой части доклада Ивана Фролкова речь шла о непоследовательном именовании, о constraints, о том, где лучше сосредоточить логику — в базе или в приложении. В этой части вас жд...

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

Apple выпустила iOS 12.4.1 с исправлением уязвимости для джейлбрейка Apple выпустила iOS 12.4.1, небольшое обновление, которое появилось через месяц после запуска iOS 12.4. Обновление iOS 12.4.1 доступно на всех беспроводных устройствах в приложении «Настройки». Чтобы получить доступ к обновлению, выберите «Настройки»> «Основные»> «Обно...

Слово не воробей. Ошибка в WhatsApp позволяет читать удалённые сообщения Пользователи популярного мессенджера WhatsApp нашли способ добраться до удалённых собеседниками сообщений. Об этом рассказало британское издание Mirror.  Способ восстановить удалённые сообщения использует функцию резервного копирования. У большинства пользователей...

[Перевод] Больше возможностей с паттернами в C# 8.0 Совсем недавно вышла Visual Studio 2019 Preview 2. И вместе с ней пара дополнительных функций C# 8.0 готова к тому, чтобы вы их опробовали. В основном речь идет о сопоставлении с образцом, хотя в конце я коснусь и некоторых других новостей и изменений. Эта статья на английск...

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

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

Что делает Bitfury: дайджест о наших разработках Это подборка материалов о наших блокчейн-решениях — Exonum, Crystal, Lightning Peach и Bitfury Clarke. Статьи под катом рассказывают, как отследить украденную криптовалюту на блокчейне, как охладить майнинговые чипы в дата-центре и как сварить кофе за биткоины. Читать даль...

Autodesk Maya: полезные базовые функции для работы с 3Д моделями Недавно я столкнулся лицом к лицу с таким зверем как Autodesk Maya. За плечами у меня не было опыта в работе с 3Д моделированием и пришлось в экстренном порядке прокачиваться, начиная с основ, а также ознакомится с функциональностью данного ПО, чтобы проверить работу плагина...

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

Deep (Learning+Random) Forest и разбор статей Продолжаем рассказывать про конференцию по статистике и машинному обучению AISTATS 2019. В этом посте разберем статьи про глубокие модели из ансамблей деревьев, mix регуляризацию для сильно разреженных данных и эффективную по времени аппроксимацию кросс-валидации. Читать да...

Стартовало публичное тестирование функции Xbox Console Streaming Помимо облачного сервиса потоковой передачи игр Project xCloud, Microsoft также работает над функцией Xbox Console Streaming, позволяющей использовать вашу собственную игровую консоль Xbox One в качестве сервера для стриминга игр на мобильные устройства. Участники программы...

[Перевод] Реверс-инжиниринг клиента Dropbox TL;DR. В статье рассказывается об обратной разработке клиента Dropbox, взломе механизмов обфускации и декомпиляции клиента на Python, а также изменении программы для активации функций отладки, которые скрыты в обычном режиме. Если вас интересует только соответствующий код и ...

Бессерверный REST API «на коленке за 5 минут» Привет, Хабр! Сегодня продолжим разговор о возможностях, которые предоставляет нам Amazon Web Services и о том, как эти возможности использовать в решении прикладных задач. На простом примере рассмотрим создание буквально за несколько минут собственного бессерверного автом...

Пишем свой язык программирования, часть 3: Архитектура транслятора. Разбор языковых структур и математических выражений Введение Приветствую вас, заинтересованные читающие разработчики на не важно каких языках, на которых я ориентирую эти статьи и чьи поддержку и мнения я ценю. Для начала, по устоявшимся традициям, я приведу ссылки на предыдущие статьи: Часть 1: пишем языковую ВМ Часть 2:...

Один из методов получения истории блокировок в PostgreSQL Продолжение статьи "Попытка создать аналог ASH для PostgreSQL ". В статье будет рассмотрено и показано на конкретных запросах и примерах — какую же полезную информацию можно получить с помощью истории представления pg_locks. Предупреждение. В связи с новизной темы и незавер...

Лучшие Copy-Paste алгоритмы для C и C++. Сборник рецептов Haiku OS Многочисленные опечатки и Copy-Paste код стали темой для дополнительной статьи о проверке кода Haiku анализатором PVS-Studio. Впрочем, будут ошибки, связанные не сколько с опечатками, а скорее с невнимательностью и неудачным рефакторингом. Найденные примеры ошибок демонстрир...

Huawei выпускает открытую бета-версию EMUI 10 для 8 устройств, включая серию Mate 20 В настоящее время Huawei выпускает открытую бета-версию EMUI 10 для восьми устройств на международном рынке, включая четыре устройства из серии Huawei Mate 20 и два устройства из европейской линейки Huawei P 2019 Smart. Mate 20 Pro от Huawei также получает бета-версию EMUI 1...

[Из песочницы] Машинное обучение для менеджеров: таинство сепуления Введение Очередной раз работая с компанией, делающей проект, связанный с машинным обучением (ML), я обратил внимание, что менеджеры используют термины из области ML, не понимая их сути. Хотя слова произносятся грамматически правильно и в нужных местах предложений, однако их ...

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

[Перевод] Визуализация работы PEG парсера В прошлый раз получился простой генератор парсера PEG. Сейчас же я покажу, что на самом деле делает сгенерированный парсер при разборе программы. Я погрузился в ретро-мир ASCII-арта, в частности, библиотеку с именем «curses», которая доступна в стандартной поставке Python дл...

[Перевод] Как разрабатываются и производятся процессоры: проектирование ЦП Теперь, когда мы знаем, как работают процессоры на высоком уровне, настало время углубиться в разбор процесса проектирования их внутренних компонентов. Это вторая статья из серии, посвящённой разработке процессоров. Рекомендую изучить для начала первую часть, чтобы вы поним...

[Перевод] Опыт кандидата при рекрутинге разработчиков программного обеспечения. Часть 1 День добрый, друзья. Сегодняшняя публикация будет не совсем типичной для нашего блога, потому как речь пойдет о рекрутинге разработчиков ПО, а точнее о практическом опыте кандидата. И приурочена данная статья к запуску нового потока по курсу «IT-Recruiter». Было доказано,...

iOS для творчества: рисование Привет! В прошлой статье я делал обзор возможностей iOS для написания музыки, а тема сегодняшней — рисование.  Я расскажу вам про Apple Pencil и другие приложения для работы с растровой и векторной графикой, пиксель-артом и другими видами рисования. Читать дальше →

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

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

Введение в Git Оглавление Предисловие 1. Настройка git ....1.1 Конфигурационные файлы ....1.2 Настройки по умолчанию ....1.3 Псевдонимы (aliases) 2. Основы git ....2.1 Создание репозитория ....2.2 Состояние файлов ....2.3 Работа с индексом ....2.4 Работа с коммитами ....2.5 Просмотр истори...

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

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

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

[Из песочницы] Управление текстом и локализация в веб-приложении Доброго времени суток, хабравчане! В данной статье я расскажу о простом варианте решения задачи управления текстом и локализацией в веб-приложении, который вы сможете сами реализовать или же воспользоваться готовым. Давно хотелось поделиться собственными мыслями и опытом… н...

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

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

Полет в стратосферу. Ломаем Struts через Action-приложение и мастерим Forward Shell Для подписчиковВ этой статье я покажу, как получить рут на виртуалке Stratosphere с CTF-площадки [Hack The Box](https://www.hackthebox.eu/). На этот раз мы повоюем с фреймворком Apache Struts для получения RCE, рассмотрим в действии редко обсуждаемую, но очень полезную конце...

Инфраструктура сборки проекта с docker На Хабре уже есть материалы про то, как настроить docker-контейнер для компиляции проекта. Например, Использование Docker для сборки и запуска проекта на C++. В этой статье, как и в предыдущей будет рассмотрен вопрос сборки проекта, но здесь я бы хотел выйти за рамки туториа...

[Из песочницы] Коротко о главном: Clean Architecture, Robert C. Martin Это будет рассказ о впечатлении о книге, а также будут рассмотрены некоторые понятия и знания, которые, благодаря этой книге, были изучены Архитектура Можете ли вы, читая эту публикацию, дать четкий ответ на вопрос, что такое архитектура? Что такое архитектура в контексте п...

[Из песочницы] Подводные камни разработки Google Play Instant Привет, Хабр! Меня зовут Камо Сперцян, я занимаюсь Android-разработкой в PROFI.RU. Недавно я написал приложение с мгновенным запуском для наших клиентов. Если вы ещё не знакомы с технологией, приглашаю вас сначала посетить Android Developers. С презентации Instant Apps (G...

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

Большинство антивирусных приложений для Android неэффективны Согласно европейской компании AV-Comparatives большинство антивирусных приложений в Google Play Store не работают должным образом. В своем недавнем тесте Android 250 приложений от Google Play Store в 2019 году AV-Comparatives обнаружили, что только 80 приложениям удало...

[Из песочницы] От поиска идеи, до готового приложения Наверно многие задумывались над тем, как можно реализовать свои знания в готовом продукте. Кто-то больше, кто то меньше потратил на это времени. Хочу поделиться с сообществом своим опытом и видением, как это надо делать правильно, но не всегда получается. Читать дальше &rar...

Компас команды Привет! Меня зовут Маша, я Scrum Master в ivi. Работаю с командами биллинга и веб-разработки и помогаю ребятам организовывать рабочие процессы так, чтобы не только эффективно достигать целей, которые ставит бизнес, но и получать удовольствие от того, что ты делаешь. В своих ...

[Из песочницы] Делаем простой Circuit Breaker на базе кеша в Spring Эта статья для тех, кто использует в своем приложении эффективный кеш и хочет простым добавлением 1 класса в проект добавить стабильности не только приложению, но и всему окружению. Если вы узнали себя, читайте дальше. Что такое Circuit Breaker Читать дальше →

Software Defined Radio — как это работает? Часть 3 Привет Хабр. Во второй части были рассмотрены практические аспекты использования SDR. В этой части мы разберемся, как принять данные метеоспутника NOAA с помощью Python и недорогого (30$) приемника RTL-SDR. Рассмотренный код будет работать везде — на Windows, OSX, Linux и д...

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

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

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

[Перевод] Ускоряем JavaScript-код с использованием типа данных Set Автор материала, перевод которого мы сегодня публикуем, говорит, что уверен в том, что многие JavaScript-разработчики пользуются, в основном, такими типами данных, как Number, String, Object, Array и Boolean. В большинстве случаев этого вполне достаточно. Но если нужно сдела...

[Перевод] [Иллюстрированное] Руководство по устройству сети в Kubernetes. Часть 3 Прим. перев.: Эта статья продолжает цикл материалов о базовом устройстве сетей в Kubernetes, что описывается в доступной форме и с наглядными иллюстрациями (впрочем, конкретно в этой части иллюстраций уже практически не оказалось). Переводя две предшествующие части этого цик...

Дискретная математика для WMS: алгоритм сжатия товаров в ячейках (часть 1) В статье мы расскажем, как решали проблему нехватки свободных ячеек на складе и о разработке алгоритма дискретной оптимизации для решения такой задачи. Расскажем о том, как мы «строили» математическую модель задачи оптимизации, и о том с какими трудностями мы неожиданно ст...

Тестирование на примере ReactJS: насколько глубока кроличья нора Всем привет, меня зовут Ярослав Астафьев, и сегодня я хотел бы провести обзорную экскурсию в тестирование ReactJS. Я не буду углубляться в сложности тестирования веб приложений с использованием определенных библиотек (руководствуясь подходом «сложно тестировать только плохой...

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

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

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

Security Week 35: статистика утекших паролей и атаки через Google Drive Прошедшая неделя отметилась как минимум двумя громкими событиями в сфере инфобезопасности. Впервые за долгое время для актуальных моделей Apple iPhone со свежей прошивкой iOS 12.4 доступен джейлбрейк (новость, пост на хабре). Джейлбрейк эксплуатирует уязвимость, которую закр...

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

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

Continuous Monitoring – автоматизация проверок качества ПО в CI/CD Pipeline Сейчас на хайпе тема DevOps. Конвейер непрерывной интеграции и доставки CI/CD внедряют все, кому не лень. Но большинство не всегда уделяют должное внимание обеспечению надежности работы информационных систем на различных этапах CI/CD Pipeline. В данной статье я хотел бы пого...

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

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

Сравнение малопопулярных и не очень CLI-библиотек: cliff, plac, plumbum и другие (часть 2) В экосистеме Python существует множество пакетов для CLI-приложений, как популярных, вроде Click, так и не очень. Наиболее распространённые были рассмотрены в предыдущей статье, здесь же будут показаны малоизвестные, но не менее интересные. Читать дальше →

История одного проекта: когда в команде нет senior developer От переводчика: публикуем для вас статью разработчика Джека Финлея. Джек рассказывает о собственном кейсе — попытке организовать работу командой джуниоров, где все равны и нет технического руководителя. Статья будет полезна для начинающих программистов. Некоторые проект...

[Из песочницы] Путь от хирургии к геймдеву или первый опыт мобильной разработки на Unity Зачем, кому и от кого Всем привет! Меня зовут Анатолий. Я хочу рассказать историю о наших первых шагах в геймдеве, чтобы поделиться пусть и небольшим, но всё же опытом. Зачем? Потому что всего 6 месяцев назад сам искал подобные публикации, перечитывал и выписывал советы. Над...

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

Edge-to-edge в Android: делаем правильно Прошедший Google I/O 2019 принёс массу нашумевших новинок, многие из которых будут влиять на индустрию мобильной разработки в ближайшие годы. Не менее интересно было следить за зарождающимися трендами. Сначала в историю ушли механические клавиши управления, экраны смартфонов...

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

Борьба со старением: cенолитики и заместительная терапия стволовыми клетками В данной статье мы попробуем рассмотреть два механизма старения и подходы к их терапии – сенесцентные клетки (ещё их называют дряхлыми) и их уничтожение; а также стволовые клетки и их восстановление и пополнение. Возможно борьба с дряхлыми клетками и увеличение пула стволовы...

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

[Перевод] Что такое таблица виртуальных таблиц? Однажды в Slack я наткнулся на новый акроним для моего глоссария акронимов C++: “VTT.” Godbolt: test.o: In function `MyClass': test.cc:3: undefined reference to `VTT for MyClass' “VTT” в данном контексте означает «таблица виртуальных таблиц» (virtual table table). Это вспом...

Менеджмент знаний в международных стандартах: ISO, PMI Всем привет. После KnowledgeConf 2019 прошло уже полгода, за это время я успел выступить еще на двух конференциях и провести лекции на тему управления знаниями в двух крупных ИТ-компаниях. Общаясь с коллегами, я понял, что в ИТ пока можно говорить об управлении знаниями на у...

[Из песочницы] Android preferences delegate В данной статье разобран пример создания делегата для SharedPreferences, который уменьшает boilerplate и делает использование SharedPrefernces более удобным. Те кто хочет посмотреть результат, может перейти к готовому решению, остальным добро пожаловать под кат. Читать дальш...

Современный валютный рынок Маринус ван Реймерсвале. Меняла и его жена. 1539 г. Музей Прадо, Мадрид. Я начал работать в Deutsche Bank программистом на Java в 2009-м году (последствия кризиса, чудо на Гудзоне, «Миллионер из трущоб», свиной грипп, поражение сборной в Мариборе). На собеседовании мне соо...

Английский язык в Индии: исторический экскурс Языковая политика в Индии на протяжении всей истории государства отличалась лояльностью ко всем языковым группам. В Конституции Индии указан 21 язык, которые имеют статус государственных. А в целом в Индии насчитывается более 1600 отдельных языков и диалектов. Хинди — это о...

[Из песочницы] Как искусственный интеллект помогает управлять проектами Обзор современного применения искусственного интеллекта для управления проектами Может показаться удивительным, но вопросу применения искусственного интеллекта для управления проектами насчитывается уже более 30 лет. Еще в 1987 году вышла знаковая статья Уильяма Хосли «Ис...

[Перевод] WolframClientForPython | Новая клиентская библиотека Wolfram Language для Python Оригинал перевода в моём блоге Получение полного доступа к языку Wolfram Language из языка Python Язык Wolfram (Wolfram Language) дает программистам в руки уникальный язык с огромным множеством сложных алгоритмов, а также встроенных знаний об окружающем мире. На протяжении...

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

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

[Перевод] Основы внедрения зависимостей В этой статье я расскажу об основах внедрения зависимостей (англ. Dependency Injection, DI) простым языком, а также расскажу о причинах использования этого подхода. Эта статья предназначена для тех, кто не знает, что такое внедрение зависимостей, или сомневается в необходим...

[Из песочницы] Типичные ошибки Владельца продукта в Скраме Что делать, если вы не знаете, что такое Скрам? В первую очередь стоит хотя бы прочесть Руководство по Скраму (PDF) и начать ему следовать. Если вы не следуете этому руководству, значит вы делаете что угодно, только не Скрам. По сути Владелец продукта занимается максимизацие...

Roland GO:PIANO 88 - портативное цифровое пианино для начинающих Производитель музыкального оборудования Roland представил портативное цифровое пианино GO:PIANO 88, которое ориентировано для использования начинающими музыкантами. Новинка поддерживает 128 голосную полифонию и предлагает высококачественный натуральный звук.GO:PIANO имеет 88...

Neural Quantum States — представление волновой функции нейронной сетью В этой статье мы рассмотрим необычное применение нейронных сетей в целом и ограниченных машин Больцмана в частности для решения двух сложных задач квантовой механики — поиска энергии основного состояния и аппроксимации волновой функции системы многих тел. Читать дальше →

Экономия на мобильной кросс-платформенной разработке: кейс Skyeng Привет, я Андрей Кучеренко, тимлид мобильной разработки Skyeng. Мы делаем мобильные приложения под iOS и Android. У них одинаковая функциональность и одинаковый с точностью до стилистики интерфейс. Но из-за разных платформ разработка вроде бы одного приложения получается до...

Структура DNS пакета Предисловие Решил как то написать снифер DNS, так сказать just for fun. Просто посмотреть какие адреса в моей системе резолвятся. Протокол старый, документации должно быть много. Много. Но все статьи очень не полные и заканчиваются, на самом интересном моменте. Да, есть rf...

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

[Из песочницы] Сравнение: Svelte и React На сайте React'a есть туториал, в котором описывается разработка игры Tic Tac Toe. Я решил повторить разработку этой игры на Svelte. Статья охватывает только первую половину туториала, до реализации истории ходов. Для целей ознакомления с фреймворком этого вполне достаточно....

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

Телеком-дайджест: о построении сетей операторов, интернет-протоколах и ИБ Это — подборка тематических материалов, написанных нашими экспертами: статьи о борьбе с ботнетами, ошибках провайдеров при развёртке инфраструктуры, а также квантовых сетях и eSIM. Читать дальше →

Как правильно писать ассерты Поговорим теперь об ассертах Ассерты — одна из само собой разумеющихся вещей, поэтому все тут, казалось бы, специалисты. Кто-то пользуется встроенными в Java или в Junit, кто-то пользуется продвинутыми библиотеками, кто-то сооружает собственную. Но попробуем подойти к это...

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

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

5 способов полезного использования Raspberry Pi. Часть третья Привет Хабр. Во второй части были рассмотрены 5 способов использования Raspberry Pi. И как оказывается, этот микрокомпьютер способен ещё на большее. Сейчас мы рассмотрим еще 5, надеюсь, не менее интересных возможностей Raspberry Pi. Как и в предыдущей части, будут рассмо...

[Из песочницы] Тернистый путь в программирование Привет, Хабр. Данная статья ориентирована на школьников 8-10 класса и студентов 1-2 курсов, которые мечтают посвятить жизнь IT, хотя, возможно более «старые» личности найдут ее не менее занимательной. Итак, сейчас я поведаю свою историю и попытаюсь на своем примере предосте...

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

[Из песочницы] Настройка NextCloud + ONLYOFFICE на одном сервере с помощью Docker Привет, Хабр! представляю вашему вниманию перевод статьи «Setting up NextCloud and ONLYOFFICE on a single server with Docker». Сложно недооценивать пользу онлайновых пакетов офисных приложений наподобие Google Docs и облачных хранилищ в жизни технически ориентированных люде...

5 способов полезного использования Raspberry Pi Привет Хабр. Raspberry Pi наверное есть дома почти у каждого, и рискну предположить, что у многих она валяется без дела. А ведь Raspberry это не только ценный мех, но и вполне мощный fanless-компьютер с Linux. Сегодня мы рассмотрим полезные возможности Raspberry Pi, для исп...

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

[Перевод] Reflective Shadow Maps: Часть 2 ― Реализация Привет, Хабр! В данной статье представлена простая реализация Reflective Shadow Maps (алгоритм описан в предыдущей статье). Далее я объясню, как я это сделал и какие подводные камни были. Также будут рассмотрены некоторые возможные оптимизации. Рисунок 1: Слева направо: бе...

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

3. Типовой сценарий внедрения Check Point Maestro В прошлых двух статьях (первая, вторая) мы рассмотрели принцип работы Check Point Maestro, а также технические и экономические преимущества этого решения. Теперь хотелось бы перейти к конкретному примеру и описать возможный сценарий внедрения Check Point Maestro. Я покажу ...

[Из песочницы] Как создать простой микросервис на Golang и gRPC и выполнить его контейнеризацию с помощью Docker Привет, Хабр! представляю вашему вниманию перевод статьи «Go, gRPC and Docker» автора Mat Evans. Существует множество статей о совместном использовании Go и Docker. Создавать контейнеры, способные взаимодействовать с клиентами и между собой, очень легко. Далее следует небол...

Множественные эксперименты: теория и практика В современном мире сложно представить развитие продукта без A/B-тестирования. Чтобы успешно запустить продукт или новую функциональность — надо грамотно спроектировать A/B, рассчитать и интерпретировать его результаты. Иногда нам требуется тестирование более чем для двух гру...

Создаём голосовое приложение на примере Google Assistant Каждый пятый житель США владеет умной колонкой, а это 47 000 000 человек. Помощник может создать напоминание, список дел, будильник, таймер, прочитать новости, включить музыку, подкаст, заказать доставку, купить билеты в кино и вызвать такси. Все это «навыки» или «skills» по...

Новое приложение 3CX для Android — ответы на вопросы и рекомендации На прошлой неделе мы выпустили обновление 3CX v16 Update 3 и новое приложение (мобильный софтфон) 3CX для Android. Софтфон предназначен для работы только с 3CX v16 Update 3 и выше. У многих пользователей возникли дополнительные вопросы о работе приложения. В этой статье мы о...

BGP hijacking с помощью добавления AS жертвы в AS-SET атакующего Статья поделена на три части части. В первой содержится общая информация о том что такое BGP hijacking и его традиционный вариант. Для тех кто знаком с этим явлением, рекомендуется перейти сразу ко второй части. Во второй части будет описан метод анонсирования чужих префиксо...

Как настроить Continuous Deployment для своего проекта: личный опыт Перевели для вас статью Юлиуса Минмо о настройке непрерывной интеграции (Continuous Deployment) для своего проекта. Автоматизация позволяет сэкономить кучу времени и сил. Статья будет полезна, в первую очередь, начинающим программистам. Непрерывная интеграция — отличная ...

[Перевод] 39 новых фич, которые будут доступны в Java 12 Из замечательного интервью на Хабре: «Саймон Риттер — человек, который работал над Java с самого начала и продолжает делать это в роли заместителя технического директора Azul — компании, работающей над виртуальной машиной Zing JVM и одним из лучших сборщиков мусора, C4 (Cont...

[recovery mode] Как выбрать лучшее место для открытия филиала и визуализировать результаты на картах Выбор места для нового филиала — ответственное решение. Ошибка может стоить дорого, особенно в капиталоемких отраслях. Чаще всего такие решения принимаются менеджментом экспертно: на основе знания города, отрасли, предыдущего опыта. В статье я расскажу о том, как аналитика...

Как не надо просить о помощи: 4 самые распространённые ошибки Проверьте, делаете ли так и вы.

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

[Из песочницы] OpenVPN и Active Directory (Kerberos без пользовательских сертификатов) Про OpenVPN написано много гайдов, в том числе и про авторизацию через Active Directory. Большинство из них сводится к использованию LDAP, подхода с использованием Kerberos, оформленного в полноценную статью, я не нашел. Впрочем, чего-то нового тут изобретено не будет, я лиш...

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

[Из песочницы] Невидимый деплой монолитного приложения в продакшн на AWS. Личный опыт Я – Lead DevOps Engineer в международной SaaS-компании. Мы разрабатываем платформу для совместной работы кроссфункциональных команд. В статье поделюсь тем, как наша DevOps-команда решила проблему ежедневных серверных релизов монолитного stateful-приложения и сделала их автом...

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

Повышаем информативность ошибок в Go – github.com/ztrue/tracerr После многолетнего опыта работы с php и js, я привык иметь в ошибках стектрейс и смотреть на место, где произошла ошибка прямо из эррор-репорта. Пересев на Go пару лет назад, я был несколько удивлен, что в Go другие правила и нужно угадывать стектрейс по какой-нибудь строке ...

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

[Перевод] Использование UIViewPropertyAnimator для создание пользовательских анимаций Создание анимаций это здорово. Они являются важной частью iOS Human Interface Guidelines. Анимации помогают привлечь внимание пользователя к важным вещам или попросту делают приложение не таким скучным. Существует несколько способов реализовать анимацию в iOS. Вероятно, са...

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

История о том, как PVS-Studio нашёл ошибку в библиотеке, используемой в… PVS-Studio Это небольшая история о том, как с помощью PVS-Studio удалось найти ошибку в исходном коде библиотеки, используемой в PVS-Studio. Причём не теоретическую, а фактическую — ошибка проявлялась на практике при использовании библиотеки в анализаторе. Читать дальше →

Настройка Warnings Next Generation плагина для интеграции PVS-Studio Релиз PVS-Studio 7.04 совпал c релизом плагина Warnings Next Generation 6.0.0 для Jenkins. Как раз в этом релизе Warnings NG Plugin добавил поддержку статического анализатора PVS-Studio. Этот плагин визуализирует данные о предупреждениях компилятора или других инструментов ...

[Из песочницы] Создание Android приложения с использованием Anko Layouts и Anko Coroutines Примерно год назад я начал использовать Kotlin в своих Android проектах. Мне хотелось попробовать что-то новое, что было бы интересно изучать. Тогда я и наткнулся на Anko. К тому времени писать UI на xml порядком осточертело. Мне всегда нравилось писать интерфейс руками, не...

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

[Перевод] Серверный рендеринг в бессерверной среде Автор материала, перевод которого мы публикуем, является одним из основателей проекта Webiny — бессерверной CMS, основанной на React, GraphQL и Node.js. Он говорит, что поддержка многоарендной бессерверной облачной платформы — это дело, которому свойственны особенные задачи....

Как адаптировать UX/UI под permissions Во многих проектах существует процессы аутентификации (в той или иной степени). Написано много “бест практис” во всех известных технологиях и т.д. и т.п. Но вот пользователь сделал логин и? Ведь он далеко не всё может сделать. Как определить что он может видеть, а что нет. ...

Эволюция программного проекта и ООП Осваивая рецепты эффективного развития программного проекта, постарался для себя найти причины, делающие полезным использование принципов развития архитектуры SOLID (статья Как не понимать принципы развития архитектуры SOLID). Анализ этих принципов позволил выделить несколь...

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

[Перевод] Что я узнал про оптимизацию в Python Всем привет. Сегодня хотим поделиться еще одним переводом подготовленным в преддверии запуска курса «Разработчик Python». Поехали! Я использовал Python чаще, чем любой другой язык программирования в последние 4-5 лет. Python – преобладающий язык для билдов под Firefox, те...

Книга «Swift. Основы разработки приложений под iOS, iPadOS и macOS. 5-е изд. дополненное и переработанное» Привет, Хаброжители! Язык Swift молод, он растет, развивается и изменяется, хотя основные подходы к программированию и разработке уже сформировались. В новом, пятом издании книги была полностью переработана первая часть книги, что делает знакомство с языком Swift более комф...

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

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

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

Уязвимость блокировщика экрана в Astra Linux Special Edition (Смоленск) В данной статье мы рассмотрим очень одну интересную уязвимость в «отечественной» операционной системе Astra Linux, и так, начнем… Читать дальше →

Методика D.I.Y. проекта. Часть вводная Данная статья написана радиолюбителем, имеющим опыт руководства проектами по разработке и постановке на производство сложной радиоэлектронной аппаратуры. Цель данной статьи: помочь энтузиастам в организации их проектной деятельности, а также обозначить различия в подходах ...

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

Учебные проекты на Godot — Pong (часть 2) Создание и настройка мяча Приветствую вас, хабровчане! В этой части я буду создавать и настраивать мяч для игры Pong. Если вы пропустили начало, то оно здесь. Уровень статьи по прежнему начинающий. Под катом по прежнему много скринов.Зовите детей и welcome под кат. Читать дальше →

Управление параметрами в бизнес-приложениях по аналогии с системой контроля версий В различных приложениях регулярно возникает задача по поддержке логики изменения во времени некоторого атрибута объекта относительно некоторого субъекта (или субъектов). Например, это может быть изменение розничной цены товара в магазинах или показателей KPI для сотруднико...

Работа с навигацией при рефакторинге легаси проекта в React Native Данный материал посвящен работе по рефакторингу навигации в мобильной разработке. В статье приведены примеры возможных проблем, а также выходов из сложных ситуаций, связанных с работой навигации в мобильной разработке на React Native. Мы рассмотрим основные особенности и ...

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

[Перевод] Недоступная роскошь от Intel: Core i9-9990XE с 14 ядрами на частоте 5,0 ГГц (2 часть) Недоступная роскошь от Intel: Core i9-9990XE с 14 ядрами на частоте 5,0 ГГц (1 часть) Системные тесты В разделе «Системные тесты» основное внимание уделяется тестированию в реальных условиях, с которыми сталкивается потребитель, с небольшим уклоном в пропускную способность....

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