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

[Перевод] О главнейшей причине существования современных JS-фреймворков Автор материала, перевод которого мы публикуем сегодня, говорит, что ему очень и очень часто приходилось видеть, как веб-разработчики бездумно пользуются современными фреймворками вроде React, Angular или Vue.js. Эти фреймворки предлагают много интересного, но, как правило...

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

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

[Из песочницы] Почему не стоит использовать LocalStorage Привет, Хабр! Представляю вашему вниманию перевод статьи "Please Stop Using Local Storage" автора Randall Degges. Все больше разработчиков используют localStorage для хранения данных, в том числе и конфиденциальных, даже не подозревая, что тем самым подвергают свои сайты взл...

Учебный фреймворк на Java по глубокому обучению Недавно мы выпустили первую версию нового фреймворка по глубокому обучению DeepJava (DJ) 0.01. Основная цель фреймворка, по крайней мере, на текущий момент, чисто учебная. Мы строим шаг за шагом фреймворк, у которого: будет понятная кодовая база будет набор бранчей, по кото...

[Перевод] Использование ReSwift: написание приложения Memory Game Примечание. В этой статье используются Xcode 8 и Swift 3. По мере того, как размеры iOS приложений продолжают увеличиваться, паттерн MVC постепенно теряет свою роль как «подходящего» архитектурного решения. Для iOS разработчиков доступны более эффективные архитектурные п...

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

Вопросы совместимости Tibero и Oracle. Часть 2. Разработка Java приложений Мы продолжаем цикл статей разработчиков приложений для баз данных. Эта статья затронет тему использования Tibero в Java приложениях использующих JDBC и Hibernate, а также фреймворк Spring Roo. Читать дальше →

[Перевод] Создание игры на Lua и LÖVE — 5 Оглавление Статья 1 Часть 1. Игровой цикл Часть 2. Библиотеки Часть 3. Комнаты и области Часть 4. Упражнения Статья 2 Часть 5. Основы игры Часть 6. Основы класса Player Статья 3 Часть 7. Параметры и атаки игрока Часть 8. Враги Статья 4 Часть 9. Режиссёр и игровой цикл Ч...

[Из песочницы] Почему Ramda? Пост содержит перевод статьи «Why Ramda?», которую подготовил один из контрибьютеров Скот Сайет. Статья была опубликована 10 Июня 2014 года на сайте и рассказывает о том почему стоит обратить своё внимание на библиотеку Ramda и функциональное программирование в целом. Примеч...

[Перевод] Создание игры на Lua и LÖVE — 6 ОглавлениеОглавление Статья 1 Часть 1. Игровой цикл Часть 2. Библиотеки Часть 3. Комнаты и области Часть 4. Упражнения Статья 2 Часть 5. Основы игры Часть 6. Основы класса Player Статья 3 Часть 7. Параметры и атаки игрока Часть 8. Враги Статья 4 Часть 9. Режиссёр и игро...

[Перевод] Создание игры на Lua и LÖVE — 4 Оглавление Статья 1 Часть 1. Игровой цикл Часть 2. Библиотеки Часть 3. Комнаты и области Часть 4. Упражнения Статья 2 Часть 5. Основы игры Часть 6. Основы класса Player Статья 3 Часть 7. Параметры и атаки игрока Часть 8. Враги Статья 4 Часть 9. Режиссёр и игровой цикл Ч...

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

[Перевод] Погружение в службы Android Перевод статьи "Deep Dive into Android Services" от Nazmul Idris. Я оставил оригинальное название автора, хотя это скорее не "погружение", а "знакомство". Думаю, текст будет полезен начинающим разработчикам. Статья отлично дополняет офф. документацию по службам на Android. ...

[Из песочницы] Создание и хостинг телеграм бота. От А до Я Привет, хабрчане! Какой бы заезженной не была тема создания телеграм бота на python3, я не нашёл инструкций, где показан путь от первой строчки кода до деплоинга бота (по крайней мере все методы, что я видел, немного устарели). В этой статье я хочу показать процесс создания ...

Нагрузочное тестирование «не-HTTP». Ч.2 Gatling В первой части статьи мы провели сравнительный анализ средств нагрузки на Java для JMeter, ушли от XML тест-планов и достигли 30K RPS с одной машины, нагружая «не-HTTP» сервис на примере Apache Thrift. В этой статье рассмотрим еще один инструмент для нагрузочного тестирова...

[Из песочницы] Что такое gtag.js в Google Analytics и нужен ли он вам? Вы читаете перевод статьи "What Is gtag.js with Google Analytics and Do I Need It?" автора Amanda Schroeder. Если недавно вы добавляли код отслеживания Google Analytics на сайт, то заметили совершенно другой код счётчика, который выглядит так: Сложилась какая-то ...

Уязвимости вашего приложения Актуальны ли ещё угрозы XSS? Прошло около 20 лет с тех пор, как Cross Site Scripting (XSS) появился как вид атаки. С тех пор мы получили богатый опыт и знания, защита наших сайтов стала намного сложнее, а многочисленные фреймворки были призваны оберегать нас от ошибок. Но по...

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

[Из песочницы] Программирование согласно контракту на JVM Привет, Хабр! Представляю вашему вниманию перевод статьи "Programming by contract on the JVM" автора Nicolas Fränkel. Читать дальше →

[Из песочницы] Паттерны проектирования в Cocos2d-x Привет, Хабр! Представляю вашем вниманию перевод статьи "Design Patterns in Cocos2d-x" автора Aleksei Pinchuk. Статья будет интересна для разработчиков Cocos2d-x и тех, кто изучает паттерны. Она выполнена в форме краткого конспекта, в котором можно быстро посмотреть где при...

[Из песочницы] Blockchain на Go. Часть 4: Транзакции, часть 1 Привет, Habr! Представляю вашему вниманию перевод статьи "Building Blockchain in Go. Part 4: Transactions 1". Содержание Blockchain на Go. Часть 1: Прототип Blockchain на Go. Часть 2: Proof-of-Work Blockchain на Go. Часть 3: Постоянная память и интерфейс командной строки ...

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

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

[Из песочницы] Как быть* компилятором — создание компилятора на JavaScript Привет, Хабр! Представляю вашему вниманию перевод статьи "How to be* a compiler — make a compiler with JavaScript" автора Mariko Kosaka. *Все верно! Быть компилятором — это здорово! Дело было одним замечательным воскресеным днем в Бушвике, Бруклин. В моем местном книжном м...

[Из песочницы] Разработка высоконагруженного WebSocket-сервиса Как создать веб-сервис, который будет взаимодействовать с пользователями в реальном времени, поддерживая при этом несколько сотен тысяч коннектов одновременно? Всем привет, меня зовут Андрей Клюев, я разработчик. Недавно я столкнулся с такой задачей – создать интерактивный ...

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

Как поднять проект на PHP в Docker под Windows Чем является статья Статья является набором простых, понятных инструкций и советов для пользователей Docker под Windows. Статья поможет разработчикам на PHP быстро поднять проект. Описываются проблемы и их решения. Статья полезна тем, кто не обладает бесконечным ресурсом вре...

Swift vs. Kotlin. Отличия важны Этот пост является вольным переводом статьи Swift vs. Kotlin — the differences that matter by Krzysztof Turek Вы наверняка видели это сравнение Swift и Kotlin. Довольно интересное, правда? Я согласен, что в этих языках много схожего, но в этой статье я обращу внимание на не...

[Из песочницы] Совершенствуем Redux Привет, Хабр! Представляю вашему вниманию перевод статьи "Redesigning Redux" автора Shawn McKay. Должно ли управление состоянием вызывать проблемы на сегодняшний день? Интуитивно, разработчики видят скрытую правду: управление состоянием куда сложнее, чем должно бы...

APTSimulator — тестирование противодействия APT угрозам   APT Simulator — это фреймворк для проверки защитных средств и действия по расследованию инцидентов в Windows среде, имитирующий активность нарушителя информационной системы. Это хорошая платформа для тренировки Blue Team команды для противодействия современным угрозам. Чи...

Mozilla разработала открытый шлюз для Интернета вещей Apple, Google, Amazon, Samsung — у каждой из этих компаний собственные стандарты и программы для управления «умными» устройствами собственной марки. В результате они зачастую могут общаться только со своими «родственниками» производства той же фирмы. Смарт-колонка Apple Ho...

Мобильное приложение на Python c kivy/buildozer. Лекция в Яндексе Не факт, что вам потребуется написать серьёзное приложение на Python. А вот быстро собрать работающий сервис, чтобы «продать» его заказчику, — почему нет? Python универсален, и опыт создания мобильного софта на этом языке может оказаться полезным. Владислав Шашков из Сбербан...

PowerAR — объединяем PowerBI и ARKit на поверхности стола Привет, Хабр! Помните недавнюю конференцию Apple, на которой был представлен ARKit? Ой, стоп-стоп, это же блог Microsoft. Хотя, почему бы и нет. Ведь наши партнеры решили поэкспериментировать и совместить новый фреймворк от Apple с возможностями сервиса PowerBi от Microsoft....

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

[Перевод] Dependency injection От переводчика Представляемый вашему вниманию перевод открывает серию статей от Jakob Jenkov, посвященных внедрению зависимостей, или DI. Примечательна серия тем, что в ней автор, анализируя понятия и практическое применение таких понятий как «зависимость», «внедрение зависи...

[Перевод] Начинающему веб-мастеру: делаем одностраничник на Bootstrap 4 за полчаса Фреймворк Bootstrap — это свободный набор инструментов для создания интерфейсов сайтов и веб-приложений. Его возможности ориентированы исключительно на фронтенд-разработку. Bootstrap — проект весьма популярный, о чём, например, говорит то, что он занимает (по состоянию на на...

[Из песочницы] Удивительно простой обмен сообщениями с Spring Cloud Stream Привет, Хабр! Представляю вашему вниманию перевод статьи "Surprisingly simple messaging with Spring Cloud Stream" автора Richard Seroter. Существует множество вариантов взаимодействия микросервисов. Вы можете использовать обнаружение сервисов (Service Discovery, н...

[Из песочницы] Почему вы должны дать еще один шанс замыканию Привет, Хабр! Представляю вашему вниманию перевод статьи «Why you should give the Closure function another chance» автора Cristi Salcescu. В JavaScript функции могут быть вложены внутри других функций.Замыкание это когда внутренняя функция имеет доступ к переменным родитель...

[Из песочницы] Как объяснить родственникам кто вы в мире ИТ на примере булочек Привет, Хабр! Представляю вашему вниманию перевод статьи "How to Explain Your Tech Job to Your Family" автора Mischa von Nachtigal. Список метафор, которые с легкостью помогут вам передать суть вашей профессии в ИТ за обеденным столом. Итак поехали! Читать даль...

[Перевод] Создание игры на Lua и LÖVE — 7 ОглавлениеОглавление Статья 1 Часть 1. Игровой цикл Часть 2. Библиотеки Часть 3. Комнаты и области Часть 4. Упражнения Статья 2 Часть 5. Основы игры Часть 6. Основы класса Player Статья 3 Часть 7. Параметры и атаки игрока Часть 8. Враги Статья 4 Часть 9. Режиссёр и игро...

[Из песочницы] Понять Биткойн и будущее. Как то, что вы знаете, будет переосмыслено навсегда Привет, Хабр! Представляю вашему вниманию перевод статьи "Understanding Bitcoin and the Future. How What You Know Will Be Redefined Forever" автора Andrian Iliopoulos. Bitcoin. Криптовалюта. Децентрализованное приложение. Пузырь. Инвестиции. Спекуляции. Следующа...

Анонс Moscow Spark #4 Всем привет! Новый год, новый Spark, новый Moscow Spark! Мы стартуем новый сезон нашего замечательного мероприятия 19 апреля на Мансарде Rambler&Co. Фреймворк не стоит на месте и мы тоже, в этот раз представим новый сайт сообщества и опробуем формат со звездой из-за руб...

Задай вопрос создателю Vue.js Vue — JavaScript фреймворк для разработки веб-приложений на JavaScript, созданный Эваном Ю (Evan You) в 2013 году. Vue нашел золотую середину между React и Angular и испытал взрывной рост в последние два года, попав в тройку лидирующих JS фреймворков. В отличии от Angular/...

Тернарные операторы и логическое “И” в React.js Всем привет! Вы читаете перевод статьи Donavon West “Conditional Rendering in React using Ternaries and Logical AND” Существуют несколько способов заставить React рендерить то, что вам нужно. Вы можете использовать традиционный оператор if или switch. В этой статье мы рас...

SvelteJS: Релиз второй версии Буквально вчера вышла 2-я версия молодого, но весьма многообещающего фреймворка SvelteJS. Версия мажорная, а значит содержит не только новые фичи и исправленные баги, но и соответствующие «breaking changes». Что новенького предлагает разработчикам новая версия и почему Svelt...

[Из песочницы] Смена профессии: из графического дизайнера в фронтенд-разработчика Привет, Хабр! Представляю вашему вниманию перевод статьи "How I transitioned from a graphic designer to front-end developer in 5 months" автора Vince MingPu Shao. 2017 год оказался для меня сложным, но захватывающим. Я бросил работу графического дизайнера в Марте,...

[Перевод] Как работает JS: движки рендеринга веб-страниц и советы по оптимизации их производительности Сегодня, в переводе одиннадцатой части серии материалов, посвящённых JavaScript, мы поговорим о подсистемах браузера, ответственных за рендеринг веб-страниц. Они играют ключевую роль в деле преобразования описаний документов, выполненных с помощью HTML и CSS, в то, что мы ви...

Apple и IBM превратят iPhone в суперкомпьютер Apple и IBM объявили о намерении развивать технологии машинного обучения в рамках совместного проекта по совершенствованию фреймворка Core ML. Об этом во вторник, 20 марта, сообщает TechCrunch. Объединение усилий поможет компаниям более основательно продвинуться в развитии...

Глобальное освещение с использованием трассировки вокселей конусами В этой статье я расскажу о реализации одного из алгоритмов расчёта глобального (переотражённого / ambient) освещения, применяемого в некоторых играх и других продуктах, — Voxel Cone Tracing (VCT). Возможно, кто-то читал старенькую статью ([VCT]) 2011 года или смотрел видео. ...

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

[Перевод] Землю унаследуют роботы? Говорят, обещанного три года ждут. Вот и я в комментарии к статье vmb обещала перевести главу из книги Zero Day, но пока собиралась — всю книгу уже перевели. Так что выкладываю тут перевод статьи Марвина Л. Мински о будущем и развитии человека. За наводку на статьи Мински с...

Понимание lvalue и rvalue в C и С++ Eli Bendersky, Understanding of lvalues and rvalues in C and C++ (https://eli.thegreenplace.net/2011/12/15/understanding-lvalues-and-rvalues-in-c-and-c) От переводчика: предлагаю Вашему вниманию перевод интересной статьи об lvalue и rvalue в языках C/C++. Тема не нова, но з...

[Перевод] Понимая зависимости От переводчика Мы должны внедрять, а не фантазировать! (Рина Зеленая, к/ф «Девушка без адреса») К переводу этой статьи меня побудили две причины: 1) желание лучше разобраться с фреймворком Spring, 2) небольшое количество источников по теме на русском языке. Краеугольный ...

[Перевод] Создание игры на Lua и LÖVE — 3 Оглавление Статья 1 Часть 1. Игровой цикл Часть 2. Библиотеки Часть 3. Комнаты и области Часть 4. Упражнения Статья 2 Часть 5. Основы игры Часть 6. Основы класса Player Статья 3 Часть 7. Параметры и атаки игрока Часть 8. Враги 9. Director and Gameplay Loop 10. Coding ...

[Из песочницы] Обеспечение автоматизации проверки владения доменом на основе DNS-записей в протоколе ACME [перевод] От переводчика: Это перевод статьи от EFF A Technical Deep Dive: Securing the Automation of ACME DNS Challenge Validation. Автор оригинальной статьи: Joona Hoikkala. Дата оригинальной публикации: 23 февраля 2018 Ранее в этом месяце, Let's Encrypt (бесплатный, автоматизирова...

Юнит тесты при использовании корутин в Android приложении Перевод статьи. Оригинал находиться здесь. В этой статье не рассматривается принцип работы корутин. Если вы не знакомы с ними, то рекомендуем прочитать введение в kotlinx git repo. Статья описывает трудности при написании юнит тестов для кода, использующего корутины. В конц...

Автоматическая векторизация спутниковых снимков: одна модель — два первых места Всем привет! В данной статье хочу поделиться с вами историей о том, как одна и та же архитектура модели принесла сразу две победы в соревновательном машинном обучении на платформе topcoder с интервалом месяц. Речь пойдёт о следующих соревнованиях: Urban 3d mapper — поиск ...

Как ускорили PostgreSQL 10 (В статье использованы примеры и пояснения из книги Nouveaulités de PostgreSQL 10. (с) Dalibo, перевод с французского Игоря Лёвшина, редактор Егор Рогов (оригинал). Примеры проверены, иногда изменены для большей наглядности) Конечно, мы уже ждем не дождемся появления 11-й ве...

Google намерена унифицировать приложения для iOS и Android Google начинает бета-тестирование фреймворка Flutter, который позволит разработчикам создавать универсальные приложения для Android и iOS. Об этом пишет TechCrunch со ссылкой на официальных представителей компании. По их словам, новейший продукт призван облегчить жизнь раз...

Создаем TUI на python Привет, Хабр! В этой статье я расскажу про npyscreen — библиотеке для создания текстовых интерфейсов для терминальных и консольных приложений. Читать дальше →

[recovery mode] Решаем загадку круглых чисел на графике выборов 2018 Данная статья является ответом на вот эту статью (Анализ результатов президентских выборов 2018 года. На федеральном и региональном уровне). В той статье меня удивила фраза автора: Вместо нормального или логнормального распределения мы видим интересную кривую, с очень стр...

[Перевод] Как создать нейросеть всего из 30 строк JavaScript-кода Перевод How to create a Neural Network in JavaScript in only 30 lines of code. В этой статье мы рассмотрим, как можно создать и обучить нейросеть с помощью библиотеки Synaptic.js, позволяющей проводить глубокое обучение в связке Node.js с браузером. Давайте создадим прост...

[Из песочницы] REST API Best Practices Привет, Хабр! Представляю вашему вниманию перевод статьи "REST API Best Practices" автора Krishna Srinivasan. REST становится общим подходом для представления сервисов окружающему миру. Причина его популярности заключается в его простоте, легкости использования, доступе чер...

[Из песочницы] Знакомство с новым элементом dialog Привет, Хабр! Представляю вашему вниманию перевод статьи "Meet the New Dialog Element" автора Keith J. Grant. HTML 5.2 представил новый элемент dialog для нативных модальных окон. На первый взгляд, он кажется довольно простым (так и есть), но поигравшись с ним я о...

[Перевод] Машина времени на Java В мире существует множество клёвых маленьких библиотек, которые как бы и не знаменитые, но очень полезные. Идея в том, чтобы потихоньку знакомить Хабр с такими вещами под тэгом #javalifehacker. Сегодня речь пойдёт о time-test, в котором всего 16 коммитов, но их хватает. Авто...

Алгоритм выбора location в Nginx Алгоритм выбора location обязателен к знанию при настройке nginx. Тем не менее, на официальном сайте nginx (на 2018 год) не сказано ни слова про алгоритм выбора в случаях, когда какие-то location'ы вложены друг в друга, а в статьях в интернете приводятся в корне неверные алг...

[Из песочницы] Операция «Ы» и новая библиотека ABI Рад приветствовать тебя, дорогой читатель! В данной статье пойдет речь о новой библиотеке «ABI Model Pattern». Наверное, было бы логично предоставить какой-то пример, чтобы показать все возможности этой библиотеки, но вот и нетушки… Сейчас я опишу только достаточный минимум...

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

Применение Tarantool: хранимые процедуры Перевод статьи с DZone. Оригинал: https://dzone.com/articles/applications-for-tarantool-part-1-stored-procedure. Я хочу поделиться своим опытом создания приложений для Tarantool, и сегодня мы поговорим об установке этой СУБД, о хранении данных и об обращении к ним, а также ...

[Перевод] Ускоренный курс по ассемблерам Это перевод одной из статей Lin Clark. Если вы не читали остальные, мы рекомендуем начать с начала. Чтобы понять, как работает WebAssembly, неплохо понимать, что такое код на ассемблере и как компиляторы его генерируют. В статье о JIT я сравнивала взаимодействие с компьюте...

[Перевод] Архитектура приложения Angular. Используем NgModules Прим. перев.: для понимания данной статьи необходимо обладать начальными знаниями Angular: что такое компоненты, как создать простейшее SPA приложение и т.д. Если Вы не знакомы с данной темой, то рекомендую для начала ознакомиться с примером создания SPA приложения из оф. до...

[Перевод] Шон Пирс: настоящий лидер Перевод статьи "Шон Пирс: настоящий лидер" — о человеке, который является основателем многих проектов, в том числе Git и Gerrit Code Review. Читать дальше →

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

Почему полезно читать любые отзывы пользователей Перевод статьи UI-разработчика Dropbox Джона Саито, в которой он поделился выводами, сделанными после прочтения несколько тысяч пользовательских ревью.

Браузер != Браузерный движок Всем привет! В данной статье я хочу поделиться мыслями на счёт создания собственного браузерного движка. Мы рассмотрим текущие браузеры и браузерные движки. Вспомним про Modest и узнаем его нелёгкую судьбу. Это будет цикл статей в которых мы создадим свой собственный минима...

[Из песочницы] VLFs — Забытый враг Привет, Хабр! Представляю вам перевод статьи «VLFs — The Forgotten Foe» автора Monica Rathbun. Сколько из вас проверяет количество файлов виртуального журнала (VLF), которые есть в ваших журналах транзакций? Сейчас, работая консультантом, я вижу что часто это игнорируетс...

Как делать лучшие сайты в России 1 марта состоялась церемония награждения конкурса «Золотой сайт-2017», на следующий день были опубликованы оценки компетентного жюри. Еще осенью прошлого года автор этой статьи решил принять участие в этом увлекательном мероприятии, и процесс из серьезного (что подразумевал...

[Из песочницы] Почему игровые серверы и чат должны существовать раздельно Привет, Хабр! Представляю вашем вниманию перевод статьи "Why you should run your game servers independently from your chat" Joe Hanson. Разработчики многопользовательских игр часто сталкиваются с дилеммой: Использовать уже существующие игровые серверы (на которых, непоср...

[Из песочницы] Пишем свой BitTorrent-клиент на базе библиотеки Bt Всем привет! В данной статье я расскажу о том, что из себя представляет библиотека Bt, чем она хороша и почему стоит иметь ее в виду, если для решения каких-то задач планируется использовать BitTorrent. Затем, в качестве демонстрации базовых функций и основного API, мы реали...

[Из песочницы] Использование Boost.Asio с Coroutines TS Введение Использование функций обратного вызова (callback) — популярный подход к построению сетевых приложений с использованием библиотеки Boost.Asio (и не только ее). Проблемой этого подхода является ухудшение читабельности и поддерживаемости кода при усложнении логики прот...

[Перевод] Проектирование пользовательского интерфейса Windows 95 Три года назад мне попалась интересная научная статья сотрудника Microsoft Кента Салливана о процессе и результатах проектирования нового пользовательского интерфейса для Windows 95. С тех пор веб-страница исчезла — одна из причин, почему я такой цифровой Плюшкин. Статья оп...

[Перевод] Эволюция войны: ИИ игр серии Total War (часть 2) Это вторая часть статьи про искусственный интеллект Total War. В первой части статьи я рассказал об игре Creative Assembly 2000 года Shogun: Total War — игре, изменившей лик стратегий реального времени. В Shogun существует три отдельных слоя систем ИИ: ИИ юнитов, управляющи...

Обнаружение атак на Active Directory с помощью Azure В следующем году будет 20 лет с момента создания службы каталогов Active Directory. За это время служба обросла функционалом, протоколами, различными клиентами. Но необходимость поддерживать совместимость с рядом устаревших клиентов вынуждает иметь настройки по-умолчанию, ор...

[Перевод] Насколько быстр AMP на самом деле? Проект Accelerated Mobile Pages (AMP) от Google вызвал определённый переполох по идеологическим причинам, но саму технологию так и не разобрали подробно. Несколько недель назад Ферди Кристант писал про несправедливое преимущество, которое получает контент AMP за счёт предзаг...

[Из песочницы] Написание Telegram-бота для Habrahabr В этой статье я хочу рассказать о том, как происходило написание Telegram-бота, который мог бы отправлять статьи Habrahabr, сначала на Python, а потом и на Go, и что из этого вышло. Читать дальше →

[recovery mode] Классическое наследование в JavaScript. Разбор реализации в Babel, BackboneJS и Ember В этой статье мы поговорим о классическом наследовании в JavaScript, распространённых шаблонах его использования, особенностях и частых ошибках применения. Рассмотрим примеры наследования в Babel, Backbone JS и Ember JS и попытаемся вывести из них ключевые принципы объектно-...

Пишем собственный хитрый thread_pool-диспетчер для SObjectizer-а О чем эта статья? Одной из основных отличительных черт C++ного фреймворка SObjectizer является наличие диспетчеров. Диспетчеры определяют где и как акторы (агенты в терминологии SObjectizer-а) будут обрабатывать свои события: на отдельной нити, на пуле рабочих нитей, на одно...

Splunk + Excel. Что получится? В предыдущих статьях мы много рассказывали о Splunk. Это продукт, который позволяет собирать и анализировать данные с любых IT-систем в режиме реального времени, например, это могут быть результаты работы web-сервера, почтового сервера, Windows, различных приложений и тд. Зн...

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

Z̴a҉̠͚l͍̠̫͕̮̟͕g͚o̯̬̣̻F̮̫̣̩͓͟ͅu̯z̡͉͍z̪͈̞̯̳̠ͅi̴̜̹̠̲͇n̰g̱͕̫̹͉͓: использование нестандартных методов размытия пейлоадов   Использование нестандартных техник обфускации пейлоада (полезной нагрузки) при проведении тестирования на проникновение веб-приложений может позволить обходить фильтрацию защитных средств и способствовать реализации вектора атаки. В этой статье я расскажу про т.н. Z̴a҉̠͚l...

Pygest #22. Релизы, статьи, интересные проекты, пакеты и библиотеки из мира Python [18 января 2018 — 4 февраля 2018] Всем привет! Это уже двадцать второй выпуск дайджеста на Хабрахабр о новостях из мира Python. В этом выпуске вы найдете статьи о MicroPython, сравнение производительности Python, Numba и C ++, основах веб скрапинга и многое другое. Присылайте свои интересные события из ми...

Методы расширения для типов стандартной библиотеки .NET Наверное, почти каждый .NET-разработчик сталкивался со случаями, когда для удобства кодирования рутинных действий и сокращения boilerplate-кода при работе со стандартными типами данных не хватает возможностей стандартной же библиотеки. И практически в каждом проекте появляют...

[Из песочницы] Руководство инструктора к книге «Программирование: Принципы и практика с использованием C++» Привет, Хабр! Представляю вашему вниманию перевод статьи "Instructor’s Guide for Programming" автора Бьярне Страуструпа (дата последнего посещения: 20.12.2017). От переводчика Бьярн Страуструп известен как разработчик языка программирования C++. Книги его авторства...

[Перевод] Node.js + face-recognition.js: простое и надёжное распознавание лиц с помощью глубокого обучения Перевод статьи Node.js + face-recognition.js: Simple and Robust Face Recognition using Deep Learning. В этой статье мы расскажем, как реализовать надёжную систему распознавания лиц с использованием face-recognition.js. Мы искали подходящую Node.js-библиотеку, которая умел...

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

Простой менеджер ассинхронных задач для Unity 3D Введение Приветствую Вас, уважаемые читатели. В данной статье пойдет речь о реализации простого менеджера асинхронно выполняемых задач для среди разработки Unity3d. Данный менеджер использует в своей основе так называемые Coroutine, которые присутствует в движке. Читать дал...

[Перевод] Как легко начать писать на PowerShell или несложная автоматизация для управления Active Directory Изучить основы PowerShell Данная статья представляет собой текстовую версию урока из нашего бесплатного видеокурса PowerShell и Основы Active Directory (для получения полного доступа используйте секретное слово «blog»). Данный видеокурс оказался необычайно популярным по в...

[Из песочницы] Font (ещё более) Awesome — узорное изобретение Привет, Хабр! Представляю вашему вниманию перевод статьи "Font (More) Awesome — an iconic invention" автора Pubudu Dodangoda. Создаёте ли вы веб-сайт, мобильное или настольное приложение, есть несколько вещей, которых вам не удастся избежать. Правильное использован...

[Перевод] Медиа-запросы в адаптивном дизайне 2018 В июле 2010 года я написала статью «Как использовать CSS3 медиа-запросы для создания мобильной версии вашего сайта» для журнала Smashing. Спустя почти восемь лет эта статья по-прежнему очень популярна. Я решила вернуться к этой теме, поскольку теперь у нас есть такие метод...

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

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

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

[Из песочницы] Большой комок грязи Привет, Хабр! Представляю вашему вниманию перевод статьи "Big Ball of Mud" авторов Brian Foote и Joseph Yoder. От переводчика: Статья Big Ball of Mud написана Брайаном Футе и Джозефом Йодером летом 1999 года. Она рассказывает о наиболее распространённых антипаттер...

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

Атмосфера или боль: как выбрать музыку к компьютерной игре Привет, Хабр! Недавно мы в GeekBrains открыли факультет разработки игр, чтобы студенты погрузились в этот увлекательный мир. Музыка — его важная часть. Многие думают, что музыка по сравнению с графикой или геймплеем второстепенна. При этом разработчики масштабных проектов ч...

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

[Из песочницы] Как сделать адекватное отображение horizontal scroll bar в QTreeWidget с одной колонкой Привет, Хабр. В этой статье я решил оставить решение проблемы непонятного поведения QTreeWidget – GUI компонента кроссплатформенного фреймворка Qt. Проблема, мне кажется, актуальная, потому что вопрос задаётся на многих форумах, но верного решения не приводится. Впрочем, есл...

Централизованный сontinuous deployment за год vol 2 В нашей прошлой статье мы рассказали о том как строили централизованный конвейер, но описали его довольно поверхностно. Это породило массу вопросов, которые мы не можем оставить без ответа. Здесь мы попробуем максимально глубоко залезть «под капот» и рассказать, как работает...

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

Оглашена критическая брешь в популярном REST-фреймворке Стало известно о серьезной уязвимости в одном из компонентов популярного фреймворка Pivotal Spring. Ошибка была выявлена и пропатчена еще осенью, однако вендор не спешил предавать ее огласке прежде, чем клиенты обновят свои системы. Проблема касается Spring Data REST — компл...

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

[Из песочницы] Истинная реализация нейросети с нуля. Часть 2. Распознавание цифр Dispute about eternal Сердечно приветствую всех Хабравчан! С момента выхода первой части "Истинной реализации" (рекомендую ознакомиться) прошло достаточно много времени. Как внятных обучающих статей не было, так и нет, поэтому я решил подарить Вам возможность узна...

[Из песочницы] Как начать работать с Лямбда-выражениями в Java Привет, Хабр! Представляю вашему вниманию перевод статьи "How to start working with Lambda Expressions in Java" автора Luis Santiago. До того как Лямбда-выражения были добавлены в JDK 8, я использовал их в таких языках как C# и С++. Когда они были добавлены в Java...

[Перевод] Проект RealWorld: сравнение фронтенд-фреймворков Материал, перевод которого мы предлагаем сегодня вашему вниманию, представляет собой обновлённую, с учётом положения дел в 2018 году, версию статьи об исследовании фреймворков, которая была опубликована в декабре 2017. Читать дальше →

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

[Перевод] Введение в модули Angular — корневой модуль (Root Module) Прим. перев.: для понимания данной статьи необходимо обладать начальными знаниями Angular: что такое компоненты, как создать простейшее SPA приложение и т.д. Если Вы не знакомы с данной темой, то рекомендую для начала ознакомиться с примером создания SPA приложения из оф. до...

[Из песочницы] RxJS: Не отписывайся Привет, Хабр! Представляю вашему вниманию перевод статьи "RxJS: Don’t Unsubscribe" автора Ben Lesh. Ну… ладно, просто не отказывайся от подписок. Я часто помогаю кому-нибудь в отладке проблем с их RxJS кодом, в том числе со структурированием приложений, которые н...

[Перевод] Leakpocalypse: Rust может неприятно удивить Прим. пер.: Кто-то должен был сделать перевод этой статьи, несмотря на то, что она достаточно стара (2015 год), поскольку она показывает очень важную особенность работы с памятью в Rust — с помощью безопасного (не помеченного как unsafe) кода можно создавать утечки памяти. Э...

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

[Перевод] Webpack 4, import() и CommonJS В JavaScript много забавного. У одного из самых популярных в мире языков программирования до сих пор нет стабильного синтаксиса разбиения кода на части. То есть в стандарте синтаксис ESM с «import» наперевес уже есть, но в браузерах и ноде он спрятан за флагами, а в вебпаке...

В разрезе: новостной агрегатор на Android с бэкендом. Распределённые системы обработки сообщений (Spark, Storm) Вводная часть (со ссылками на все статьи) Основным компонентом системы, который обрабатывает сырые данные с «пауков», выполняет обогащение данных, их индексацию и последующий поиск является система обработки сообщений, т.к. только подобные системы могут адекватно реагиров...

Программный синтез звука на ранних персональных компьютерах. Часть 2 Это статья о первых программных синтезаторах, которые были когда-то созданы на самых обычных персональных компьютерах. Я даю несколько практических примеров по реализации простых методов звукового синтеза в историческом контексте. Перейти к первой части Читать дальше →

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

[recovery mode] Анализ данных — основы и терминология В этой статье я бы хотел обсудить базовые принципы построения практического проекта по (т. н. «интеллектуальному») анализу данных, а также зафиксировать необходимую терминологию, в том числе русскоязычную. Согласно википедии, Анализ данных — это область математики и информа...

Мой опыт использования Google AdWords Express Несколько месяцев назад вернулся к оказанию IT-услуг в своём небольшом городе. Дабы громко заявить о себе первый раз решил попробовать контекстную рекламу в Интернете. Так как в нашей стране Яндекс и все его сервисы заблокированы, то выбор пал на корпорацию Google и его серв...

Отзывчивый банкинг: что это и почему это важно Генеральный директор «БюроБюро» Иван Кривушин сделал перевод статьи Стива Тасселла «Become the Responsive Bank, Why it Matters and How to Become One».

[Перевод] Обзор новшеств ECMAScript 2016, 2017, и 2018 с примерами Сложно уследить за новшествами различных версий ECMAScript, а ещё сложнее — найти полезные примеры их применения, не перекапывая горы информации. Поэтому сегодня мы публикуем перевод материала, автор которого проанализировал 18 новых возможностей ECMAScript, в число которых ...

Фундаментальная уязвимость HTML при встраивании скриптов Чтобы описать суть проблемы, мне нужно рассказать, как вообще устроен HTML. Вы наверняка в общих чертах представляли себе, но я все равно коротко пробегусь по основным моментам, которые понадобятся для понимания. Если кому-то не терпится, сразу переходите к сути. HTML — это ...

Serverless приложение с реализацией CI/CD на базе AWS и Bitbucket Pipelines В статье рассказывается о развертывании Django приложения в облаке AWS с помощью Bitbucket Pipelines. Тем, кому интересна эта тема, добро пожаловать под кат. Вперед, на мины! Читать дальше →

Устройства с управлением через веб-интерфейс Автор: Николай Хабаров, IoT Google Developer Expert, эксперт по встраиваемым системам, DataArt. В этой статье я расскажу, как создать собственное устройство с веб-интерфейсом, которое будет доступно в локальной сети. Веб-интерфейс будет показывать текущие данные с датчика...

[Перевод] Почему SQLite не использует Git Содержание 1. Введение 1.1. Правки 2. Несколько причин, почему SQLite не использует Git 2.1. Git затрудняет поиск потомков после коммита 2.2. Ментальная модель Git излишне сложна 2.3. Git не отслеживает исторические названия ветвей 2.4. Git требует дополнительной админист...

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

Зачем ездить на Mobile World Congress в Барселону и как все сделать правильно Привет! Меня зовут Катя Франк, я ведущий маркетолог Mobile Dimension. В этой статье я приведу небольшой разбор выставки Mobile World Congress в Барселоне, немного сравню ее с этой же выставкой от GSMA в Шанхае, расскажу, кому в ней стоит участвовать, и как все организовать...

Устройство спецэффектов для игр под NES. Часть 1 Существует несколько серий статей про программирование под NES, одна из них уже даже переведена на русский язык на хабре. Однако ни одна из них не заходит дальше обзора базовых возможностей консоли – рассматривается общая архитектура консоли, основы ассемблера, вкратце расск...

Эталонное приложение на базе контейнеров и архитектуры микросервисов Хабр, привет. Сегодня рассказываем вам об эталонном кроссплатформенном приложении .NET Core от Microsoft, созданном на основе упрощенной архитектуры микросервисов и контейнеров Docker. В статье поделимся большим количеством технических данных, документацией, книгами по теме,...

[Перевод] Эксперимент с бинарным кодом в Glimmer Перевод статьи об эксперименте с бинарным кодом в Glimmer, соавторы публикации: Сара Клаттербак, Чад Хиетала и Том Дейл. Чуть более года назад Ember.js претерпел значительные изменения. В тесном сотрудничестве между инженерами LinkedIn и Open Source сообществом, мы заменили...

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

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

[Из песочницы] Как мы разработали технологию обнаружения устройств поблизости Эта история началась с функции “Рядом” в одном из наших мобильных приложений. Мы хотели, чтобы пользователи могли быстро создать групповой чат или добавить находящихся рядом пользователей в друзья. Мы попробовали решить эту задачу при помощи геолокации, Bluetooth, Wi-Fi и ...

Наш путь ресайза изображений В интернете достаточно статей и проектов для ресайза изображений. Почему же нужна еще одна? В этой статье я расскажу почему нас не удовлетворили текущие решения и пришлось пилить собственное. Читать дальше →

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

[Из песочницы] Почему ранний возврат из функций так важен? Привет, Хабр! Представляю вашему вниманию перевод статьи «Why should you return early?» автора Szymon Krajewski В начале моего приключения в роли программиста мой код зачастую напоминал вермишель. В любых условных выражениях я только и делал, что сразу переходил к описани...

Введение в Postman “Разработка API сложна, Postman делает её лёгкой” © Postdot Technologies, IncКогда видишь описание инструментов Postman — захватывает дух, просыпается чувство всевластия над своим будущим детищем. Кажется, что и взрощенные в прошлом "монстры" наконец-то падут перед тобой! В...

Mosdroid в Avito — анонс Привет! 3 марта приглашаем на встречу сообщества Mosdroid, которая пройдёт в офисе Avito. Регистрируйтесь на митап, приглашайте коллег. Поговорим о фреймворке Spock, нюансах обеспечения безопасности android-приложений и CI процессах. Под катом — программа встречи и тезисы вы...

[Из песочницы] Что будет если объединить ArrayList и LinkedList? Приветствую вас! После изучения коллекций, а именно такие реализации List, как ArrayList и LinkedList, возникла идея, а почему бы не объединить эти структуры данных в одну и посмотреть, что из этого получится. Зачем это нужно? Проблема ArrayList — у него есть начальный раз...

tdlib-ruby: как сделать Telegram-клиент на Ruby Одна из особенностей мессенджера Telegram — широкие возможности API (Bot API и Telegram API). Команда Telegram пошла ещё дальше и выпустила библиотеку TDLib (Telegram Database Library), позволяющую разрабатывать альтернативные клиенты Telegram и не задумываться о низкоуровн...

Html страница глазами разработчика приложений. Часть 1: «Подготовка» Передо мной встала задача по обновлению текущего сайта одной компании, и в соответствии тренду выбор пал на landing page с поддержкой мультиязычности. Посмотрев на реализации представленные в интернете я ужаснулась. В теле страницы куча текста! С такой разметкой же невозможн...

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

Безопасно ускоряем Erlang приложение c помощью NIF на Rust В статье освещен вопрос интеграции Erlang и Rust на примере реализации вероятностной структуры данных Бёртона Блума, позволяющей проверить принадлежность элемента множеству с необходимой точностью. Читать дальше →

Угрозы прошлого и протоколы будущего Как многие из читателей блога Qrator Labs, вероятно, уже знают, DDoS-атаки могут быть нацелены на разные уровни сети. В частности, наличие у злоумышленника крупного ботнета позволяет ему осуществлять атаки на уровень L7 (application/прикладной) и пытаться мимикрировать под...

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

[Перевод] Что нового в Swift 4.1? Xcode 9.3 и Swift 4.1, наконец-то, уже не являются бета! Данный релиз содержит долгожданные улучшения стандартной библиотеки и самого языка. Если вы не следите за процессом Swift Evolution, то эта статья для Вас. В этой статье вы узнаете о наиболее значительных изменениях,...

[Перевод] Иллюстрированное руководство по устройству сети в Kubernetes Прим. перев.: Автор статьи — Amanpreet Singh — называет себя «всё ещё начинающим в мире сетей», однако именно это и побудило его разобраться в их базовом устройстве в Kubernetes (который он использует в production), а затем — поделиться с сообществом очень доступным материал...

Настройка среды разработки: кофейная гуща (Часть 2) Привет, дорогой читатель! В этот раз я хочу поделиться своим результатом настройки персонального окружения для работы с различными PHP-based проектами с использованием Puppet. В данной статье описываются результаты, которые были получены в процессе изучения и написания Puppe...

[Перевод] Segregated Witness для чайников Масштабируемость биткоина является одной из его главных проблем, над решением которой активно работают. Одним из представителей этих решений является, например, технология Lightning network, но ее реализация пока что не представляется возможной ввиду некоторых уязвимостей. Д...

Дайджест интересных материалов для мобильного разработчика #245 (26 марта-1 апреля) В нашем новом дайджесте статьи о порхающих велосипедах, собеседованиях и резюме, тестировании и учебных проектах, технологиях и ключевых метриках приложений. Все это и многое другое — под катом! Читать дальше →

Почему ваше приложение выглядит в Sketch по другому Некоторые аспекты исходного дизайна могут быть утеряны при переводе файла-макета в код. Everyday Tools в своей статье рассказывает почему это происходит и как с этим бороться.

[Перевод] Разработка статического блога на Gatsby и Strapi Статические веб-сайты содержат страницы с неизменным содержимым. Технически — это набор HTML-файлов, которые, для каждого посетителя сайта, выглядят одинаково. В отличие от динамических веб-сайтов, для разработки таких сайтов не нужно серверное программирование или базы данн...

Техническое SEO в эпоху семантического поиска и Google В статье автор объясняет, как Google обрабатывает данные, и почему техническое SEO сейчас важнее, чем когда-либо ранее.

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

Сопроводительное письмо. Что стоит писать? Резюме написано. Вакансия мечты найдена. Остается одна маленькая, но порой непосильная задача – написать сопроводительное письмо. О том, что нужно писать, а чего стоит избегать в сопроводительных письмах, поделилась Alison Doyle, специалист по найму в США и основатель сервис...

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

Большой комок грязи, часть 2 Продолжение перевода статьи «Big ball of Mud». ОДНОРАЗОВЫЙ КОД он же QUICK HACK (быстрый хак) KLEENEX CODE (код на салфетке) DISPOSABLE CODE (утилизируемый код) SCRIPTING (скрипт) KILLER DEMO (демо-убийца) PERMANENT PROTOTYPE (постоянный прототип) BOOMTOWN (быстро выросший ...

Масштабирование Selenium Представьте, что у вас есть всего один тест с использованием Selenium. Что может сделать его нестабильным? Как его ускорить? Теперь представьте, что тестов стало два. Теперь представьте сотню. Как заставить быстро отработать такую кучу тестов? Что произойдет, если количество...

[Перевод] Профилирование: измерение и анализ Привет, я Тони Альбрехт (Tony Albrecht), инженер в Riot. Мне нравится профилировать и оптимизировать. В этой статье я расскажу об основах профилирования, а также проанализирую пример С++-кода в ходе его профилирования на Windows-машине. Мы начнём с самого простого и будем п...

Управление ИТ-активами: как мифы влияют на проекты (Часть 2) При внедрении ITAM-решений часто приходится сталкиваться с различными мифами. Чтобы проект был успешен, важно разобраться в природе этих ложных представлений клиента, снять все открытые вопросы, избавиться от ненужных заблуждений или убедиться, что это не миф. В предыдущей ...

[Перевод] Полный перевод книги про построение сообществ: «Социальная архитектура» «Это эссенция тридцатилетнего опыты разработки программного обеспечения.» Приветствую, Хабр. Хочу представить лучшую (единственную) книгу по построению сообществ, написанную тру ИТишником. Для себя я нашел применимые инструменты для анализа сообщества/организованности «на ...

[Из песочницы] Различные стратегии именования в Hibernate Привет, Хабр! Представляю вашему вниманию статью "Different Hibernate Naming Strategy" автора Dhiraj Ray. В этой статье обсуждаются различные стратегии именования, предоставляемые hibernate, а также переход стратегии именования от hibernate.ejb.naming_strategy в h...

Apple представила ClassKit для учебных приложения Apple вместе с новым "учебным" iPad официально представила и ClassKit – новый фреймворк для создания обучающих приложений.

[Из песочницы] GObject: основы GObject — часть библиотеки GLib, реализующая объекто-ориентированнные расширения для чистого Си. Подобная концепция, помимо самой GLib, используется в таких проектах, как GStreamer, GSettings, ATK, Pango и весь проект GNOME в целом, а также в большом количестве прикладных пр...

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

Веб компоненты. Часть 1: Пользовательские элементы Вступление Данная статья — первая часть из небольшой серии статей о создании веб-компонентов нативными средствами HTML и JS Компонентный подход к разработке веб-приложений опирается на создание независимых модулей кода, которые могут быть использованы повторно, объединяемых ...

Ардуированная кофемашина Привет, обитатели ХабраХабр! Возможно, по сути статьи я ошибся ресурсом, за мое 9 летнее отсутствие появился некий geektimes, возможно, я должен написать это там, но напишу сюда — на хабрахабр. Если не прав — не бейте ногами. Я люблю делать простые как топор вещи, но одно...

[recovery mode] Как написать одностраничное приложение (SPA) с использованием Vue.js Одностраничные приложения (SPA) имеют мнжество преимуществ, таких как скорость, по-настоящему хороший UX, и полный контроль HTML-разметки. Становится всё больше и больше сайтов SPA; всё больше инструментов, которые упрощают процесс разработки SPA. Вы, вероятно уже читали о...

Поиск по сайту с Reindexer — это просто. Или как сделать «instant search» по всему Хабрахабр-у Всем привет, В предыдущей статье я писал о том, что мы сделали новую in-memory БД — быструю и с богатыми функциональными возможностями — Reindexer. В этой статье хочу рассказать как при помощи Reindexer можно реализовать полнотекстовый поиск по сайту, написав минимум applica...

[Перевод] Как работает JS: отслеживание изменений в DOM с помощью MutationObserver Сегодня, в переводе десятого материала из серии, посвящённой особенностям работы механизмов JavaScript, мы расскажем о том, как отслеживать изменения в DOM с помощью API MutationObserver. Клиентские части веб-приложений становятся всё сложнее, требуют всё больше системных р...

[Из песочницы] Запускаем полноценный кластер на Kubernetes с нуля на Ubuntu 16.04 Уже довольно много написано статей, по установке и запуску Kubernetes, однако, не всё так гладко (я потратил несколько суток на запуск своего кластера). Данная статья призвана дать исчерпывающую информацию не только по установке k8s, но и объяснить каждый шаг: зачем и почем...

Тестовый пакет iXBT Application Benchmark 2018: методика измерения производительности на основе реальных приложений образца 2018 года Заключительная статья цикла, посвященного новому тестовому пакету iXBT Application Benchmark 2018. Здесь мы кратко обсуждаем набор приложений для тестирования накопителя, а также собираем все тесты воедино и приводим алгоритм расчета интегрального показателя производительнос...

[Перевод] Среды запуска контейнеров (container runtimes) Часть 1: Введение в среды запуска контейнеров От переводчика: Это перевод статьи Container runtimes Part 1: An Introduction to Container runtimes. Автор оригинальной публикации: Ian Lewis. Один из терминов, который вы часто слышите, имея дело с контейнерами — «container runtime» (далее «runtime» переводится как «среда ...

Разработка игры под Android на Python на базе Kivy. От А до Я: подводные камни и неочевидные решения. Часть 1 Некоторое время тому назад я решил попробовать написать что-то на Python под Android. Такой странный для многих выбор обусловлен тем, что я люблю Python и люблю Android, а ещё люблю делать необычное (ну хорошо, не самое обычное). В качестве фреймворка был выбран Kivy — факти...

[Перевод] Figma web-API — интерфейс, позволяющий подключаться к другим инструментам Первый шаг к открытой дизайн-экосистеме Mobile Dimension публикует перевод оригинальной статьи Figma, посвященной web API. Сегодня мы рады запустить платформу Figma — новый способ улучшить процессы дизайна и проектирования с помощью подключения Figma к другим инструмента...

Основы программирования на SAS. Урок 1 Привет! Я Анна Добрыченко, преподаватель учебного центра SAS в России: провожу тренинги по программированию на SAS Base, использованию SAS Enterprise Guide и SAS Visual Analytics, участвую в подготовке стажеров. Вся техническая документация и статьи продуктов и решений SAS и...

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

Основы разработки под Microsoft Exchange Server На форуме TechNet Microsoft каждый день появляются новые вопросы, касающиеся разработки для Exchange\Exchange Online. Актуальными на сегодняшний день являются два метода разработки: с использованием веб-сервисов (EWS Exchange и другие) и без их использования. В этой статье р...

[Из песочницы] Сравнение Material Design CSS фреймворков Доброго время суток. В статье рассказно о Material Design фреймворках для создания Web-страничек. Если вас интересует тема Material Design, также как и меня, то Добро пожаловать под кат, возможно, откроете для себя что-нибудь новое и интересное. Читать дальше →

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

Преобразователи Time-To-Digital (TDC): что это такое и как они реализованы в FPGA На рисунке — первый в мире спутник квантовой связи «Мо-Цзы», который запустили из Китая в 2016 году, в нем летает TDC, реализованная в FPGA. Объяснить своей девушке (или парню), что такое ADC и DAC, и в каких домашних приборах они используются, может каждый человек, называ...

Mosdroid #6 — отчёт Всем привет! Публикуем отчёт со встречи сообщества Mosdroid, которая проходила у нас в офисе 3 марта. Участники обсуждали фреймворк Spock, нюансы обеспечения безопасности android-приложений и CI-процессы, а также провели круглый стол «Автотесты и Android», где поделились опы...

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

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

Простой статический сайт на Webpack 4 После прочтения ряда статей (например, этой) решил перейти на современный подход с использованием Node.js при написании простых сайтов с подхода «динозавров». Ниже представлен разбор примера сборки простого статического сайта с помощью Webpack 4. Статья написана, так как ин...

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

О кодерах, программистах и инженерах-программистах На этот пост меня натолкнули недавние статьи на Хабре "Кто такой программист?" и "Почему Python так хорош в научных вычислениях". Читая комментарии к ним, я неоднократно натыкался на рассуждения с разделением разработчиков на «кодеров», «программистов» и «инженеров-программ...

[Из песочницы] Средства миграции данных Android и улучшение поддержки приложений Привет, Хабр! Представляю вашему вниманию перевод статьи «Discover tools for Android data migration and improve your app retention» авторов Sean McQuillan и Prateek Tandon. Пользователи создают учетные записи, активируют их, а затем сохраняются, когда многократно запускают ...

Устройство и механизм работы Prometheus Operator в Kubernetes В основу этой статьи легла наша внутренняя документация для DevOps-инженеров, объясняющая, как работает Prometheus под управлением Prometheus Operator в разворачиваемых и обслуживаемых кластерах Kubernetes. С первого взгляда Prometheus может показаться достаточно сложным ...

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

[Перевод] ITSM ликбез: Пользователи и Заказчики — кто скрывается за этими именами? Перевод статьи объясняющей пару базовых для ITSM понятий. Если не можете четко в паре слов сформулировать разницу между заказчиком и пользователем, статью стоит прочитать, она не большая. Автор: Дена Уайдер-Фреиден (Dena Wieder-Freiden) Публикация 18 октября 2016 года в ...

Производительность AudioCodes SBC В данной статье подробно рассмотриваются результаты тестирования AudioCodes независимой компанией Miercom, которая специализируется на проведении независимых тестирований. Данная компания провела тестирование почти всех ведущих производителей SBC...

Тестовый пакет iXBT Application Benchmark 2018, часть 7: приложения для инженерных и научных расчетов в качестве инструментов для тестирования производительности ПК В седьмой статье цикла мы рассмотрим четыре приложения для инженерных и научных расчетов: SolidWorks, MatLab, NAMD и LAMMPS.

Алиса, Google Assistant, Siri, Alexa. Как писать приложения для голосовых ассистентов Рынок голосовых ассистентов расширяется, особенно для русскоязычных пользователей. 2 недели назад Яндекс рассказала впервые про платформу Яндекс.Диалоги, 2 месяца назад Google представила возможность писать диалоги для Google Assistant на русском языке, 2 года назад со сце...

[Из песочницы] Научиться программировать становится сложнее Привет, Хабр! Представляю вашему вниманию перевод статьи Аллена Б. Дауни, автора таких книг как Think Python, Think Java, Think Bayes и других, опубликованной в личном блоге автора. Я написал несколько книг, в которых c использованием языка программирования Python объясняют...

[Перевод] Blazor: Техническое введение Сегодня команда ASP.NET анонсировала, что проект Blazor был перемещён в репозиторий организации ASP.NET. Мы начинаем стадию эксперимента, чтобы понять сможем ли мы развить Blazor в поддерживаемый продукт. Это большой шаг вперёд! Что такое Blazor? Это фреймворк для браузерны...

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

Java Puzzlers NG S02: всё чудесатее и чудесатее Тагир Валеев (lany) и Барух Садогурский (jbaruch) собрали новую коллекцию Java-паззлеров и спешат ими поделиться. В основе статьи – расшифровка их выступления на осенней конференции JPoint 2017. Она показывает, сколько загадок таит в себе Java 8 и едва замаячившая на гори...

[Из песочницы] JNI: Подружим Java и C++ Введение Бывают моменты, когда в Java некоторые действия выполняются за пределами обычных Java-классов. Например, необходимо исполнить код, написанный на C/C++ или другом каком-нибудь языке. В данной статье рассмотрим данный вопрос с практической точки зрения, а именно напи...

Автоматизация при разработке платформы «1С: Предприятие» В этой статье пойдет речь о том, как мы автоматизируем процессы разработки и тестирования технологической платформы «1С:Предприятие 8». Платформа «1С:Предприятие 8» — набор инструментов для создания бизнес-приложений и среда их выполнения. Это большой (более десятка миллионо...

Triton vs Kao’s Toy Project. Продолжаем хорошую традицию В данной статье речь пойдет про SMT-решатели. Так сложилось, что в исследовательских материалах, посвященных данной теме, появилась хорошая традиция. Уже несколько раз в качестве подопытного алгоритма для SMT-решателей разные исследователи выбирали один и тот же пример – кр...

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

Анатомия .NET Core: как мы настроили NTLM под Linux Мы продолжаем рассказывать про миграцию мобильного сервиса в ASP.NET Core и Docker. В этой статье будет идти речь про модуль WCF-клиента, упомянутый в предыдущей статье, NTLM-авторизацию и другие проблемы при его миграции. Сейчас расскажем, почему нам пришлось немного изучит...

[Из песочницы] Design by Introspection Что, если бы мы умели располагать атомы один за другим как нам угодно? Ричард ФейнманСколько парадигм программирования вы сможете назвать? Список на этой странице википедии содержит ни много ни мало 76 наименований. Этот список может быть пополнен ещё одним подходом, названн...

[Перевод] Воссоздание эффекта воды из Super Mario Sunshine для Nintendo GameCube Примечание: В оригинале статьи есть демо на WebGL2, которые в переводе заменены на видео и GIF. Одно из моих хобби — написание программ просмотра моделей и графических инструментов для игр. Это хорошее соединение интересных мне тем — графики, рендеринга, реверс-инжиниринга...

Mikrotik: Балансировка в КПСС и соблюдение скоростного режима В этой статье я хочу поделится своим решением балансировки с применением Классификатора по Сетевым Соединениям (Per Connection Classificator) и маркировкой трафика для QoS. Предисловие На просторах Хабра и интернета я встречал множество реализаций балансировки, включая и PP...

Игровой ассортимент казино Эльдорадо В данной статье вы узнаете про главные преимущества казино Эльдорадо, которое доступно для игры 24 часа в сутки на сайте eldoradokasino.com. Здесь самый широкий ассортимент игровых симуляторов от наиболее известных производителей. А вы узнаете, как выбрать игровой симулятор,...

[Из песочницы] Копирование данных с веб-сайта с помощью R и библиотеки rvest Чтобы проводить анализ данных, необходимо сначала эти данные собрать. Для этой цели есть много разных методов. В этой статье мы будем говорить о копировании данных непосредственно с веб-сайта, или о скрейпинге (scraping). На Хабре есть несколько статей о том, как сделать коп...

[Из песочницы] Есть ли порох в пороховницах? Hackathon Radio Canada 2018 (Часть первая, собираем команду) В этой статье я хочу представиться, рассказать что толкнуло меня на участие, как я смог собрать команду, какие выводы для себя я вынес и просто поделиться своим опытом участия моем первом хакатоне. Извините коротко не получилось, текста много и не всё по теме. Надеюсь, э...

[Перевод] Тёмная сторона serverless-архитектуры или сложности оценки реальных затрат на бессерверные вычисления Disclaimer: Эта статья основана в том числе на личном мнении Амирама Шачара (Amiram Shachar, CEO of Spotinst). Компания автора предлагает конкурирующий продукт под названием Spotinst Functions. Перевод выполнен облачным провайдером Cloud4Y. Мы предлагаем программно-конфигур...

[Перевод] Создание игры на Lua и LÖVE — 2 Оглавление Статья 1 Часть 1. Игровой цикл Часть 2. Библиотеки Часть 3. Комнаты и области Часть 4. Упражнения Статья 2 Часть 5. Основы игры Часть 6. Основы класса Player 7. Player Stats and Attacks 8. Enemies 9. Director and Gameplay Loop 10. Coding Practices 11. Pas...

[Перевод] Обучение с подкреплением никогда не работало TL;DR: Обучение с подкреплением (RL) всегда было сложным. Не волнуйтесь, если стандартные техники глубинного обучения не срабатывают. В статье Алекса Ирпана хорошо изложены многие современные проблемы глубинного RL. Но большинство из них не новые — они существовали всегда. ...

как добавить свой счетчик в PRTG. И кратенько о форматах датчиков с примерами на powershell Почему бы не добавлять в систему мониторинга показатели работы из 1С (да и вообще чего угодно)? По мере изучения оказалось что вывести можно из скриптов, батников, VB скриптов, исполняемых файлов, по SSH, прямым исполнением sql запросов и еще куча способов. Чтобы не получила...

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

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

[Перевод - recovery mode ] Hyperapp + Parcel В данном посте, мы рассмотрим два новых инструмента из мира фронт-енд разработки. Они оба разработаны с мыслью о простоте и легкости использования. Первый инструмент это очень маленький фронт-енд фреймворк Hyperapp, а второй это бандлер Parcel. Вместе они могут быть лучшим в...

[Перевод] Микросервисное безумие пройдет в 2018 году Именно с таким тезисом выступил Дэйв Керр, статья которого собрала за месяц 90 комментариев, вызвала бурные дискуссии на Reddit и Hacker News, а нас заинтересовала настолько, что мы решили срочно ее перевести. Пользуясь случаем, поинтересуемся: хотите ли допечатку основопола...

Открытая бесплатная трансляция Java-конференции JPoint 2018 6-7 апреля, то есть уже завтра, пройдёт JPoint 2018 — международная Java-конференция для опытных Java-разработчиков. Про программу этой конференции мы писали не раз и не два. Мы проанализировали набор самых актуальных тем (производительность и подкапотный хардкор, Spring ...

[Из песочницы] Распределённая система управления на базе SoC FPGA Реализация связки прошивки ПЛИС, ПО микроконтроллера NIOS и управляющего ПО под Linux на базе Altera Cyclone V SoC с использованием Avalon Mailbox для создания на их основе распределенной системы управления. Читать дальше →

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

Вторая часть сравнения python и tcl В предыдущей статье была описана реализация задачи сбора данных о звонках с АТС, включающее в себя получение, разбор данных и добавление в БД. Решение данной задачи представлено на двух языках программирования — python и tcl. И вот, как и обещал, представляю код (на двух язы...

[Перевод] Lightning Network In Depth, part 2: HTLC And Payment Routing В прошлой статье мы с вами подробно разобрали работу платежных каналов, а также несколько различных методов по обеспечению безопасности платежей, проходящих через них, однако этого все еще недостаточно для построения рабочей сети каналов: даже если мы уверены в том, что внут...

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

Сборка проектов с dapp. Часть 1: Java Эта статья — начало цикла о сборке dapp'ом приложений на различных языках, платформах, технологических стеках. Предыдущие статьи про dapp (см. ссылки в конце материала) были больше обзорными, описывали возможности dapp. Теперь же пора поговорить более предметно и поделитьс...

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

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

Переход с AngularJS на Angular: цели, планы и правила переноса элементов (1/3) В январе мы в Skyeng закончили перевод нашей платформы Vimbox с AngularJS на Angular 4. За время подготовки и перехода у нас накопилось много записей, посвященных планированию, решению возникающих проблем и новым конвенциям работы, и мы решили поделиться ими в трех статьях ...

The Metrix has you… Для многих разработчиков процесс релиза их продукта похож на выбрасывание слепого котёнка в пасти диких псов. После этого главная задача авторов — отбиваться от случайно долетевших до них багов. На самом деле, приложение не заканчивает свой жизненный путь в зубах пользовател...

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

[Перевод] Параллельное программирование в Swift: Operations В параллельном программировании в Swift: Основы Я представил множество низкоуровневых способов для управления параллелизмом в Swift. Первоначальная идея состояла в том, чтобы собрать все различные подходы, которые мы можем использовать в iOS в одном месте. Но при написании э...

[Перевод] Matthias Noback Об Идеальной Архитектуре — Слои, Порты и Адаптеры(Часть 2 — Слои) В 2017 году Matthias Noback (автор A year with Symfony) опубликовал цикл из трех статей, в котором описал свои взгляды на идеальную архитектру корпоративных приложений, сформировавшуюся за долгие годы практики.Первая часть является вводной и не представляет особого интереса(...

[Перевод] Руководство по фоновой работе в Android. Часть 4: RxJava Обработка событий — это цикл. В прошлой части мы говорили об использовании thread pool executors для фоновой работы в Android. Проблема этого подхода оказалась в том, что отправляющий события знает, как должен быть обработан результат. Посмотрим теперь, что предлагает RxJ...

[Перевод] [в закладки] Инструменты JS-разработчика, на которые стоит обратить внимание Программист Трэвис Фишер, перевод статьи которого мы публикуем сегодня, решил рассказать о самых полезных, с его точки зрения, модулях и вспомогательных инструментах для JS-разработки. Полезными он считает технологии, которыми пользуется постоянно и в ценности которых убедил...

W3View — прямой путь Web UI Моя предыдущая публикация на Хабре достигла своих целей, — множество людей узнали о существовании W3View, некоторые посетили GitHub, кому-то наверное даже понравилось. В то-же время, последовавшие комментарии выявили потребность в более чётком описании того, какую задачу реш...

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

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

Погружение в шаблоны и приручение GPO Windows В очередной статье из цикла «конспект админа» мне хотелось бы освежить в памяти несколько нюансов использования групповых политик. Заодно поразвлекаемся с созданием своих шаблонов и с автоматизацией работы с этими самыми политиками. Читать дальше →

[Перевод] UX-исследования и сила доказательств Привет всем! Предлагаю вашему вниманию перевод статьи Dr. Philip Hodgson (@bpusability в Twitter). Он имеет BSc, MA и PhD в экспериментальной психологии. У него за спиной более чем 20-летний опыт работы в качестве исследователя, консультанта и тренера по юзабилити, пользоват...

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

[Перевод] Руководство по SEO JavaScript-сайтов. Часть 2. Проблемы, эксперименты и рекомендации В первой части перевода этой статьи мы говорили о том, как веб-мастер может взглянуть на свой ресурс глазами Google, и о том, над чем стоит поработать, если то, что увидит разработчик сайта, окажется не тем, чего он ждёт. Сегодня, во второй части перевода, Томаш Рудски ра...

[recovery mode] Авторизация с помощью сертификата ssl на nginx + Let's Encrypt Добрый день, вечер или ночь, все зависит от времени суток в который вам довелось прочитать мою статью. В связи с ростом количества корпоративных клиентов, было принято решение дать доступ к учетной системе внешним пользователям. Для самостоятельного оформления заказов и от...

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

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

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

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

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

Какие задачи стоит перенести на воскресенье, чтобы повысить продуктивность Издание «Идеономика» опубликовало перевод материала автора Business Insider о том, что такое «ложная» работа, и почему её следует выполнять в выходной.

[Перевод] ITSM ликбез: 7 способов диагностики причин IT инцидентов и проблем Перевод любопытной статьи Стюарта Рейнса, дающей обзор некоторых подходов и техник поиска причин инцидентов и проблем. Обзор поверхностный, но и такого уровня погружения достаточно, чтобы зародить интерес к затронутой теме. Автор: Стюарт Рейнс (Stuart Rance) Опубликовано 3...

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

Как мы делаем AB-DOC В этой статье я хочу рассказать о нас и о том, как мы делаем AB-DOC — бессерверное веб-приложение, предоставляющее интерфейс к хранилищу Amazon S3. Подробнее про AB-DOC можно почитать в нашей предыдущей статье. Сейчас речь пойдет о технологических решениях, которые лежат в о...

«Computer, how is my build doing?» и другие волшебные заклинания Барух Садогурский рассказывает, как с помощью сервиса голосовых команд Alexa можно добавить голосовой интерфейс к совершенно неожиданным вещам, таким как IntelliJ IDEA и Jenkins, а также, откинувшись в кресле с бокалом любимого напитка, управлять всем, чем угодно. В основе...

Веб-компоненты. Часть 2: теневой DOM Вступление Приветствую, коллеги, и представляю вашему вниманию продолжение серии статей о веб-компонентах, первая часть которой доступна вот тут В этой статье речь пойдет о спецификации теневого DOM (shadow DOM) версии от 01.03.2018 г.. Последний черновик спецификации датиро...

[Перевод] Смешанная реальность помогает находить места для баз на Марсе 12 апреля 1961 года Юрий Гагарин совершил первый полет в космос. Сегодня — уже 57-ая годовщина этой памятной даты. За эти годы космическая отрасль развилась до того, что люди уже собираются колонизировать Марс. А Microsoft не остается безучастна к этому процессу. Под катом в...

Как выпустить самоподписанный SSL сертификат и заставить ваш браузер доверять ему Все крупные сайты давно перешли на протокол https. Тенденция продолжается, и многие наши клиенты хотят, чтобы их сайт работал по защищенному протоколу. А если разрабатывается backend для мобильного приложения, то https обязателен. Например, Apple требует, чтобы обмен данны...

[Из песочницы] True XP/TDD в Пивотал изнутри: как это выглядит и возможно ли это? Ранее на хабре публиковалась статья о том, как в теории выглядит Xp/Tdd в Пивотал Лабс, и были вопросы о том, возможно\нужно ли это в действительности. Я попытаюсь объяснить, как это выглядит на практике и почему это может быть (внезапно) хорошо. В последние полгода мне при...

Особенности национальной охоты на баги или Bug Bounty по славянски Почему крупнейший мобильный оператор платит за critical bug 3-мя месяцами бесплатного интернета, гос. авиа компания считает паспортные данные и дату рождения не конфиденциальной информацией, а служба доставки №1 в стране по скриншотам отрицает утечку данных? А тем времене...

[Перевод] Разработка на Blockchain — что изменится для разработчиков? Эта статья является переводом поста Винсента Чена (Vincent Chen) и Рамона Рекуэро (Ramon Recuero), цели которого очень схожи с теми, что преследуем и мы, и написанного для таких разработчиков, которых мы хотели бы видеть на своих мероприятиях. Введение Если вы читаете этот ...

[Перевод] Классы и фабричные функции в JavaScript. Что выбрать? В JavaScript существуют разные способы создания объектов. В частности, речь идёт о конструкциях, использующих ключевое слово class и о так называемых фабричных функциях (Factory Function). Автор материала, перевод которого мы публикуем сегодня, исследует и сравнивает эти две...

Тестирование семи процессоров в iXBT Application Benchmark 2018: пробуем обновленную методику на практике В этой статье мы рассмотрим результаты тестирования семи процессоров по нашей новой методике iXBT Application Benchmark 2018. Сами процессоры отнюдь не новые, все они уже тестировались нами, поэтому их подробные технические характеристики и энергопотребление мы оставим вне р...

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

[Перевод] Terraform: новый подход к Infrastructure as code Привет, коллеги! Пока блистательный Илон Маск вынашивает амбициозные планы терраформирования Марса, мы интересуемся новыми возможностями, связанными с парадигмой "Infrastructure as Code" и хотим предложить вам перевод статьи об одном из представителей «великолепной семерки» ...

[Перевод] Заметки о развертывании Ruby on Rails Deployment в Google Cloud Kubernetes Engine Я использую Google Cloud с Kubernetes Engine в течение 2 месяцев. На самом деле мне не понадобилось и месяца, чтобы уложить все в голове, но потребовалось еще столько же, чтобы разобраться с некоторыми неприятностями. TL;DR: Google делает довольно хорошую работу, поэтому AWS...

[Из песочницы] Аналоговые часы, CSS и ничего больше Что здесь не так? Здравствуйте, недавно послушал новый выпуск Веб-стандартов и там был момент с обсуждением статьи «Время переменных» где автор решил поэкспериментировать с CSS переменными и создать на основе них аналоговые часы. Все выглядит шикарно и главное работает, но у...

Google учит ИИ писать статьи в Wikipedia В будущем все статьи энциклопедий будут написаны роботами? Вряд ли, но Google надеется на то, что искусственный интеллект станет достаточно умным, чтобы помогать людям в собирании информации в сети. Нейронные энциклопедисты Не секрет, что наши попытки научить ИИ писать тек...

Технический долг и места его обитания Эта статья — вольный пересказ доклада, который я посетил на конференции GOTO Berlin 2017: A Crystal Ball to Prioritize Technical Debt. Изображения из доклада и права на них принадлежат автору @AdamTornhill. Каждый разработчик в принципе понимает, что такое технический дол...

Тестовый пакет iXBT Application Benchmark 2018, часть 6: приложения архивации и FineReader в качестве инструментов для тестирования производительности ПК В пятой статье цикла мы рассмотрим еще три приложения, которые можно использовать для тестирования процессоров и ПК, но нельзя отнести к одной логической группе: это такие относительно распространенные приложения, как Abbyy FineReader 12, WinRAR 5.50 и 7-Zip 18.

Почему переход компьютеров на USB-C — достаточно далекое будущее Статья об истории переходов с одних разъемов на другие, или почему переход компьютеров на USB-C происходит так медленно.

[Перевод] Matthias Noback Об Идеальной Архитектуре — Слои, Порты и Адаптеры (Часть 3 — Порты и Адаптеры) Matthias Noback (автор A year with Symfony) опубликовал цикл из трех статей, в котором описал свои взгляды на идеальную архитектру корпоративных приложений, сформировавшуюся за долгие годы практики.Первая часть является вводной и не представляет особого интереса(можно ознако...

[Перевод] Кончина программной инженерии и последний методист Disclaimer: Это перевод статьи профессора Бертрана Мейера из блога Communications of the ACM. Статья относительно недавняя (по сравнению с предыдущим переводом). А профессор Бертран Мейер, представлять которого не нужно, является почетным доктором и заведующим кафедрой ИТМО,...

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

Интересные материалы: 20.02 Сегодня у нас в дайджесте санаторий для мозга, фреймворк для онбординга и тормоза разработки.

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

UE4 и мобильная разработка: мифы и реальность Широко распространено мнение, что Unreal Engine 4 — слишком «тяжелая» технология для мобильных игр. В то же время число проектов, выпущенных на этом движке в мобильных сторах, растёт с каждым днём. Почему все больше разработчиков выбирают для своих проектов UE4? С какими сл...

Unit-тестирование скриншотами: преодолеваем звуковой барьер. Расшифровка доклада Тестировать регресс верстки скриншотами модно, этим никого не удивишь. Мы давно хотели внедрить этот вид тестирования у себя. Всё время смущали вопросы простоты поддержки и применения, но в большей степени — пропускная способность решений. Хотелось, чтобы это было что-то про...

Текущая разработка Kotlin На прошлой неделе при поддержке Redmadrobot SPB в рамках SPB Kotlin User Group прошла встреча со Станиславом Ерохиным, разработчиком из JetBrains. На встрече он поделился информацией о разрабатываемых возможностях следующей мажорной версии Котлина (под номером 1.3). В этой ...

Объект в футляре или Optional в Java 8 и Java 9: Часть 5: Недосказанное и постер в подарок Это пятая и последняя статья серии, посвящённая использованию класса Optional при обработке объектов с динамической структурой. В первой статье было рассказано о способах избежания NullPointerException в ситуациях, когда вы не можете или не хотите использовать Optional. Вт...

[Перевод] Выученная беспомощность в разработке ПО Лучше зажечь одну свечку, чем проклинать темноту. За последние 24 часа, две мои статьи «Почему ваш программист просто хочет кодировать» и «Менеджерам пора проснуться» прочитаны более 96 000 раз на Medium и получили более 900 комментариев на Reddit. Похоже, проблема серьёз...

[Перевод] Характер Kotlin Привет, Хабр! Надеемся в обозримом будущем и до Kotlin добраться. Мимо этой статьи (февральская) пройти не смогли. Читаем и комментируем! Читать дальше →

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

Hessian-Free оптимизация с помощью TensorFlow Добрый день! Я хочу рассказать про метод оптимизации известный под названием Hessian-Free или Truncated Newton (Усеченный Метод Ньютона) и про его реализацию с помощью библиотеки глубокого обучения — TensorFlow. Он использует преимущества методов оптимизации второго порядка ...

[Перевод] Операторы ?., ?? и |>: будущие возможности JavaScript, которые вам понравятся Джастин Фуллер, автор материала, перевод которого мы сегодня публикуем, предлагает рассмотреть три новых возможности, появление которых ожидается в JavaScript в обозримом будущем. Сначала он расскажет о процессе развития JS, а после этого представит обзор этих возможностей и...

Vue.js Moscow Meetup #1 (22.03.2018) В конце месяца пройдет первый Московский MeetUp, посвященный исключительно фреймворку Vue.js. На мероприятие приглашаются все заинтересованные разработчики – от начинающих до опытных. Мы будем обсуждать самые разные вопросы применения Vue.js, а спикеры и гости мероприяти...

Асинхронные HTTP-запросы на C++: входящие через RESTinio, исходящие через libcurl. Часть 3 В предыдущей статье мы разобрали реализацию двухпоточного bridge_server-а. На одном потоке асинхронно обрабатываются входящие HTTP-запросы посредством RESTinio. На втором потоке выполняются асинхронные запросы к delay_server-у посредством libcurl в виде curl_multi с использо...

FPGA для программиста, конечные автоматы (verilog) Стиль описания конечного автомата как образ мышления Когда нужно преодолеть врожденную параллельность FPGA, и появляется желание заставить схему работать последовательно, по алгоритму, на помощь приходят конечные автоматы, про которые написано не мало академических и практич...

[Перевод] Элегантные паттерны современного JavaScript: RORO Автор материала, перевод которого мы публикуем сегодня, Билл Соро, говорит, что написал первые строки кода на JavaScript вскоре после появления этого языка. По его словам, если тогда ему сказали бы, что однажды он выпустит серию статей об элегантных шаблонах проектирования в...

Три аспекта оптимизации (БД и ПО) Предисловие Довольно часто пользователи, разработчики, администраторы и т д СУБД MS SQL Server встречаются с проблемами производительности БД или СУБД в целом. В данной статье будут даны общие рекомендации по настройке оптимизации как БД, так и всей СУБД в целом. Также буду...

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

[Из песочницы] Соревнование Pri-matrix Factorization на DrivenData с 1ТБ данных — как мы заняли 3 место (перевод) Привет, Хабр! Представляю вашему вниманию перевод статьи "Animal detection in the jungle — 1TB+ of data, 90%+ accuracy and 3rd place in the competition". Или чему мы научились, как выигрывать призы в таких соревнованиях, полезные советы + некоторые мелочи TLDR Сут...

GCCGO против «стандартной» реализации Какие Go бенчмарки показывают лучшие результаты, будучи собранными gccgo и почему? Ответы на эти вопросы под катом. Читать дальше →

Модифицируем плеер Vanilla Music под Android (часть 2) В прошлой статье мы разбирали как можно добавить в плеер с открытым исходным кодом Vanilla Music возможность переключения треков при помощи клавиш громкости, если при этом устройство находится в кармане(например). В этой статье продолжим модификацию основной идеей для котор...

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

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

Анонсирован Google Summer of Code 2018 для проекта Radare2 Кроссплатформенный фреймворк Radare2 вновь станет частью инициативной программы Google Summer of Code.

Пользователь GitHub работает над ремейком градостроительного симулятора SimCity 2000 Некий Николас Очоа (Nicholas Ochoa) разрабатывает OpenSC2K — ремейк знаменитого градостроительного симулятора SimCity 2000, построенный на фреймворке Electron, что в теории позволяет запустить его практически на любой ОС. Он распространяется с открытым исходны...

[Перевод] Защита целостности кода с помощью PGP. Часть 2. Создание мастер-ключа Перед вами перевод второй части серии материалов, посвящённых защите целостности кода с помощью PGP. В прошлый раз мы разобрали основы PGP, а сегодня поговорим о том, как создавать 4096-битные мастер-ключи RSA, и о том, как их защищать. Читать дальше →

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

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

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

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

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

[Из песочницы] Создание несимметричной сетки с помощью Grid Layout На данный момент, по данным Can I Use, 84% браузеров поддерживает Grid Layout. С каждым месяцем это число растет. А ведь буквально недавно этот модуль находился за флагом. Поэтому если Вы еще не знакомы с теми возможностями, которые он предоставляет, то самое время это исп...

Обзор ASUS ZenFone 4 Selfie Pro «Смартфон с двойной камерой для идеальных селфи, созданный для тех, кто знает, как показать себя», — примерно так описывает смартфон официальный сайт ASUS. Авторы Trashbox взялись проверить, насколько правдива такая характеристика. Читать дальше →

Установка Facebook image recognition package. Все грабли в одном месте Недавно Facebook выпустила свой open-source-проект по распознаванию образов. Конечно же, его сразу захотелось пощупать, посмотреть, как он работает и что с его помощью можно получить. Мы решили разобраться с его установкой и опытным путём проверить, так ли легко его использо...

Generative adversarial networks В прошлой статье мы рассмотрели простейшую линейную генеративную модель PPCA. Вторая генеративная модель, которую мы рассмотрим — Generative Adversarial Networks, сокращенно GAN. В этой статье мы рассмотрим самую базовую версию этой модели, оставив продвинутые версии и сравн...

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

Учебник Thymeleaf: Глава 15. Подробнее о конфигурации Оглавление 15 Подробнее о конфигурации 15.1 Resolver шаблонов Для нашего виртуального бакалейного магазина Thymes мы выбрали реализацию ITemplateResolver под названием ServletContextTemplateResolver, которая позволила получить шаблоны в качестве ресурсов из контекста сервле...

О портировании проекта MIPSfpga Перенос программного обеспечения с одной компьютерной архитектуры на другую в принципе, с некоторыми оговорками, дело относительно простое. Здесь на помощь приходят такие общеизвестные инструменты, как autoconf / automake/ libtool / gnulib. Собрать программу из исходников ...

[Из песочницы] Гейм дизайн в жизнь. Пример разбора механики игры Доброго дня! Немного об авторе: меня зовут Мария, начинающий гейм дизайнер. С этой статьи начинаем цикл статей по применению теории гейм дизайна в жизни. В этой статье попытаемся разобрать механику игры на примере Northgard от студии Shiro Games (находящуюся на стадии ранн...

[Из песочницы] Qt: Пишем обобщенную модель для QML ListView Кому-то материал этой статьи покажется слишком простым, кому-то бесполезным, но я уверен, что новичкам в Qt и QML, которые впервые сталкиваются с необходимостью создания моделей для ListView, это будет полезно как минимум как альтернативное*, быстрое и довольно эффективное р...

Социальные сети следят за вами. Разбираем пример Вконтакте Ни для кого не является секретом, что все крупные социальные сети созданы для заработка - вам подсовывается реклама на основе ваших интересов. Интересуетесь вы автомобилями - получите рекламу об автомобилях, интересуетесь майнингом - получите рекламу ASIC'ов. Уже на протяжен...

Особенности настройки и запуска PVS-Studio в Docker на примере кода Azure Service Fabric Технологии контейнеризации активно используются для сборки и тестирования программного обеспечения. С появлением PVS-Studio для Linux, пользователям стала доступна возможность добавить статический анализ к другим методам тестирования своего проекта на этой платформе, в том ...

Основы информационной безопасности. Часть 4. Стандарты и спецификации Это четвертая статья в цикле статей по теме «основы информационной безопасности». Описанные ранее вопросы: Часть 1: Виды угроз Часть 2: Информация и средства ее защиты Цена ошибки Часть 3: Модели информационной безопасности Специалистам в области информационной безопасн...

[Перевод] Разбор алгоритма консенсуса в Tendermint В этой статье описан алгоритм консенсуса BCA (Byzantine Consensus Algorithm), используемый в Tendermint. Разработанный на основе протокола DLS, он не требует никакого "активного" майнинга, как в Proof-of-Work, и может обеспечить безопасную работу сети при наличии как миниму...

Техническая поддержка Check Point (TAC). Краткое руководство При выборе комплексного средства защиты (UTM/NGFW) обычно обращают внимание на следующие характеристики: Цена; Функционал; Качество (подкрепленное различными отчетами и тестами); Простота и удобство управления; Популярность решения. Однако, почему-то большинство всегда ...

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

[Из песочницы] Ученье — свет, или как организовать мастер-класс за 2 дня Обучение новых пользователей и разработчиков служит одним из основных инструментов популяризации своего продукта или технологии. Наша компания несколько месяцев назад начала приоткрывать «завесу» над своей технологией и привлекать новых разработчиков к платформе, на которо...

[Из песочницы] Знакомство с Gjallarhorn.Bindable.WPF (F#) на примере выполнения тестового задания В статьях на русском языке теме использования F# совместно с WPF уделяют немного внимания. Сегодня я попробую познакомить вас с одной из F# библиотек, которая значительно упрощает такую разработку. В качестве демонстрационного примера возьмем одно из тестовых заданий по WPF,...

Ваш пакет Composer сломан: обновите идентификатор лицензии Если вы, как и я: являетесь мэйнтейнером какой-либо библиотеки или фреймворка; ваша библиотека или фреймворк выпущены под какой-либо свободной лицензией ваша библиотека или фреймворк доступны к установке через Composer и размещены на сервисе Packagist; то у вас, возможно,...

[Перевод] Blockchain на Go. Часть 5: Адреса Содержание Blockchain на Go. Часть 1: Прототип Blockchain на Go. Часть 2: Proof-of-Work Blockchain на Go. Часть 3: Постоянная память и интерфейс командной строки Blockchain на Go. Часть 4: Транзакции, часть 1 Blockchain на Go. Часть 5: Адреса Blockchain на Go. Часть 6: Тра...

Изучаем и реализуем алгоритм работы правильного observer паттерна для react компонентов Итак продолжаем развивать observer-паттерн. В предыдущей статье от старого и очень простого паттерна "observer" маленькими шагами мы пришли к mobx и написали его мини-версию. В этой статье мы напишем полноценную версию mobx которая реализует алгоритм обновления зависимостей...

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

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

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

[Из песочницы] Минимизируем код React Redux приложения Мне хотелось поделиться собственными размышлениями и способом построения структуры приложения с использованием react-redux. Так как я относительно недавно стал писать код на JS и поэтому не претендую на истину и на действительно верный способ разработки. Надеюсь эта статья п...

[Перевод] [1] + [2] — [3] === 9!? Исследование внутренних механизмов приведения типов в JavaScript JavaScript позволяет выполнять преобразование типов. Если это делают намеренно, то перед нами — явное приведение типов (type casting или explicit coercion). В том случае, когда это производится автоматически, при попытке выполнения каких-либо операций над значениями различны...

RequireJS для приложений Vue.js + Asp.NETCore + TypeScript Создаем на Visual Studio 2017 модульное приложение Vue.js + Asp.NETCore + TypeScript. В качестве системы сборки вместо Webpack используем компилятор TypeScript + Bundler&Minifier (расширение к VS2017). Загрузку модулей приложения в рантайм обеспечивает SystemJS или Requ...

Построение расширенной системы антивирусной защиты небольшого предприятия. Часть 1. Выбор стратегии и решения Наверное, не стоит много писать о необходимости уделять внимание ИТ безопасности и что будет, если этого не делать. Поэтому сразу перейдём к делу. В рамках одного из проектов понадобилось организовать комплексную защиту одной из сетевых ИТ-инфраструктур. Читать дальше →

Реализуем промисы на Java Всем доброго времени суток. Сегодня я хочу рассказать о том, как писал реализацию механизма промисов для своего JS движка. Как известно, не так давно вышел новый стандарт ECMA Script 6, и концепция промисов выглядит довольно интересно, а также уже очень много где применяется...

Дайджест продуктового дизайна, март 2018 Дайджест собирает свежие статьи по дизайну интерфейсов, а также инструменты, паттерны, кейсы и исторические рассказы с 2009 года. Я тщательно фильтрую большой поток подписок, чтобы вы могли прокачать свои профессиональные навыки и лучше решить рабочие задачи. Предыдущие выпу...

[Из песочницы] Парсеры, обработка текста. Просто о сложном. CFG, BNF, LL(k), LR(k), PEG и другие страшные слова Наверное, каждому программисту приходилось сталкиваться с задачами вида «прочитать что-то в формате А и произвести с ним некие манипуляции». Будь то json, логи nginx, cfg, sql, yaml, csv или что-то еще. Хорошо, когда можно воспользоваться библиотекой, однако, по разным причи...

[Перевод] Как я заработал 200 000 $ в 16 лет Года три назад я опубликовал рассказ о приложении Follow для Twitter, которое сделал еще в старшей школе, и о том, как оно собрало 150 000 скачиваний за два года. В той статье я мимоходом упомянул, что мои первые шаги в программировании — это отдельная, еще более пространная...

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

[Из песочницы] Многопоточность на корабликах Задача производитель/потребитель Статья рассчитана для новичков, которые недавно начали свое знакомство с миром многопоточноcти на JAVA. Читать дальше →

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

Как собирать данные с сайтов: онлайн-сервисы и Python 31 марта 2018 года в Перми состоялся митап Теплицы социальных технологий, посвященный технологии веб-скрейпинга с помощью программного кода. Участники обсудили необходимость сбора данных и рассмотрели сценарии использования собранных данных для исследования проблемы, из...

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

Анонс Serverless Moscow Meetup #1 Всем привет! Первый митап в России по технологии Serverless пройдет 1-ого марта в Rambler&Co. Мы поговорим о том, что такое Serverless и почему появился этот подход, а также рассмотрим два практических кейса: построение аналитической системы для мобильного приложения и ...

[Перевод] Генерация и тестирование ядра RISC-V Как я писал в прошлом посте, название моего проекта на GSoC-2016 — «порт RISC-V на Parallella», и первая вещь, которую я должен был сделать, это познакомиться с экосистемой RISC-V. Один из лучших способов это сделать, — посмотреть видео с презентации первого воркшопа RISC-V ...

[Перевод] Марвин Мински «The Emotion Machine»: Глава 1 «Как мы управляем собой» Отец искусственного интеллекта размышляет о том, как сделать машину, которая бы гордилась нами. Марвин Мински был довольно жестким ученым и то, что он своим «скальпелем познания» исследует тему чувств и эмоций, что же делает нас людьми, довольно интересно и полезно. Книга — ...

Личный опыт: подборка материалов о виртуальной инфраструктуре, ИБ и трендах на рынке IaaS В этой подборке мы собрали статьи разного уровня сложности: от базовых рекомендаций для тех, кто только начинает знакомиться с виртуальной инфраструктурой, до тематических руководств и теоретических статей. Здесь мы задействовали главным образом те материалы, которые подгот...

[Перевод] Генерируем уровни для игры с помощью нейросетей Предисловие За последние несколько лет прогресс в области искусственного интеллекта привёл к созданию методов машинного обучения на основе обучения представлениям (representation-learning) с несколькими слоями абстракции — так называемому «глубокому обучению». Общественное ...

[Перевод] Считаем кур, пока их не заклевали Эта история началась с короткой статьи в New York Times о Люке Робитейле, 13-летнем школьнике из Юлесса, штат Техас, который выиграл Raytheon Mathcounts National Competition, правильно ответив на следующий вопрос: В амбаре кружком сидят 100 кур. Каждая из кур случайным образ...

[Перевод] Четыре уровня одностраничных приложений, о которых вам нужно знать В этой статье мы с нуля разработаем React-приложение, обсудим домен и его сервисы, хранение, сервисы приложения и представление (view). Читать дальше →

[Перевод] Ответы на распространённые вопросы о шаблоне render prop Кент С. Доддс, автор материала, перевод которого мы публикуем сегодня, говорит, что недавно группа программистов, с которыми он должен был провести тренинг по React, заинтересовалась шаблоном «render props», который ещё называют шаблоном «функция как потомок» (в разных публи...

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

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

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

Три способа обновить запрос в Jira из ScriptRunner, используя Jira Java API В этой статье будут рассмотрены три способа обновления запроса в Jira, используя Jira Java API. Я буду использовать следующие методы Jira Java API: Issue.setCustomFieldValue(CustomField customField, Object value) CustomField.updateValue(FieldLayoutItem fieldLayoutItem, Is...

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

[Из песочницы] ECO Flow в Vivado или работа в режиме редактирования нетлиста Аннотация В статье рассмотрен режим работы Vivado, позволяющий вносить изменения в проект на уровне редактирования списка соединений (в дальнейшем – нетлиста). Описаны как сам режим ECO, так и некоторые нюансы, которые появляются во время работы в нём. Приведён демонстрацион...

[Перевод] 3D-движок, написанный на формулах MS Excel Скриншот экрана игры Эта статья посвящена тому, как я смог написать 3D-движок только на формулах Excel. Я реализовал следующий функционал: бесконечная процедурно генерируемая карта лабиринта рендеринг трассировкой лучей в реальном времени вычисление окклюзии рендеринг пр...

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

Интерфейсы: как сообщать пользователю, если «Упс, что-то пошло не так» Здесь вы не увидите ни строчки кода. Мы поговорим об обычных людях — о наших пользователях, точнее о том, как сообщать им, если в системе возникла какая-то непредвиденная ситуация. В основе статьи доклад Антонины Хисаметдиновой с Heisenbug 2017 Moscow, которая занимается п...

[Перевод] Руководство по SEO JavaScript-сайтов. Часть 1. Интернет глазами Google Представляем вашему вниманию перевод первой части материала, который посвящён поисковой оптимизации сайтов, построенных с использованием JavaScript. Речь пойдёт об особенностях сканирования, анализа и индексирования таких сайтов поисковыми роботами, о проблемах, сопутствующи...

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

[Перевод] [в закладки] Инструменты для тестирования JavaScript-проектов Автор материала, перевод которого мы публикуем сегодня, сотрудник Welldone Software, говорит, что если в двух словах рассказать об инструментах для тестирования JavaScript-проектов, то для модульного и интеграционного тестирования рекомендуется использовать Jest, а для тесто...

VDOM своими руками Привет. У многих frontend-разработчиков бытует мнение, что технология VDOM, которая, в частности, используется в React.js, работает как черный ящик. Так же на просторах npm есть куча библиотек, реализующих эту технологию, однако вот как по мне — так в них черт ногу сломит. С...

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

Скрипт получения информации из образа Windows Имею серию статей посвящённых теме обслуживания образов Windows командами системы DISM. В моих статьях приводились примеры скриптов на языке интерпретатора командной строки cmd.exe. В результате работы исходный образ Windows (живая система или автономный файл *.wim) изменялс...

Как подписать сообщение алгоритмом ГОСТ Р 34.11/34.10-2001 на Java В этот статье я расскажу, как подписать произвольное сообщение приватным ключом и сертификатом по алгоритму ГОСТ Р 34.11/34.10-2001 присоединённой (attached) подписью на языке Java. Для проекта электронного документооборота мне потребовалось сделать подпись алгоритмом ГОСТ....

Опыт перехода проекта на phalcon с php 5.6 на 7.1 Время идет, прогресс приносит свои плоды, каждый месяц выходят новые версии того или иного программного обеспечения. То же происходит и с языком PHP. Наша команда проекта krisha.kz решила, что уже пора совершить переход на новую версию интерпретатора. Мы поделимся опытом п...

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

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

Дайджест новостей из мира PostgreSQL. Выпуск №5 Feature freeze Это, конечно, главное событие для сообщества. То, что не прошло только что закончившийся комитфест, не попадет в версию PostgreSQL 11. Что заморозили на feature freeze Это наша сводка попавших в нее важнейших патчей. Сводка сводкой, а статьи об PostgreSQL ...

Python, Delphi и C++ глазами учёного Статья про использование Python в научных вычислениях подтолкнула меня написать эту статью. Это история, случившаяся со мной и с коллегами 6 лет назад. На тот момент я уже достаточно подразобрался с Delphi и Python, но только теперь я ощущаю что достаточно поработал с C/C++,...

Коллтрекинг Mango Office: под капотом сервиса В первой статье мы «срывали покровы» и рассказывали, что такое коллтрекинг. Затем подробно разобрали его настройки, теперь — о том, как мы в «Манго Телеком» создавали эту услугу и какой стек технологий используем. Читать дальше →

Новые возможности LISP в nanoCAD 8.5 Поддержка LISP в nanoCAD появилась давно и связывалась в первую очередь со специальной командой LSP, которая открывает LISP-консоль, предназначенную для ввода выражений и анализа переменных: Рис. 1. Окно LISP-консоли Релиз 8.5 сделал следующий важный шаг вперед, теперь вв...

Как мы делали «нарратив» – новый формат публикаций в Яндекс.Дзене Два года Яндекс.Дзен учился решать задачу персональных рекомендаций контента. Теперь Дзен — не только агрегатор статей и видео со сторонних ресурсов интернета, но и контент-площадка. Летом 2017 года была запущена платформа издателей, на которой каждый может создавать публика...

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

Улучшат ли ускоренные мобильные страницы ранжирование в Google и как настроить тест AMP Перевод статьи Стефани ЛеВонн из Search Engine Land от VT Digital.

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

[Из песочницы] Немного о физике в почти Agar IO на aicups.ru В соревновании MiniAICup#2 Почти Agar IO надо управлять амёбами, есть еду и других амёб. Для реализации алгоритма управления амёбой напрашиваются потенциальные поля, но есть одно большое НО. Читать дальше →

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

Конвертация React в Angular с использованием универсального абстрактного дерева. Proof of Concept Вступление Доброго времени суток, меня зовут Владимир Миленко, я Frontend-разработчик в компании Lightspeed, и сегодня мы поговорим о проблеме отсутствия компонентов в том или ином фреймворке и попытках автоматически конвертировать их. Предыстория Исторически сложилось, что...

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

Работа с API КОМПАС-3D → Урок 8 → Более сложные методы записи в основную надпись Продолжаем цикл статей по работе с API САПР КОМПАС-3D Сергея Норсеева, инженера-программиста АО «ВНИИ «Сигнал», автора книги «Разработка приложений под КОМПАС в Delphi». В качестве среды используется C++ Builder. Мы уже рассматривали работу с основной надписью в четвертой ча...

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

Проблемы при работе с кэшем и способы их решения Привет, Хабр! Меня зовут Виктор Пряжников, я работаю в SRV-команде Badoo. Наша команда занимается разработкой и поддержкой внутреннего API для наших клиентов со стороны сервера, и кэширование данных — это то, с чем мы сталкиваемся каждый день. Существует мнение, что в прог...

10-гигабитный Ethernet: советы новичку Вдохновившись интернет-запросами в стиле «как сделать спиннер из картонки», я решил рассказать о том, что близко мне: как самому построить 10-гигабитную сеть. Гигабитный Ethernet вопросов уже не вызывает – справится даже школьник: потребуется коммутатор, медная витая пара ...

[Перевод] Обзор библиотеки react-testing-library В материале, перевод которого мы публикуем сегодня, Кент Доддс рассказывает о библиотеке собственной разработки для тестирования React-приложений, react-testing-library, в которой он видит простой инструмент, способный заменить enzyme и способствующий написанию качественных ...

[Перевод] Метод Бенджамина Франклина для чтения книг по программированию Посмотрим правде в глаза, книги по программированию — отстой. Эти общие книги по распределённым системам, науке о данных и так далее — их можно читать бесконечно. Но за редким исключением у практических руководств по языку/фреймворку/СУБД/кексопечке есть нечто общее. Зверюшк...

[Перевод] Подсчитываем коллективный интеллект Хабра (и любой другой организованности людей) Питер Хинченс (Pieter Hintjens), автор книги «Социальная Архитектура», на основе многолетнего опыта управлением open source сообществом предлагает свою систему оценки организованности. Коллективный Индекс Интеллекта или КИИ (CII) Я собираюсь предложить инструмент по изме...

Не Dagger'ом едины В последнее время многим программистам очень понравилась библиотека для реализации внедрения зависимостей Dagger2. Хотя, как мне кажется, из-за неочевидной работы под капотом и большим семейством аннотаций Dagger долго заходил в комьюнити. И так получается что сейчас куда не...

Рубрика «Читаем статьи за вас». Декабрь 2017 — Январь 2018 Привет, Хабр! Продолжаем публиковать рецензии на научные статьи от членов сообщества Open Data Science из канала #article_essense. Хотите получать их раньше всех — вступайте в сообщество! Читать дальше →

Панель управления услугами. Часть 3. Рекогносцировка В предыдущей части я закончил рассказ про API и стык с фронтендом. В этой статье я расскажу про сам фронтенд и начну с темы, которая обычно раскрывается ближе к концу. Тестирование. Читать дальше →

Рубрика «Читаем статьи за вас». Февраль — Март 2018 Привет, Хабр! Продолжаем публиковать рецензии на научные статьи от членов сообщества Open Data Science из канала #article_essense. Хотите получать их раньше всех — вступайте в сообщество! Читать дальше →

[Из песочницы] Mobility Express — когда решили мигрировать и масштабировать беспроводную сеть, но как всегда, денег нет С выхода первой статьи на Хабре описывающей решении Mobility Express уже прошло более 2-х лет. И что странно, больше эту тему не трогали. Читать дальше →

[Перевод] Неожиданные сложности с заработком в интернете До того я ушла из Google для работы над собственным стартапом, то не думала о монетизации. Предполагалось, что если так много веб-сайтов делают это каждый день, то взимать плату за онлайн-услуги будет просто. Но когда я начала развивать Kapwing, сайт для редактирования вид...

Google поможет создавать нативные приложения Стала доступна бета-версия Flutter, фреймворка для разработки приложений на iOS и Android

Эпизод 0. Hack vs Mac. Xcode build time Эта статья начинает собой цикл из нескольких об использовании Hackintosh в повседневной работе и особенно с IDE Xcode 9 и будет больше интересна разработчикам под языки objc/swift. 
С другой стороны, мой первый хак был собран, когда я не был знаком с этими языками и может пр...

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

Как мы в Smart Engines учили Sailfish OS распознаванию Всем привет! Как вы уже знаете по нашим статьям, мы в Smart Engines занимаемся распознаванием, причем распознавать мы стараемся на чем угодно и в любых условиях. Мы поддерживаем все популярные операционные системы: iOS, Android, Windows, Linux, MacOS, Solaris. Поддерживаем ...

Google запустила бета-версию инструмента кроссплатформенной разработки для мобильных устройств Flutter Google представила бета-версию фреймворка Flutter, который позволяет создавать приложения для iOS и Android. Компания рассказала об обновлении сервиса на Mobile World Congress 2018.

[Из песочницы] Какие привычки делают меня лучше как разработчика ПО? Привет, Хабр! Представляю вашему вниманию перевод статьи «What habits made me a better Software Engineer?» от Sonny Recio. Наши привычки — это ежедневные шаблоны поведения в жизни. Они могут быть как плохими, так и хорошими. Привычки могут быть жизненно необходимыми, наприм...

Java и Project Reactor Всем привет! Меня зовут Лёха, и я работаю бэкенд-разработчиком в FunCorp. Сегодня мы поговорим про реактивное программирование, библиотеку Reactor и немного про веб. Реактивное программирование часто «подвергается упоминанию», но если вы (как и автор статьи) всё ещё не знае...

[Из песочницы] Управляем браузером с помощью PHP и Selenium Интро Всем привет! Сегодня я расскажу вам о том, как с помощью PHP можно работать с Selenium. Чаще всего это бывает необходимо, когда перед вами стоит задача написать автотесты для web интерфейса или свой парсер/краулер. С Википедии«Selenium — это инструмент для автоматиза...

[Из песочницы] Использование Reflection.Emit для предварительной компиляции выражений в MSIL Привет, Хабр! Представляю вашему вниманию перевод статьи "Using Reflection.Emit to Precompile Expressions to MSIL" автора Steve Marsh. Введение Классы в этом проекте позволяют анализировать текстовые выражения, введенные пользователем, и компилировать их на сборк...

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

Делаем дырки в торрентах освобождая место и оставаясь на раздаче (часть 1) Предупреждение: Этот график сделан для скрипта второй части статьи за которую я ещё не брался. Поэтому не очень обращайте внимание на данные в нём. Графики для этой статьи в конце под спойлером. Информацию из этой статьи используйте на свой страх и риск. Мы будем стирать да...

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

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

Применяем Deep Watershed Transform в соревновании Kaggle Data Science Bowl 2018 Применяем Deep Watershed Transform в соревновании Kaggle Data Science Bowl 2018 Представляем вам перевод статьи по ссылке и оригинальный докеризированный код. Данное решение позволяет попасть примерно в топ-100 на приватном лидерборде на втором этапе конкурса среди общего чи...

[Перевод] Трансляция один-ко-многим: нужен ли медиасервер? TL;DR – ДА. Очередная статья нашего израильского коллеги по WebRTC и звонкам между браузерами переведена для Хабра. Мы в Voximplant разрабатываем собственное решение для организации видеоконференций через сервер и можем сказать что да, все именно так. Peer-to-Peer штука хо...

Aws Lambda Go 1.x, Kinesis, CloudSearch В предыдущей статье я описала как создать простую лямбду на Golang, которая принимает на вход простой объект из двух полей и такой же простой объект отдает на выходе. Теперь немного усложним задачу, подсоединив к лямбде в качестве источника данных Kinesis, а результат обрабо...

От проката DVD до сервиса потокового мультимедиа: на чём строится бренд Netflix Перевод статьи бывшего топ-менеджера Netflix Гибсона Биддла, в которой он поделился опытом работы над брендом.

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

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

[Перевод] Автоматизация тестирования и Agile Всем привет! Приближаемся к запуску нового нашего курса: «Автоматизатор в тестировании». Сегодня вот последний открытый урок, потом день открытых дверей и в бой :) На прошлых двух таких мероприятиях не раз задавался вопрос о связи Agile и автоматизации. Вот, нашёлся в закр...

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

Network-дайджест: 20 материалов о сетях, протоколах и битве за Net Neutrality В нашем тематическом дайджесте мы собрали статьи из корпоративного блога VAS Experts, посвященные теории организации сетей, законодательству и разным видам интернет-протоколов. Их мы дополнили постами из нашего блога на Хабре: о сетевом нейтралитете и блокировках. Читать д...

Сканеры штрих-кода для ЕГАИС: мифы и реальность, критерии выбора В прошлой статье мы писали о новой версии ЕГАИС 3.0 и введении обязательного помарочного учета алкогольной продукции на территории России. Сейчас предприниматели не на шутку озадачены проблемой автоматизации в соответствии с законом. Существует куча мифов о том, какое считы...

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

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

#Ускорение4X. Адвокат дьявола Сегодня рассмотрим конкретный прием, который, при честном применении, может решить задачу ускорения до 4X, и дальнейшие статьи можно будет не читать. Этот прием называется «Адвокат дьявола», и цель его применения в нашем случае — снижение сопротивления людей. Сопротивление ...

[Перевод] Введение в квантовые вычисления Привет, Хабр! Совсем недавно мы рассказывали вам о квантовых вычислениях и языке Q#. Сегодня же мы уйдем в теорию еще глубже и рассмотрим историю квантовых вычислений. Кроме того, в этой статье вы найдете 5 требований к квантовому компьютеру. Какими свойствами должна обладат...

Не все токены одинаково полезны (часть вторая) ForkLog публикует вторую часть статьи Дмитрия Бондаря о том, чем теория и история денег могут быть полезны практикам, имеющим дело с utility-токенами. Первая часть статьи доступна здесь. Токены приложений и национальные валюты Существуют токены приложений, созданные на откры...

Компилятор на JavaScript с использованием ANTLR В начале этого года я присоединилась к команде, работающей над MongoDB Compass — графическим интерфейсом для MongoDB. Пользователи Compass через Intercom запросили инструмент, позволяющий писать запросы к базе данных, используя любой удобный им язык программирования, подд...

[Из песочницы] Как сдать тест MTCNA (Mikrotik) на 100% Эта статья будет полезна тем, кто впервые собрался получать сертификат от Mikrotik, но боятся «неизведанно» и профукать деньги. Я вчера (14-04-2018) сдал тест на MTCNA на 100% и поделюсь с Вами как я достиг этого. Читать дальше →

[Перевод] Знакомство с рекомендательными системами Привет, Хабр! Давайте вернемся к периодически затрагиваемой у нас теме машинного обучения и нейронных сетей. Сегодня речь пойдет об основных типах рекомендательных систем, их достоинствах и недостатках. Под катом — интересная статья Тоби Дейгла с кодом на Python, Над катом...

[Перевод] Автоматизируй, когда можешь, программируй, когда необходимо Здравствуйте, уважаемые читатели Вот-вот в издательстве O'Reilly выйдет очередная занятная книжка с крокодилом Этот увесистый компендиум всесторонне освещает вопросы о том, в какой степени сисадмин должен быть «network engineer», как оптимально соотносится автоматизация и...

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

Учебник Thymeleaf: Глава 6.Итерации Оглавление 6 Итерации На текущий момент мы обсудили и создали домашнюю страницу, страницу профиля пользователя, а также страницу, позволяющую пользователям подписаться на нашу рассылку… но как насчет наших продуктов? Для этого нам понадобится способ перебора элементов в кол...

Как работают приложения Сбербанк Онлайн: Workflow API и фрэймворки Много кто пользуется приложением Сбербанк Онлайн, но немногие знают, как оно работает. Настало время приоткрыть завесу тайны – в этой статье мы расскажем о некоторых подходах, которые используем в разработке. Читать дальше →

[Из песочницы] SSO и Kibana: интеграция Kibana со встроенной аутентификацией Windows (Single Sign-On) В этой статье мне хотелось бы поделиться способом настройки технологии единого входа (SSO) в Elastic Stack, использующим X-Pack для аутентификации пользователей и разграничения доступа к данным. Читать дальше →

Обзорная лекция и запуск 2-й части курса по разработке веб-сервисов на Go У нас две хорошие новости. На Coursera мы запустили 2-ю часть онлайн-курса по разработке веб-сервисов на Go. А 2-го марта в офисе проведем обзорную лекцию, на которой расскажем, почему вам стоит попробовать Go. Под катом подробности. Читать дальше →

Плюсы и минусы ведения бизнеса в США: наблюдения после года развития своей компании В прошлом году я рассказывал на Хабре о том, как получил визу О1 и переехал в США развивать собственный бизнес. В комментариях читатели задавали вопросы о том, каково это работать на себя в Америке. И если тогда мой опыт был слишком скудным, чтобы ответить, то теперь после...

$5 в подарок и бесплатные товары: как мы привлекали пользователей на торговую платформу Creative Market Перевод статьи создателя Creative Market Аарона Эпштейна о том, как завоевать аудиторию ещё до полноценного запуска проекта.

Как мы участвовали в хакатоне от OpenData Всем привет, в этой статье я хочу рассказать про Why So Serious Hack. Про то, что вообще нас туда привело, чем хакатоны в классическом понимании отличаются от хакатонов с контестом и что нам помогло выиграть. Читать дальше →

SOLID SOLID критикует тот, кто думает, что действительно понимает ООП © Куряшкин ВикторЯ знаком с принципами SOLID уже 6 лет, но только в последний год осознал, что они означают. В этой статье я дам простое объяснение этим принципам. Расскажу о минимальных требованиях к языку прог...

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

Google выпустила бета-версию фреймворка Flutter для разработки приложений на Android и iOS Компания Google воспользовалась проходящей в эти дни выставкой MWC 2018, чтобы представить бета-версию кроссплатформенного фреймворка Flutter, который позволит создавать приложения для iOS и Android одновременно. Инструмент должен значительно значительно сократить время напи...

Amazon S3 и все-все-все: выбираем объектное хранилище Самые известные на мировом рынке объектные хранилища — это Amazon S3 (Simple Storage Service), Google Cloud Storage и Microsoft Blobs Storage. Они надежны, доступны через интернет и масштабируются до сотен петабайт. Наиболее популярный способ доступа к объектному хранилищу —...

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

[Перевод] Мышление в стиле Ramda: первые шаги Недавно я познакомился с замечательной серией статей "Thinking in Ramda", которые проясняют на простых и ясных примерах способы написания кода в функциональном стиле с использованием библиотеки Ramda. Эти статьи показались мне настолько прекрасными, что я не смог удержаться ...

Есть ли жизнь на Марсе: насколько близки учёные к решению этого вопроса Краткая история научного спора вокруг Красной планеты — адаптированный перевод статьи Теда Антона.

Меняйте всё так, как нужно именно вашему продукту: как сами дизайнеры Google применяют гайдлайны Material Design Перевод статьи дизайн-евангелиста Google Мустафы Куртулду о применении их технологии в разработке приложений Keep и Inbox.

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

Опыт двух попыток сдачи JNCIE-SP Введение Добрый день или вечер, или даже ночь, дорогие хабравчане. В данной статье хочу поделиться своим опытом, сдачи экспертного экзамена JNCIE-SP. Я обладаю опытом двух сдач, в Москве и Амстердаме. Читать дальше →

Секционирование в PostgreSQL 10 и не только У многих достижений версии PostgreSQL 10 прописка в разделе Секционирование (Partitioning). И это справедливо: очевидно, что при переходе от 9.6 к 10 произошел мощный технологический скачок. В предыдущих версиях секции строили и управляли ими, теми средствами, что уже имели...

Метрики на службе у QA Апрельская статья из цикла «Календарь тестировщика» посвящена метрикам. Кирилл Раткин, тестировщик Контур.Экстерна, расскажет как повысить эффективность тестирования с их помощью и не уйти в крайности. Как часто вам приходится что-либо оценивать? Наверное, каждый день. Хо...

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

DNSCrypt 2.0 и блокировка рекламы В этой статье хотелось бы рассмотреть нововведения Dnscrypt, на конкретном примере, который наверняка окажется для кого-то полезным. Для тех, кто не знает, Dnscrypt — это уникальный протокол шифрования DNS-трафика. Он даёт возможность защитить DNS-коммуникации от перехватов...

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

Управление hardware-продуктом: путь тяжелых компромиссов За последние несколько лет в России появилась и оформилась новая профессия – менеджер по продукту. Конечно, 10 лет назад были специалисты, которые выполняли обязанности менеджера по продукту или эти обязанности были распределены между несколькими людьми. Теперь же на рынке...

[Перевод] Ричард Хэмминг: Глава 8. Искуственный интеллект-III «Цель этого курса — подготовить вас к вашему техническому будущему.» Привет, Хабр. Помните офигенную статью «Вы и ваша работа» (+219, 2365 в закладки, 360k прочтений)? Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, н...

Карго-культ вокруг и внутри нас: IT HR и маркетинг Совсем недавно я наткнулся на очередное обсуждение DevRel в «Разборе Полетов», в котором услышал странно знакомое слово «карго-культ». Потом оно же всплыло и в Telegram-канале Алексея 23derevo Федорова. Потом еще где-то… Всё это привело меня к мысли, что карго-культ охватил ...

Учебник Thymeleaf: Глава 7. Условное выполнение Оглавление 7 Условное выполнение 7.1 Простые условия: «if» (если) и «unless» (если не) Иногда вам понадобится фрагмент шаблона, чтобы появляться только в результате выполнения определенного условия. Читать дальше →

LL(*) парсер с использованием Rust макросов Wow. Such Rust. Much macro. © картинка - Твиттер аккаунт Servo Язык Rust стремительно набирает обороты. Кто-то пророчит ему стать заменой C/C++, кому-то он просто нравится. Я скорее принадлежу ко второй группе. Разработчики стараются сделать его удобным и безопасным. В нем ...

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

Работа с Anaconda на примере поиска корреляции курсов криптовалют Цель этой статьи — предоставить легкое введение в анализ данных с использованием Anaconda. Мы пройдем через написание простого скрипта Python для извлечения, анализа и визуализации данных по различным криптовалютам. Читать дальше →

Git: советы новичкам – часть 3 В финальной части нашей серии статей о работе с Git мы продолжим разговор о ветках, рассмотрим особенности работы с командой push и расскажем, что такое rebase. Первую и вторую статьи серии мы можете прочитать по ссылкам. Читать дальше →

Интенсив «C# для начинающих» С помощью С# вы можете писать Windows-приложения, кроссплатформенные игры на движке Unity, игры на Xbox и масштабные веб-сервисы. «Си-шарп» входит в ТОП-5 языков программирования по частоте запросов в Google и имеет четвертое по&n...

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

Вертим логи как хотим ― анализ журналов в системах Windows Пора поговорить про удобную работу с логами, тем более что в Windows есть масса неочевидных инструментов для этого. Например, Log Parser, который порой просто незаменим. В статье не будет про серьезные вещи вроде Splunk и ELK (Elasticsearch + Logstash + Kibana). Сфокусируем...

Software Transactional Memory на Free-монадах Осознав, что я давно не писал на Хабр ничего полезного о ФП и Haskell, и что имеется вполне отличный повод для технической статьи, — решил тряхнуть стариной. Речь в статье пойдет о Software Trasactional Memory (STM), которую мне удалось реализовать на Free-монадах при участи...

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

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

Почему в Google сложно получить повышение и иногда проще уволиться Пересказ статьи Майкла Линча.

Управление ИТ-активами: как мифы влияют на проекты Все счастливые проекты похожи друг на друга, каждый несчастливый проект несчастлив по-своему. 6 лет занимаюсь внедрением и автоматизацией бизнес-процессов, из них 3 года – внедрением ITAM-решений. В проектах по автоматизации процессов управления ИТ-активами постоянно боремся...

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

Как выбирать и контролировать журналистов(копирайтеров) при написании статей для информационных сайтов Сегодня я расскажу о том как контролировать журналистов(копирайтеров) при написании статей для информационных сайтов. В первую очередь нужно разделять журналиста и копирайтера. Журналист это тот кто продумывает текст и пишет интересную статью. Коприайтер это тот кто НАБИРАЕТ...

[Из песочницы] Централизованное обновление сертификатов Let's Encrypt Всем привет! В этой статье я опишу как мы решали проблему централизованного обновления сертификатов Let's Encrypt и управления инфраструктурой с помощью ansible. В нашем решении мы будем использовать: ansible rsync, rsyncd inotify, incron certbot nginx Читать дальше &rarr...

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

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

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

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

Почему компьютерные чипы стали быстрее «стареть» и что с этим делать На прошлой неделе на тематическом ресурсе Semiconductor Engineering вышла статья, которая выделяет тренд «старения» чипов в ЦОД. Мы решили поподробнее взглянуть на материал и рассказать, что происходит в этой сфере. Читать дальше →

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

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

Тотальный контроль: как китайская антиутопия угрожает всему миру Как власти Китая могут превратить весь мир в эпизод из сериала «Черное зеркало» при помощи системы социальных кредитов — перевод статьи The Atlantic от издания Futurist.

Несколько советов по организации Python-приложения на сервере В этой статье я хочу поделиться несколькими удобными способами организации вашего проекта на рабочем (даже продакшен) сервере. Я работаю, в основном, с Python/Django стеком, поэтому все примеры будут, в первую очередь, применительно к этому набору. Также ключевые технологии...

Android Go и Android One: что это такое и в чём различия В прошлом компания Google запустила несколько связанных с мобильной платформой Android проектов, между которыми легко запутаться. Изначально «корпорация добра» открыла программу Android One, но позже слегка изменила её суть и направление, в связи с чем создала Android Go. Ес...

Бесплатная книга “Цифровой поведенческий дизайн” Поведение человека программируется. Вам просто нужно знать язык программирования. Книга «Цифровой поведенческий дизайн» как раз и представляет фреймворк для программирование поведения пользователей.

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

[Из песочницы] Социальная инженерия как метод атаки «Only for fun» — такой девиз мы часто использовали, атакуя какие-либо системы. За довольно короткий период своей деятельности скопилось большое количество материала. Передо мной встала задача, как его упорядочить. Целью данной статьи не является обучение взлому. Это просто и...

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

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

Квантовые вычисления в компьютере Fujitsu Digital Annealer С 40-х годов прошлого века и до настоящего времени существовало четыре основных технологии, на которых базировались вычислительные машины: начиная с электронных ламп и заканчивая микропроцессорами. С момента появления первых ЭВМ потребность во все большем объеме вычислительн...

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

[Из песочницы] Почему важно не откладывать установку и конфигурацию CMS Битрикс на базе «1C-Битрикс: Виртуальная машина» Кто обронил перчатку? Выполняя один из проектов по тестированию на проникновение, мы наткнулись на виртуалку на публичном IP-адресе Заказчика. Из набора открытых на хосте портов у нас появилось ощущение, что это Битрикс. Читать дальше →

[Перевод] Реализация быстрых 2D-теней в Unity с помощью 1D shadow mapping Введение Недавно я приступил к реализации системы 2D-теней в Unity, которую можно было бы использовать в настоящей игре. Как известно профессиональным разработчикам, есть большая разница между тем, чего можно достичь в техническом демо и тем, что применимо для интеграции в ...

[Из песочницы] Gaijin Engineer in Tokyo Статья 26 марта об иммиграции в Чили разожгла во мне интерес касательно эмиграции в "экзотические" страны. В комментариях к ней же кто-то посоветовал Gaijin Engineer in Tokyo, которая открыла любопытный инсайд на жизнь иностранца в Японии. Я порою рассматриваю эту страну как...

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

Зачем ритейл и бизнес по доставке товаров переходят на IaaS: обзор кейсов Сектор e-commerce растет во всем мире. Это отражается и на смежных сферах. Например, на доставке товаров. Внедрение ИТ-технологий уже изменило работу курьерских служб и других сервисов доставки. В этой статье поговорим о том, какую роль здесь играет IaaS. Читать дальше →

Как я съездил на CodeFest 31 марта и 1 апреля в Новосибирске в очередной раз случился CodeFest. В этом посте я расскажу, как съездил на самую большую разработческую конференцию за Уралом и почему в следующем году вам тоже стоит поехать. Читать дальше →

Анимации в Android по полочкам (Часть 1. Базовые анимации) Всем привет! Сегодня я хочу немного рассказать про анимацию в Android. Думаю для всех достаточно очевидный факт, что анимации могут украсить наше приложение. Но я считаю, что они могут намного больше. Первое это — хорошие анимации даже при скромной графике могут вывести наш...

Прокачиваем производительность C# с Федерико Луисом Сегодня мы поговорим о производительности в C#, о способах прокачать её до неузнаваемости. Задача этой статьи — продемонстрировать такие способы повышения производительности, которые, при необходимости, вы смогли бы использовать самостоятельно. Однако эти методики не являютс...

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

Оповещение в Telegram и Slack в режиме реального времени. Или как сделать Alert в Splunk — Часть 2 Мы продолжаем тему алертинга в Splunk. Ранее мы говорили о том, как настроить отправку оповещений на электронную почту, а сегодня покажем Вам, как отправлять уведомления в мессенджеры, такие как Telegram и Slack. В статье вы найдете пошаговую инструкцию по настройке. Читат...

Property Injection своими руками (Xamarin/.Net) В данной статье мы рассмотрим, чем отличается Property Injection от Constructor Injection и реализуем первое в дополнение к последнему на базе небольшого DI-контейнера в исходниках. Это обучающий материал начального уровня. Будет полезен тем, кто ещё не знаком с DI-контейне...

Почему вам, скорее всего, не нужен фитнес-трекер, но вы всё равно его купите. На примере Fitbit Blaze Данная статья получилась большой. По сути, она состоит из двух отдельных материалов, связанных между собой […]

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

[Перевод] Изучаем KTX для Android Привет, «Хабр»! Прошло почти 9 месяцев с тех пор, как на Google I/O 2017 компания Google анонсировала Kotlin в качестве официального языка разработки под Android. Кто-то использует его как основной инструмент намного дольше, учитывая, что на нём можно было писать уже с серед...

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