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

Смотри меня полностью: выжимаем максимум из live video на мобильных платформах Самый простой способ воспроизвести видео на мобильном устройстве — это открыть ссылку имеющимся в системе плеером, но это не всегда эффективно. Можно взять ExoPlayer и оптимизировать его, а можно вообще написать свой видеоплеер, используя только кодеки и сокеты. В статье ...

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

[Из песочницы] Применение формальных методов валидации моделей для UI Привет, Хабр! Представляю вашему вниманию перевод статьи «FORMALLY SPECIFYING UIS» автора Hillel Wayne. От автора Относительно недавно я наткнулся на статью про Инженерные методы в разработке ПО, где vasil-sd рассказал про формальную валидацию спецификаций к создаваемым пр...

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

Паттерны и антипаттерны обоснования задач Содержание 1. Антипаттерны: плохое обоснование 1.1. Очевидно же 1.2. Мамой клянусь! 1.3. Зайчики обиделись 2. Хорошие паттерны обоснования 2.1. Пруфлинк Ссылка на требования Сами требования Ссылка в интернет Письмо заказчика ROI Статистика 2.2. Единообразие 2.3. Про...

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

[Из песочницы] Что нужно для разработки игр и кем реально является разработчик игр Большинство людей (нормальных), которые планируют заниматься программированием (как хобби или основной профессией) обычно задаются вопросами: «Что такое программирование?», «Зачем мне нужно программирование?», «Какой язык я буду учить?», «Что я получу в итоге?». Таким был и...

[Из песочницы] SpecFlowMaster: как улучшить качество тестов Делаем правильные вещи Современная разработка не может существовать без автоматизированных тестов. Тесты могут быть написаны очень быстро даже непрофессионалами. Таким образом, у нас есть тесты, все как бы хорошо. Можем ли мы довериться таким тестам? Каково качество наших ин...

Знакомимся с языком Swift на примере игры Snake Всем привет! В преддверии запуска курса «iOS-разработчик. Базовый курс» мы организовали очередной открытый урок. Этот вебинар рассчитан на людей, которые имеют опыт разработки на любых языках и платформах, однако желают ещё изучить язык Swift и освоить разработку под iOS. ...

[Перевод] Swift: ARC и управление памятью Будучи современным языком высокого уровня, Swift в основном берёт на себя управление памятью в ваших приложениях, занимаясь выделением и освобождением памяти. Это происходит благодаря механизму, который называется Automatic Reference Counting, или сокращенно ARC. В этом руко...

Текстурирование, или что нужно знать, чтобы стать Художником по поверхностям. Часть 3. PBR и материалы В прошлой части тутора мы разобрали принцип работы масок, что такое «текстура», и что абсолютно для всего используются каналы — параметры пикселя. Теперь рассмотрим всеми любимый PBR И соберем текстуры для создания мокрого грязного асфальта. В этом уроке я буду очень много...

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

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

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

[Из песочницы] За что я ненавижу Eloquent ORM Всем привет. Хочу перед вами исповедаться и рассказать немного о том, что я чувствую, когда разрабатываю на Laravel. Нет, не подумайте, я обожаю этот фреймворк и безумно благодарен команде, которая его создала и поддерживает, они делают крайне крутое дело и, на мой взгляд, ...

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

ARM Assembler Editor: Если гора не идет к Магомеду, Магомед идет к горе… Если кто не знает мне интересно программирование на ассемблере для микроконтроллеров STM32… И все бы хорошо, да только программировать особо негде… Те среды которые есть в настоящий момент заточены больше для языка Си и программирование в них на ассемблере не сильно отличае...

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

Как ускорить работу с API на языке R с помощью параллельных вычислений, на примере API Яндекс.Директ (Часть 2) В прошлой статье я рассказал о том, что такое многопоточность, и привёл примеры её реализации на языке R при работе с API Яндекс.Директ с помощью пакетов doSNOW, doParallel и конструкции foreach. Данная статья является продолжением, но может быть рассмотрена как автономное р...

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

Управление семисегментным дисплеем с помощью ПЛИС Привет, Хабр! Хочу внести свою посильную лепту в продвижение ПЛИС. В этой статье я постараюсь объяснить, как на языке VHDL описать устройство, управляющее семисегментным дисплеем. Но перед тем как начать, хочу кратко рассказать о том как я пришел к ПЛИС и почему я выбрал язы...

Список полезных книг по анализу данных, математике, data science и machine learning Хабр, привет! Написал пост, который идет строго в закладки, он со списком полезнейших книг по анализу данных, математике, data science и machine learning. Они будут полезны как новичкам, так и профессионалам. Для удобства можете читать здесь или использовать удобный google ...

6 нежданчиков от Джулии Наконец-таки появилось русскоязычное руководство по языку Julia. Там реализовано полноценное введение в язык для тех, у кого мало опыта в программировании (остальным будет полезно для общего развития), так же имеется введение в машинное обучение и куча заданий для закреплен...

Суровая сибирская JVM: большое интервью об Excelsior JET Недавно мы писали о том, на какие ухищрения пошла Alibaba, чтобы сделать себе жизнь с OpenJDK более приемлемой. Там были комментарии вроде «оказывается, пока мы тут страдаем с обычной джавой, китайцы уже сделали себе свою особенную». Alibaba, конечно, впечатляет — но и в Рос...

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

[Перевод] Как я создал фильтр, не портящий изображение даже после миллиона прогонов Завершив создание веб-архитектуры для нашего нового веб-комикса Meow the Infinite, я решил, что самое время написать несколько давно назревших технических статей. Данная статья будет посвящена фильтру, разработанному мной несколько лет назад. Он никогда не обсуждался в облас...

[Из песочницы] Очереди — что это, зачем и как использовать? Посмотрим на возможности AWS SQS Сначала давайте дадим определение понятию «очередь — queue». Возьмем для рассмотрения тип очереди «FIFO»(first in, first out). Если взять значение из википедии — «это абстрактный тип данных с дисциплиной доступа к элементам». Если вкратце, это означает что мы не можем из н...

Большое интервью с Клиффом Кликом — отцом JIT-компиляции в Java Клифф Клик — CTO компании Cratus (IoT сенсоры для улучшения процессов), основатель и сооснователь нескольких стартапов (включая Rocket Realtime School, Neurensic и H2O.ai) с несколькими успешными экзитами. Клифф написал свой первый компилятор в 15 лет (Pascal для TRS Z-80)! ...

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

Оптимизация программ под Garbage Collector Не так давно на Хабре появилась прекрасная статья Оптимизация сборки мусора в высоконагруженном .NET сервисе. Эта статья очень интересна тем, что авторы, вооружившись теорией сделали ранее невозможное: оптимизировали свое приложение, используя знания о работе GC. И если ране...

VBA и Python для автоматизации Excel и MS Office Поводом для заметки послужила статья на Хабре, в которой автор описывал, как он решал на Python задачу сбора и анализа метаданных из файлов Excel. Эта заметка более подробно раскрывает всем известный тезис: Под конкретную задачу надо выбирать наиболее подходящий инструмент п...

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

Как я отлавливал стили :before для фокус-элемента Сегодня столкнулся с интересной задачкой, которая заставила меня узнать больше об отладке в хроме. Хочу поделиться с вами (вдруг кто не знал). Возникшая проблемка не сложная, но оказалась не особо тривиальная. В общем, сижу натягиваю стороннюю верстку готовую на сайт (этот...

[Из песочницы] Оптимизация производительности apache2 Многие используют apache2 в качестве веб-сервера. Однако мало кто задумывается об оптимизации его производительности, что прямо пропорционально сказывается на скорости загрузки страниц сайта, скорости обработки скриптов (в частности php), а также на росте нагрузки на ЦП и ув...

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

[Из песочницы] Объектно-ориентированное программирование в Java и Python: сходства и отличия Привет, Хабр! Представляю вашему вниманию перевод статьи “Object-Oriented Programming in Python vs Java” автора Джона Финчера. Реализация объектно-ориентированного программирования (ООП) в языках Java и Python отличается. Принцип работы с объектами, типами переменных и прочи...

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

Мысленный эксперимент: Flutter на Go Совсем недавно я открыл для себя Flutter – новый фреймворк от Google для разработки кроссплатформенных мобильных приложений – и даже имел возможность показать основы Flutter человеку, который никогда не программировал до этого. Сам Flutter написан на Dart – языке, родившимся...

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

[Перевод] Как работает Zig? От переводчика: этот пост был опубликован в блоге автора 15 марта 2018 года. Так как язык развивается, в настоящее время его синтаксис может отличаться. Всё описанное относится к Zig 0.2.0, текущая версия языка — Zig 0.3.0. Я связался с автором поста, и он любезно предостави...

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

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

Размышления про идеальный корпус Здравствуйте. На написание этой статьи меня побудил наметившийся апгрейд домашней системы и недавняя статья Настольный. Металлический. Бесшумный. Твой?. Что-бы найти приемлемый вариант мне пришлось перелопатить кучу моделей корпусов и сейчас я хочу поделиться своей болью с в...

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

Введение в Си. Послание из прошлого столетия ПРЕДИСЛОВИЕ Я несколько раз в своих комментариях ссылался ссылался на книгу Эндрю Таненбаума «Operating Systems Design and Implementation» на ее первое издание и на то, как в ней представлен язык Си. И эти комментарии всегда вызывали интерес. Я решил, что пришло время опубли...

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

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

Ретро игровая приставка своими руками Этот пост является введением в мой проект "самодельной" консольной видеоприставки сделаной с нуля. Я вдохновлялся как ретро консолями так и современными образцами, но у меня получилась своя собственная архитектура. Мои друзья постоянно мне говорили, что я должен рассказать ...

Что такое логическое программирование и зачем оно нам нужно У того, кто в детстве не писал на Прологе — нет сердца, а у того, кто пишет на нём сегодня — нет мозгов. (оригинал) Если вас всегда терзали мучительные сомнения — что за фигня это Логическое Программирование (ЛП) и вообще зачем оно нужно? То это статья для вас. Можно по-раз...

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

JVM TI: как сделать плагин для виртуальной машины Хотели бы вы добавить в JVM какую-нибудь полезную фичу? Теоретически каждый разработчик может внести свой вклад в OpenJDK, однако на практике любые нетривиальные изменения в HotSpot принимают со стороны не очень-то охотно, и даже с текущим укороченным релизным циклом могут...

uWSGI в помощь метрикам. Доклад Яндекса На днях состоялся Moscow Python Meetup #66 — сообщество продолжает обсуждать актуальные инструменты, которые усиливают язык и адаптируют его к разным окружениям. В том числе на митапе прозвучал и мой доклад. Меня зовут Наиль, я делаю Яндекс.Коннект. Рассказ, который я по...

Опровергаем четыре стереотипа о языке программирования Rust Язык программирования Rust, созданный и поддерживаемый корпорацией Mozilla, позволяет обычным программистам писать одновременно и безопасные и быстрые системы: от калькуляторов до высоконагруженных серверов. За своё относительно короткое время существования данный язык уже ...

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

[Из песочницы] Советы начинающим разработчикам Я работаю iOS разработчиком более шести лет. Мне довелось работать в нескольких различных компаниях и командах. Я работал как в outsource так и в outstaff, довелось даже поучаствовать в startup. И вот спустя несколько лет коммерческой разработки, а также пару-тройку лет прог...

[recovery mode] Внутренние и вложенные классы java. Часть 1 Внутренние и вложенные классы java 02.03.2017 — 2019 год Часть 1. Начало Цель статьи: Рассказать о внутренних, вложенных, локальных, анонимных классах. Показать примеры их использования. Написать и протестировать классы в коде на java. Рассказать о свойствах этих клас...

Еще немного о печати шириной меньше диаметра сопла Некоторое время назад здесь:Была дискуссия с элементами срача по этому поводу.http://3dtoday.ru/blogs/artemkuchin/test-resolution/И далее здесь:http://3dtoday.ru/questions/a-zachem-sopla-raznykh-diametrov/Был срач с элементами дискуссии.Еще был задан вопрос здесь:https://rep...

[Перевод] Профилирование Unity UI: кто портит мой батчинг? Вы потратили бесконечное количество времени на оптимизацию Unity UI. Но для того, чтобы вызвать торможения, достаточно небольшой модификации крошечного атрибута почти невидимого элемента UI Canvas. И когда такое случается, даже профилирование Unity UI не спасёт вас от сниже...

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

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

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

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

Зачем ходить на собеседования Недавно общался со своим знакомым. Парнишка учится Android разработке и обладает довольно крепким багажом знаний. Я ему задал вопрос: «Почему ты до сих пор не ходишь на собеседования? Ты бы уже давно нашел работу.» И получил ответ что-то типа собеседования это стресс, что ...

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

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

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

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

[Перевод] Пол Грэм: Чему я научился у Hacker News Февраль 2009 Hacker News исполнилось два года на прошлой неделе. Изначально предполагалось, что это будет параллельный проект — приложение для оттачивания Arc и место обмена новостями между нынешними и будущими основателями Y Combinator. Он становился больше и требовал боль...

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

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

Трассировка лучей в мобильных играх на примере Love is Justice Трассировка лучей (ray tracing) — это перспективная технология, которая позволяет создавать графику, построенную на аналогиях реальных физических процессов. Вместо того чтобы рисовать свет, тени и отражения, разработчики, грубо говоря, создают условия, в которых все обрабаты...

[Из песочницы] Как не надо писать шаблоны для bootstrap Мало кто сейчас пишет дизайн сайта с нуля — зачем, если есть куча замечательных CSS фреймворков? Наиболее популярен среди них bootstrap. Тем не менее, всем хочется, чтобы сайт выглядел уникально, не так как у других — поэтому поверх часто втыкают(в меру возможностей) бесплат...

Как ухаживать за электровелосипедом Я люблю свою лошадку, причешу ей шёрстку гладко… А вы замечали, что грязная машина хуже едет, а компьютер хуже работает? Если вы думаете, что вам кажется и это просто ваше эмоциональное восприятие, то вы ошибаетесь. Мельчайшая грязь или пыль могут стать роковыми для электрон...

[Перевод] Не в момент выполнения, а в момент проектирования Давным-давно мудрый старый разработчик дал мне совет, который до недавнего времени я не очень ценил. Во время код ревью мы рассматривали некоторую функцию, которая требовала, чтобы программа выводила список букв A-Z (например, список контактов с набором кнопок, которые по...

[Из песочницы] 10 понятий для дизайнера в 2019-м Среда работы UI/UX дизайнеров стремительно расширяется и растет: появляется уйма новых продуктов и инструментов для разработки интерфейсов, крутых возможностей благодаря развитию гибких языков программирования и, конечно же, в дизайнерскую экосферу внедряется множество новых...

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

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

Текстурирование, или что нужно знать, чтобы стать Художником по поверхностям. Часть 5. Система материалов В предыдущих частях туторов мы рассматривали то, как создаются текстуры. Точнее, то, как всё выглядит под капотом (как выразился Yoooriii в комментариях к 4-ой части). Расставили на свои места термины — пиксели и тексели. Разобрали немного развертку и сетку моделей, PBR и ма...

[Из песочницы] Автоматический вход в Lync конференции в Linux Привет, Хабр! Для меня эта фраза сродни hello world, так как я добрался наконец до своей первой публикации. Долго откладывал этот замечательный момент, так как и писать было не о чем, а обсасывать то, что уже по куче раз обсосано, тоже не хотелось. Вообще для своей первой п...

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

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

[Перевод] RxDart: магические трансформации потоков Добро пожаловать — это третья часть моей серии статей об архитектуре Flutter. Введение Основы Dart Streams RxDart: магические трансформации потоков (этот пост) Основы RxVMS: RxCommand и GetIt RxVMS: Службы и Менеджеры RxVMS: самодостаточные виджеты Аутентификация пользова...

Запускаем php скриптики через php-fpm без web сервера. Или свой FastCgi клиент (под капотом) Приветствую всех читателей "Хабра". Дисклеймер Статья получилась довольно длинная и тем кто не хочет читать предысторию, а хочет перейти сразу к сути прошу прямиком к главе "Решение" Вступление В данной статье хотелось бы рассказать о решении довольно нестандартной задачи, с...

R2DBC Arabba-RELEASE — новый взгляд на реактивное программирование для SQL Поздравляем Хабр с выходом R2DBC версии Arabba-RELEASE! Это самый первый стабильный релиз проекта. R2DBC (Reactive Relational Database Connectivity) — открытый проект, посвященный реактивному программированию для SQL. Разработчики R2DBC готовили первую версию спецификации ц...

Что такое DevOps Определение DevOps очень сложное, поэтому приходится каждый раз запускать дискуссию об этом заново. Только на Хабре тысяча публикаций на эту тему. Но если вы это читаете, то наверняка знаете, что такое DevOps. Потому что я — нет. Привет, меня зовут Александр Титов (@osminog)...

Обеспечение безопасности в беспроводных протоколах на примере LoRaWAN Привет, Хабр. Мне хотелось бы в очередной раз поговорить о том, как обеспечивается базовый (читай: минимально необходимый) уровень безопасности данных в беспроводных сетях, используемых в IoT-устройствах, на примере LoRaWAN. Почему именно LoRaWAN? Во-первых, потому, что эт...

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

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

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

Используем старые HDD с бэдами Ещё со студенческих времен у меня стояла куча жестких дисков. Время от времени я их апгрейдил — старые продавал, а вместо них ставил более емкие. Тогда спрос на объем был довольно большой, все приходилось хранить у себя на винтах. Но пришло время интернета, и локалки отпали ...

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

[Из песочницы] Почему вы должны думать о функциональном программировании Привет, Хабр! Представляю вашему вниманию перевод своей статьи «Why you should think about functional programming», посвященной функциональному программированию. Почему вы должны думать о функциональном программировании? Давайте ответим на следующие вопросы: всегда ли в...

Курс «Основы эффективной работы с технологиями Wolfram»: более 13 часов видеолекций, теория и задачи Все документы курса можно скачать здесь. Этот курс я прочел пару лет назад для довольно обширной аудитории. Он содержит очень много информации о том, как устроена система Mathematica, Wolfram Cloud и язык Wolfram Language. Однако, конечно, время не стоит на месте и за по...

Книга «GraphQL: язык запросов для современных веб-приложений» Привет, Хаброжители! У нас вышла книга по языку запросов GraphQL. Мы решили поделиться переводом главы «Анатомия запросов GraphQL» «Снежный клык» (Snowtooth) — выдуманный горнолыжный курорт. Ради примеров в данной главе мы сделаем вид, что это настоящая гора и мы там работ...

[Перевод] «Алгебраические эффекты» человеческим языком Комментарий от переводчика: Это перевод замечательной статьи Дэна Абрамова (Dan Abramov), являющегося контрибутором React. Его примеры написаны для JS, но будут одинаково понятны разработчикам на любом языке. Идея общая для всех. Вы слышали об алгебраических эффектах? Мои п...

Введение в программирование: простой 3Д шутер с нуля за выходные, часть 2 Продолжаем разговор про 3Д шутер за выходные. Если что, то напоминаю, что это вторая половина: Часть первая: отрисовка стен Часть вторая: населяем наш мир + оконный интерфейс Как я и говорил, я всеми силами поддерживаю желание в студентах делать что-то своими руками. В ча...

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

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

[Перевод] PHP GR8: повысит ли JIT производительность PHP 8 PHP — один из основных языков разработки в Badoo. В наших дата-центрах тысячи процессорных ядер заняты выполнением миллионов строк кода на PHP. Мы внимательно следим за новинками и активно ищем пути улучшения производительности, так как на наших объёмах даже небольшая опти...

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

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

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

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

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

Теперь уведомления с вашего Android-смартфона приходят и на ПК Microsoft выполнила одно из самых больших своих обещаний, связанных с программным обеспечением проекта Your Phone. Компания выпустила сборку Windows Insider Preview, в которой заработала новая функция – отображение уведомлений Android на вашем ПК. Если дадите приложениям ра...

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

[Перевод] 10 самых влиятельных языков программирования последних 50 лет и их создатели В IT-вселенной существует множество языков программирования. С каждым годом их становится всё больше и больше. Например, сравнительно недавно появились языки Scala, Kotlin, Go и Closure. Но история говорит нам о том, что выживут лишь немногие из них. Языки, о которых пойдёт...

Эксперимент — от парного программирования к программированию всей командой Очень хочу поделиться с вами переводом статьи про эксперимент с моб-программированием от одного из его создателей, Вуди Зила. Это когда вся команда сразу работает за одним компьютером. Как парное программирование, только групповое. Я бывший Java-разработчик и тимлид с 11-лет...

Умный сервис кэша на базе ZeroMQ и Tarantool Руслан Ароматов, главный разработчик, МКБ Привет, Хабр! Я работаю бэкенд-разработчиком в Московском кредитном банке, и за время работы у меня накопился некоторый опыт, которым я хотел бы поделиться с сообществом. Сегодня я расскажу, как мы писали свой собственный сервис к...

Дополненная реальность никому не нужна Есть такая штука необычная под названием “Дополненная реальность” и ее изо всех сил форсит компания Apple. Ставит на эту технологию фруктовая корпорация, определенно, очень много и уже с которым поколением своих мощнейших мобильных устройств пытается двинуть AR в массы. App...

[Из песочницы] Как в Microsoft SQL Server получать данные из Google Analytics при помощи R В этом материале я хочу подробно показать, как можно при помощи R в Microsoft SQL Server реализовать получение данных из Google Analytics (и вообще из любого API). Благодарности: Поскольку я ни разу не маркетолог мне требовалась помощь специалиста. Тестовый кабинет и доступ ...

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

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

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

Can I haz? Ударим программированием на типах по дженерикам Привет, Хабр. В прошлый раз мы описали Has-паттерн, обрисовали проблемы, которые он решает, и написали несколько конкретных инстансов: instance HasDbConfig AppConfig where getDbConfig = dbConfig instance HasWebServerConfig AppConfig where getWebServerConfig = webServerCo...

[Перевод] Цепи Маркова для процедурной генерации зданий Примечание: полный исходный код этого проекта можно найти [здесь]. Так как он является частью более масштабного проекта, я рекомендую смотреть коммит на момент выпуска этой статьи, или файл /source/helpers/arraymath.h, а также /source/world/blueprint.cpp. В этой статье я х...

[Перевод] Пространство генерации и пространство возможностей В этом туториале я расскажу о двух терминах, которые используются мной для описания процедурных генераторов: пространство генерации (generative space) и пространство возможностей (possibility space). Мы дадим определения этим двум терминам, а затем рассмотрим интерактивные п...

ONYX BOOX Faust — кто ищет, не вынужден блуждать Привет! В комментариях к обзору ONYX BOOX James Cook 2, который недавно гостил в нашем блоге, некоторые удивились, что устройство в 2019 году поставляется без сенсорного экрана (Карл!). Но для кого-то это странно, а другие специально ищут ридер только с физическими кнопкам...

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

Swift.assert — жизнь после релиза Как часто вы используете Swift.assert() в вашем коде? Я, честно, использую довольно часто (Если это плохая практика, то, пожалуйста, напишите в комментариях — почему это плохо?). В моем коде часто можно встретить, например, такой вызов: Swift.assert(Thread.isMainThread) Не ...

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

Язык программирования Ü. Введение, мотивация к созданию, цели Введение С 2016-го года (с перерывами) я разрабатываю собственный язык программирования. Название данного языка — «Ü». Почему Ü? Потому, что хотелось однобуквенного названия, а все буквы из набора A-Z уже заняты. Данная статья имеет задачу ознакомить публику с данным языко...

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

[Перевод] Зачем ЯОП? Зачем Racket? Это продолжение статьи «Зачем Racket? Зачем Lisp?», которую я написал примерно через год после того, как открыл для себя Racket. Будучи новичком, я не мог понять дифирамбов, которые со всех сторон сыпались в адрес Lisp. Я не знал, что и думать. Как понимать, что Lisp в конце...

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

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

Интеграция с SAP ERP. Реализация мобильного прайс-чекера в магазине В рассматриваемом нами примере интеграции SAP ERP со сторонним ПО, мы будем использовать SAP Connector for Microsoft .NET для получения данных из SAP. Программное обеспечение для терминала сбора данных (ТСД) будет взаимодействовать с Microsoft Internet Information Server (II...

Библиотека генератора ассемблерного кода для микроконтроллеров AVR. Часть 2 Библиотека генератора ассемблерного кода для микроконтроллеров AVR Часть 2. Начало работы Как и планировалось, в этой части рассмотрим более подробно особенности программирования с использованием библиотеки NanoRTOS. Те, кто начал чтение с этого поста, могут ознакомиться с о...

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

Windows 10 (версия 1909) доступен по подписке Visual Studio Microsoft опубликовала в своём блоге пост, в котором рассказала, что значит выпуск Windows 10 (версия 1909) для разработчиков программного обеспечения. Прежде всего, компания вновь напомнила, что это обновление представляет собой набор улучшений производительности и качеств...

«3 Минуты Ярости»: Иностранцы оценили видеоролик про армию России Новый ролик про армию РФ, опубликованный российским каналом Military Forces XXI Century, специализирующемся на работе с иностранной аудиторией, вызвал немалый ажиотаж на многих языках мира. Видео демонстрирует множество современных родов войск, техники и технологий – от мор...

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

Оптимизация node.js приложения Дано: старое http node.js приложение и возросшая нагрузка на него. Стандартные решения проблемы: докинуть серверов, все переписать с 0, оптимизировать уже написанное. Давайте попробуем пойти путем оптимизации и разобраться, как можно найти и улучшить слабые места приложения....

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

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

Пример разбора C++ кода с помощью libclang на Python На одном личном проекте на C++ мне потребовалось получать информацию о типах объектов во время выполнения приложения. В C++ есть встроенный механизм Run-Time Type Information (RTTI), и конечно же первая мысль была использовать именно его, но я решил написать свою реализацию,...

Apple может вернуться к использованию легендарного радужного логотипа Логотип Apple сейчас известен чуть ли не каждому человеку на планете. Он не особо менялся почти 20 лет, но многие современные пользователи Apple могут и не знать, что в своё время купертинский гигант ассоциировался не просто с надкушенным яблоком, а с радужным яблоком, ...

Самый мягкий и пушистый путь в Machine Learning и Deep Neural Networks Современное машинное обучение позволяет делать невероятные вещи. Нейросети работают на пользу общества: находят преступников, распознают угрозы, помогают диагностировать болезни и принимать сложные решения. Алгоритмы могут переплюнуть человека и в творчестве: они рисуют карт...

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

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

Microsoft сделала ряд связанных с Azure анонсов перед конференцией Build 2019 Конференция разработчиков Microsoft Build 2019 уже закончена. Перед её началом компания представила информацию относительно того, как будет развиваться сервис Azure. Разработчики получают новые когнитивные сервисы, улучшения в искусственном интеллекте и машинном обучении.В к...

[Из песочницы] Преодоление порога 32 КБ для данных в ПЗУ микроконтроллеров AVR Что может быть хуже костылей? Только неполно документированные костыли. Перед вами скриншот из последней официальной интегрированной среды разработки для 8-битных микроконтроллеров AVR, Atmel Studio 7, язык программирования Си. Как видно из столбца Value, переменная my_arra...

[recovery mode] «Быть Insight-Driven»: продвинутая аналитика и управление жизненным циклом моделей машинного обучения Сегодня мы хотим поговорить о концепции Insight-Driven и о том, как ее реализовать на практике c помощью DataOps и ModelOps. Insight-Driven подход — это комплексная тема, про которую мы подробно рассказываем в нашей недавно созданной библиотеке полезных материалов про управл...

Ускорение файлового ввода-вывода C/C++, не особо напрягаясь Предисловие Есть на свете такая простая и очень полезная утилита — BDelta, и так вышло, что она очень давно укоренилась в нашем производственном процессе (правда её версию установить не удалось, но она точно была не последней доступной). Используем её по прямому назначению...

Введение в программирование: простой 3Д шутер с нуля за выходные, часть 1 Этот текст предназначен для тех, кто только осваивает программирование. Основная идея в том, чтобы показать этап за этапом, как можно самостоятельно сделать игру à la Wolfenstein 3D. Внимание, я совершенно не собираюсь соревноваться с Кармаком, он гений и его код прекрасен. ...

Конференция C++ Russia 2019 Всем привет! Представьте, что C++ Russia больше нет. Куда вы пойдёте вместо этого? Есть множество конференций, посвящённых более широким темам, но наша — одна из немногих, целиком и полностью сфокусированная на C++ и открыто заявляющая, что это будет реальный хардкор. Выбор...

[Из песочницы] Учим компьютер различать звуки: знакомство с конкурсом DCASE и сборка своего аудио классификатора за 30 минут Введение Доброго времени суток, хабр! Накопив немного опыта в решении задач классификации и детектирования акустических событий, мы с ananaskelly решили, что готовы им с вами поделиться. Цель этой статьи — познакомить вас с некоторыми задачами и рассказать о соревновании по ...

Почему не стоит покупать Samsung Galaxy Fold. И дело не только в экране Samsung Galaxy Fold – действительно уникальное устройство. Футуристический смартфон, который воплощает мечты технаря в реальность, и которым Samsung дразнила нас годами. Складной дисплей теперь, наконец, появился в серийном, пускай и очень дорогом, смартфоне, а потому может...

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

Vivo V15Pro и его цена для России В последнее время компания Vivo постоянно радует нас интересными релизами. К примеру, недавно показали новый смартфон Vivo V15Pro, обзор на который вы можете почитать у нас на сайте. Устройство очень стильное, привлекательное и мощное, что тоже довольно важно на текущий моме...

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

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

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

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

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

Знакомство с Python для камрадов переросших «язык A vs. язык B» и другие предрассудки Для всех хабравчан, у которых возникло ощущение дежа-вю: Написать этот пост меня побудили статья "Введение в Python" и комментарии к ней. К сожалению, качество этого "введения" кхм… не будем о грустном. Но ещё грустнее было наблюдать склоки в комментариях, из разряда "C++ бы...

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

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

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

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

[Из песочницы] Использование случайного оракула на примере лотереи Как-то утром на глаза попалась статья о проверяемом генераторе случайных чисел на блокчейне Waves platform. Общая картина была понятна, а вот способ конкретной реализации — нет. Какие-то коды, подписи, что, куда, зачем? Несколько консультаций у автора оракула, в результат...

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

Книга «Kotlin. Программирование для профессионалов» Привет, Хаброжители! Книга Джоша Скина и Дэвида Гринхола основана на популярном курсе Kotlin Essentials от Big Nerd Ranch. Яркие и полезные примеры, четкие объяснения ключевых концепций и основополагающих API не только знакомят с языком Kotlin, но и учат эффективно использо...

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

Я провел два месяца с iPhone XR и готов ответить, чем он лучше iPhone X Не обману, если скажу, что один из самых популярных вопросов, которые поступают в редакцию, связан с выбором между iPhone X и iPhone XR. Старшие модели — iPhone XS и iPhone XS Max, проходят мимо, поскольку это смартфоны уже другого ценового сегмента, а вот «десятка», ...

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

Реализация Kotlin Flow на C# Всем привет! Последние годы я занимаюсь разработкой под Андроид на Котлине. Не так давно, за неимением RxJava на Kotlin multiplatform, мы начали использовать корутины и flow – холодные стримы для Котлина из коробки. До Андроида я много лет провёл с C#, и там свои корутины е...

Всё, кроме Kotlin: Андрей Бреслав о гендерном балансе в IT, эмоциях и не только Андрей Бреслав (abreslav) известен прежде всего как человек, возглавляющий работу над языком Kotlin. Но в последнее время он стал выступать с докладами совсем о другом: весной говорил о важности эмоций при работе в IT, а в августе на TechTrain представит доклад «Это выгодн...

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

[Перевод] Я был в семи словах от того, чтобы стать жертвой таргетированного фишинга Три недели назад я получил очень лестное письмо из Кембриджского университета с предложением выступить судьёй на премии Адама Смита по экономике: Дорогой Роберт, Меня зовут Грегори Харрис. Я один из Организаторов премии Адама Смита. Каждый год мы обновляем команду независ...

[Из песочницы] Extension в Dart (Flutter) В недавном релизе языка Dart 2.6 в языке появилась новая функция, static extension или статические методы расширения, который позволяет вам добавить новые методы к существующим типам. Зачем вообще нужны extension? Как их использовать и на что они годятся? Введение Начнём ...

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

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

Почему тратить на смартфон больше 1000 долларов — это безумие Стоит ли платить за смартфон более 1000 долларов? Помните то славное время, когда вы могли заплатить менее 600 долларов за новенький iPhone или флагман от Samsung? Или купить последнюю версию OnePlus за менее, чем 400 баксов? Однако теперь почти невозможно найти актуальное у...

E-Dobavki — веб-сервис поиска пищевых добавок на Java и Spring Boot, написанный моими студентами Введение Так получилось, что последние почти два года я преподаю программирование в одной из IT школ Киева. Занялся я этим Just For Fun. Когда-то я вел блог по программированию, потом забросил. Но желание рассказывать полезные вещи заинтересованным людям никуда не делось. Мо...

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

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

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

Blameless environment: никто не должен писать качественный код На РИТ++ Никита Соболев (sobolevn) выступил, как он сам назвал это, с проповедью на тему качества кода и процессов в компании. Особо впечатлительных просим налить себе ромашкового чаю, но отойти от экранов не предлагаем. Вы можете не соглашаться ни с одним из тезисов, настаи...

[Из песочницы] Реализация горячей перезагрузки С++ кода в Linux * Ссылка на библиотеку в конце статьи. В самой статье изложены механизмы, реализованные в библиотеке, со средней детализацией. Реализация для macOS еще не закончена, но она мало чем отличается от реализации для Linux. Здесь в основном рассматривается реализация для Linux. Г...

Функциональное программирование с точки зрения EcmaScript. Чистые функции, лямбды, имутабельность Привет, Хабр! Сегодня мы начнём говорить на очень важную тему — функциональное программирование. Значение ФП в современной веб-разработке трудно переоценить. Архитектура любого крупного современного проекта включает в себя пользовательские библиотеки функций и на собеседов...

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

Variational Inference — что это такое и с чем это едят? Привет, Хабр! Недавно пообщался с коллегами о вариационном автоэнкодере и выяснилось что многие даже работающие в Deep Learning знают о вариационном выводе (Variational Inference) и в частности Нижней вариационной границе только по наслышке и не до конца понимают что это та...

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

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

[Из песочницы] Получаем данные enum в проекции Automapper Немного ликбеза Я очень люблю Automapper, особенно его QueryableExtensions и метод ProjectTo<>. Если вкратце, то данный метод позволяет делать проекцию типов прямо в SQL-запросе. Это позволяло получать dto фактически из базы данных. Т.е. не нужно получать две entity из...

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

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

Не очередной язык программирования. Часть 3: Физика Третья и заключительная часть серии статей о языке lsFusion (ссылки на первую и вторую части) В ней речь пойдет о физической модели: всем том, что не связано с функционалом системы, а связано с ее разработкой и оптимизацией производительности, когда данных становится слиш...

[Из песочницы] Отзыв о книге: «Жизнь 3.0. Быть человеком в эпоху искусственного интеллекта» Многие, кто меня знают, могут подтвердить, что я довольно критический отношусь к массе вопросов, и в чем-то даже проявляю изрядную долю максимализма. Мне трудно угодить. Особенно если дело касается книг. Часто критикую любителей фантастики, религии, детективов и многого друг...

Intel oneAPI — один за всех Итак, случилось то, о чем еще с июля месяца говорила компания Intel — вышла бета-версия Intel oneAPI Toolkits, набора инструментов для разработки, с которыми жизнь больше не будет прежней. В состав набора, как и обещалось, вошел компилятор нового языка Data Parallel C++, наб...

Находка для дизайнеров - ультракороткофокусные объективы Epson позволяют создать 360° проекцию в комнате и полностью спрятать проекторы Редкий случай, когда есть фотографии оснащения комнаты переговоров проекторами с обычной оптикой и последующего ее переоборудования проекторами Epson с действительно уникальными объективами Вряд ли стоит говорить, что сегодня мало просто иметь один экран в переговорной и ...

Брат Пабло Эскобара тоже выпустил гибкий смартфон Это просто театр. Брат самого богатого наркобарона, крысы в стенах которого съедали по $2,1 млрд в год, теперь будет продавать смартфоны, конкурируя с Samsung и Apple. Причём его первый девайс, Escobar Fold 1, выпущенный день назад, стоит $350 и в чём-то выглядит даже лучш...

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

Redux. Простой как грабли Мне уже доводилось заглядывать в репозиторий библиотеки redux, но откуда-то появилась мысль углубиться в его реализацию. Своим в некотором роде шокирующим или даже разочаровывающим открытием я хотел бы поделиться с сообществом. TL;DR: базовая логика redux помещается в 7 ст...

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

[Из песочницы] Invidious — альтернативный YouTube-фронтенд «Invidious» — это веб-фронтенд (грубо говоря, веб-клиент) для сайта YouTube. Код проекта написан на языке программирования Crystal, использует СУБД PostgreSQL и распространяется под свободной лицензией AGPLv3+. Читать дальше →

[Перевод] Достаём мастер-пароль из заблокированного менеджера паролей 1Password 4 Новые инструменты, старые методы. Проводим обратную разработку и находим фатальный недостаток 1Password. Все любят менеджеры паролей. Они великолепны по многим причинам. Лично у меня в менеджере более 200 записей. С таким большим количеством конфиденциальных данных в одном...

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

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

FAQ по перехвату сотовой связи: что такое IMSI-перехватчики / СКАТы, и можно ли от них защититься Наверное, даже домохозяйки знают, что публичные точки Wi-Fi небезопасны. Что не мешает рядовым юзерам вовсю ими пользоваться — ведь если нельзя, но скучно и очень хочется, то можно! И без всякого VPN — хотя функцию VPN теперь внедряют даже в комплексные антивирусные продукты...

Взаимодействие R с базами данных на примере Microsoft SQL Server и других СУБД Поскольку львиная доля бизнес информации храниться в базах данных. На каком бы языке программирования вы не писали, вам придётся производить различные действия с ними. В этой статье я расскажу о двух интерфейса для работы с базами данных в R. Большая часть примеров демонстри...

QEMU.js: теперь по-серьёзному и с WASM Когда-то давно я смеха ради решил доказать обратимость процесса и научиться генерировать JavaScript (а точнее, Asm.js) из машинного кода. Для эксперимента был выбран QEMU, некоторое время спустя была написана статья на Хабр. В комментариях мне посоветовали переделать проект ...

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

Зачем нужна подписка PS Plus для PlayStation 4? Если вы совсем недавно купили консоль PlayStation 4, то, вероятнее всего, после ее запуска столкнулись с таким новым для себя понятием, как платная подписка PlayStation Plus. В этой статье мы пробежимся по всем основным плюсам, и расскажем в каком случае ее стоит покупать. ...

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

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

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

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

[Перевод] Метаморфическое тестирование: почему об этой перспективной методике почти никто не знает Должен признаться: я читаю ACM Magazine. Это делает меня «ботаником» даже по меркам программистов. Среди прочего, я узнал из этого журнала о «метаморфическом тестировании». Раньше я никогда о нём не слышал, как и все люди, которых я спрашивал. Но научная литература по этой ...

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

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

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

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

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

Моменты жизни Стивена Вольфрама — создателя Mathematica, Wolfam|Alpha, A New Kind Of Science и много чего ещё Оригинал поста в моём личном блоге Мне посчастливилось лично познакомиться со Стивеном Вольфрамом на Первой Российской конференции «Wolfram технологии», которая проходила в 2013 г. в СПбГУ. После мы пересекались на телемосте Стивена в Digital October. Записи этих выступлен...

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

Hardcore 2D RPG Gamedev Diaries, vol.0 — INTRO, или «как я сюда попал» Прежде чем перейти к практической части и непосредственно дневнику разработки, давайте вспомним детство. “DENDY” и “SEGA”, робокоп и бэтмен, мортал комбат, Comix Zone, боевые жабы, игры про черепашек ниндзя и крутые мультфильмы 80-х начала 90-х. Именно это время и воспом...

[Перевод] Повышаем производительность разработки на примере Vue — часть 2 Если вы не читали Часть 1, вы можете исправить сиё недоразумение здесь. Переиспользование конфигураций Новая библиотека vue-cli-3 избавила от необходимости поддерживать сложные шаблоны сборки и конфигураций. Вместо этого она позволяет разработчику сосредоточиться на создании...

Полезная help-ссылка для маркетологов Привет, Хабр! Представляю вам таблицу ресурсов для маркетологов. Материал в Google-таблице подойдёт как профессионалам, так и тем, кто делает первые шаги в маркетинге. Пользуйтесь, прокачивайте навыки сами и делитесь с коллегами. На данный момент файл содержит шесть раздело...

MPS 2018.3: планы генерации, улучшения в языке сборки и упаковки и в языке редактора, обновленный интерфейс Привет, Хабр! Недавно мы выпустили [MPS 2018.3](https://www.jetbrains.com/mps/download/). В этой версии много новых функций, с которыми работа над проектами станет еще эффективнее. Мы улучшили планы генерации и язык описания редактора, добавили новые конструкции в язык сборк...

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

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

О чем думать на NALSD собеседовании Я описывал ранее типичное кодинг-интервью. Помимо кодинга почти всегда есть вопрос на проектирование систем. (Large) System Design. В случае собеседований на SRE, это еще более интересный (как по мне) зверь — NALSD. Non-abstract large system design. Главное отличие между SWE...

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

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

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

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

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

Mini cube factory. 3D принтер, сканер, лазер, гравер, фото стол 5 в 1 Приветствую всех на своём канале! Я начинающий видеомейкер и мой канал еще совсем молодой. Я занимаюсь своей мастерской, только для саморазвития! Строительство и улучшение мастерской, печать на 3D принтере, столярка, различные конструкции ЧПУ, музыкальные инструменты ручной ...

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

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

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

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

[Перевод] Как мы оптимизировали свой Theme Hospital под разные платформы Project Hospital — это игра об управлении зданием больницы со всеми стандартными аспектами жанра: динамическими сценами, создаваемыми игроком, множеством активных персонажей и объектов, развёрнутой системой UI. Чтобы заставить игру работать на разном оборудовании, нам пришл...

[Перевод] Как в 1995 году писали игры для Sega Saturn Это документ, написанный мной в 1995 году, когда я работал над первой игрой студии Neversoft: Skeleton Warriors. Это была первая игра, в которой я не использовал язык ассемблера 68K. Фото сделано примерно в то время. Комплект разработчика (dev kit) («Small Box» и ICE) стоит...

[Перевод] Как писать меньше кода и получать больше толку Как справедливо заметил легендарный писатель Жюль Верн: «Хорошо использованный минимум вполне достаточен». В нашу эпоху понятие хорошо использованного минимума применимо и к коду. Печально, но факт: в современном мире кода слишком много. Если быть точнее, то слишком много ...

[Перевод] Не умничайте с формами для входа В последнее время меня начинает сильно раздражать авторизация на сайтах. Поскольку менеджеры паролей становятся более популярными, такие как 1Password (который я использую) и менеджер паролей Chrome (который я тоже использую), веб-сайтам важно учитывать этот факт. Давайте р...

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

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

Э — Эксперимент. Или как наука помогает проектировать интерфейсы Читая различные книги и статьи по психологии, сохранила себе в копилку некоторое количество интересных экспериментов, которые могут натолкнуть на мысли и решения при проектировании интерфейса, дизайна, подаче материала (товара и пр.). Описанные эксперименты не новы, но их...

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

Конкретное и глобальное: программа Mobius 2019 Moscow Что может интересовать мобильного разработчика? Самые разные вопросы: от конкретных технических («как бы ускорить сборку в Xcode») до глобальных карьерных («а не податься ли мне в инди-разработчики с собственным приложением»). А если действительно заняться собственным прило...

[Из песочницы] Случайные перестановки и случайные разбиения Я много лет читаю курсы по комбинаторике и графам для студентов-математиков и computer scientists (как это по-русски, компьютерных научников?), раньше в Академическом университете, а теперь в СПбГУ. Программа у нас построена так, что эти темы проходят как часть «теоретическо...

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

Что будет на TechTrain, и зачем мне туда идти? Бывают мероприятия, с которыми всё просто: по названию сразу понимаешь, что там будет и хочешь ли туда. Видишь слова «концерт Rammstein» — и всё, никаких вопросов. Но бывают и мероприятия, где происходит столько всего, что в названии это не уместить. Приходится разбираться...

N+7 полезных книг Привет! Это очередной традиционый список книг, оказавшихся полезными за год. Сугубо субъективный, конечно. Но я серьёзно рассчитываю, что вы подскажете ещё классных штук почитать. Думай медленно, решай быстро — Даниэль Канеман Это самое волшебное, что случалось за послед...

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

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

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

Anycubic Predator Всех приветствую.Это не полноценный обзор, а больше мои впечатления о принтере. От принтера я в восторге, печатает без проблем из коробки, на сборку уходит минут 30 с перекурами, а так минут 15-20, сборка очень простая. В комплекте идет запасной хотэнд с радиатором и куча вс...

Замеряем производительность Qt Решила продолжить цикл статей об ОС «Аврора» (до недавнего времени называвшейся Sailfish). За время, что я работаю с этой ОС, у меня накопились разные наблюдения, которые касаются производительности приложений на Qt и системы в целом, ибо девайсами она разнообразными обвешан...

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

50 советов по UX в виртуальной реальности Этот список был собран на основе нескольких моих статей и заметок, посвященных созданию пользовательского опыта в VR. Материал создавался как своеобразный набор дополнительных рекомендаций для новых специалистов Modum Lab, которые занимаются созданием систем взаимодействия...

[Перевод] Всё, что нужно знать об автоматических переносах в CSS Недавно меня пригласили выступить с вечерней лекцией в Типографском обществе Австрии. Для меня стало большой честью последовать по стопам таких светил, как Мэтью Картер, Вим Краувел, Маргарет Калверт, Эрик Шпикерман и покойная Фреда Сэк. Я рассказал о некоторых золотых пр...

[Перевод] Новый курс по Python от Microsoft [на английском] Вероятно, самое большое препятствие при изучении любого нового языка программирования — просто знать, с чего начать. Что важно? Что нужно знать, чтобы стать профи? Трудно исследовать документы, когда даже нет уверенности, что читаешь то, что нужно. Возможно, вы присматривае...

Windows 10 получит закругленные углы в дизайне ОС Windows 10 имеет острые и прямые углы, но это может скоро измениться, согласно новому документу с Github. Microsoft планирует выпустить закругленные углы в следующем основном выпуске своей операционной системы Windows 10. Скорее всего, речь идет о Windows 10 20H1.Предложение...

[Перевод] Семь лет работы разработчиком: какие уроки я извлёк Время летит, правда? Моя карьера началась в 2012 году, с первой стажировки по C++. Честно говоря, я понятия не имел, что делаю (на самом деле, ничего не изменилось). Однако я извлёк несколько уроков. Отказ от ответственности: в этом сообщении не будет никакого кода. Вопр...

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

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

Security Week 36: срок жизни уязвимостей в смартфонах Главная новость прошлой недели — масштабное исследование реальной атаки на устройства на базе iOS, опубликованное экспертом Яном Бером из команды Google Project Zero (новость, блогпост Яна со ссылками на семь дополнительных публикаций). Это редкий пример исследования, в кото...

Лучшие королевские битвы для Андроид и IOS на конец 2019 года Как оказалось, Apex Legends выйдет на мобильных не раньше следующего года, а о других важных королевских битвах для iOS и Android нам ничего неизвестно. Выходит, что если вы любите жанр, то вынуждены играть в «проверенную классику», либо пробовать проекты NetEase, которые вы...

Ищем уязвимости в UC Browser Введение В конце марта мы сообщали, что обнаружили скрытую возможность загрузки и запуска непроверенного кода в UC Browser. Сегодня разберём подробно, как эта загрузка происходит и как хакеры могут использовать её в своих целях. Некоторое время назад UC Browser рекламиро...

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

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

Octoprint без малинок и апельсинок! Всем привет! Конечно тема Octoprint изъезжена вдоль и поперек, но всё ж напишу. Вдруг кому то будет полезным. Статья скорее для новичков, бывалым это и так понятно.Так как мне очень надоело курсировать с флешкой к принтеру, я решил как то автоматизировать этот процесс. Конен...

На iOS вышел красивый платформер My Diggy Dog 2 My Diggy Dog — это довольно простое, но приятное приключение, в котором вы играете за собаку, помогающую своему хозяину искать различные артефакты. В сиквеле, который недавно вышел на iOS, пес отваживается помочь спасти свою хозяйку. Она потерялась, идя по следам загадочног...

Магнит «Лиса на луне» Моя супруга любит склеивать бумажные развертки, а у меня начала появляться какая-то нездоровая тяга делать магниты.Часто развертки распространяются в формате Pepacura designer, из которого можно достать 3d модель, я уже сделал себе голову волка и прилепил на холодильник. Но ...

Раскрутка и продвижение на Youtube Интернет, в частности социальные сети, позволяют на сегодняшний день многим людям по всему миру зарабатывать онлайн. Кто-то открывает свой интернет магазин, а кто то развивает аккаунт в Ютуб, в любом случае, мало просто завести страничку. Для того, чтобы зарабатывать достойн...

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

[Перевод] Будущее PHP Это мертвый язык программирования или нет? У PHP наверняка были лучшие времена. Но действительно ли он мертв? На форумах, подобных StackOverflow, люди предполагают, что PHP мертв. У них есть верная точка зрения, или может быть, они просто не любят PHP? Давайте посмотрим ...

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

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

[Из песочницы] Недоработки в языковом образовании в СНГ: взгляд полиглота Привет! Меня зовут Егор Пак, я полиглот. Я 9 лет прожил за рубежом и недавно вернулся в Россию. Хочу поделиться своими наблюдениями об обучении иностранным языкам в СНГ и за его пределами. По каждому из пунктов я написал советы. Читать дальше →

Apple оснастит новые iPhone технологией Always-On Display Always-On Display станет одним из нововведений iPhone 2020. Но каким оно будет Apple – одна из самых противоречивых технологических компаний современности. С одной стороны, она довольно медлительна в развитии своей продукции, предпочитая не торопиться с внедрением новых техн...

5 советов о Design Leadership. Часть 1 Всем привет. Уже в этом месяце мы запускаем курс «Team Lead 2.0», который подготовлен специально для старших разработчиков, TeamLead’ов, SCRUM мастеров и специалистов, желающих повысить свой профессиональный уровень и получить уникальный опыт, необходимый для эффективного уп...

[Перевод] Монады за 15 минут Вступление На конференции YOW! 2013 один из разработчиков языка Haskell, проф. Филип Вадлер, показал, как монады позволяют чистым функциональным языкам осуществлять императивные по сути операции, такие, как ввод-вывод и обработку исключений. Неудивительно, что интерес аудито...

Лицемерие google. PageSpeed Insights Google Page Speed Insights — это сервис от гугла, который позволяет определить производительность сайта и дает рекомендации по его оптимизации. Очень важно понимать, что это всего лишь рекомендации! Некоторые воспринимают эти рекомендации настолько серьезно, что готовы реали...

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

Как поморгать 4 светодиодами на CortexM используя С++17, tuple и извращенное воображение Всем доброго здравия! При обучении студентов разработке встроенного программного обеспечения для микроконтроллеров в университете я использую С++ и иногда даю особо интересующимся студентам всякие задачки на определения особо больных на голову одаренных учеников. В очеред...

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

[Перевод] Была ла MongoDB вообще правильным выбором? Недавно я узнал, что Red Hat удаляет поддержку MongoDB из Satellite (говорят, из-за изменений лицензии). Это заставило меня задуматься, что в последние несколько лет я видел кучу статей, как ужасна MongoDB и что никто никогда не должен её использовать. Но за это время MongoD...

Microsoft официально анонсировала Windows 10X для ПК с двумя экранами Microsoft анонсировала кучу нового оборудования сегодня на своем ежегодном мероприятии. Наряду с обычной линейкой Surface, Microsoft также показала и новый Surface Neo. Surface Neo – это первое складное устройство Microsoft под брендом Surface с двойным экраном. Для поддержк...

Усложнение C++ неизбежно. И не только C++ Давно хотел написать подобный текст, но все никак не доходили руки. А вот после завершившегося летнего заседания комитета по стандартизации C++ и поднявшегося воя о том, что сложность языка еще больше увеличилась, пришлось таки изыскать время и зафиксировать собственные мысл...

[Перевод] JavaScript — лучший язык программирования для начинающих. Так это или нет? JavaScript, несмотря на его многочисленные недостатки, возможно, является самым лучшим языком программирования для начинающих разработчиков, и лучшим языком, с которым могут повозиться дети. Шёл 2007 год. Отличное издательство технических книг O’Reilly Media обратилось ко ...

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

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

[Перевод] Python становится самым популярным языком программирования в мире Еще летом на The economist вышла статья о том, что Python все активнее завоевывает рынок. Но завирусилась она только сейчас. Вероятно, так произошло из-за того, что она очень неоднозначная. Ведь несмотря на такой заголовок, автор заявляет, что Python, теоретически, может пов...

[Перевод] Доступное объяснение алгоритма коллапса волновой функции Алгоритм коллапса волновой функции (Wavefunction Collapse Algorithm) учит компьютер импровизировать. На входе он получает архетипичные данные и создаёт процедурно генерируемые данные, похожие на исходные. (Источник) Чаще всего он используется для создания изображений, но ...

[Перевод] Виды компиляции в JVM: сеанс черной магии с разоблачением Всем привет! Сегодня вашему вниманию предлагается перевод статьи, в котором на примерах разобраны варианты компиляции в JVM. Особое внимание уделено AOT-компиляции, поддерживаемой в Java 9 и выше. Приятного чтения! Читать дальше →

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

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 25. Углубленное изучение IPv6 Сегодня мы продолжим изучение протокола IPv6. Этот урок довольно длительный, поэтому не будем терять время и приступим к изучению 3-х тем: автоконфигурация IPv6, настройка и проблемы IPv6 и основы маршрутизации IPv6. Последнюю тему мы посвятим статической маршрутизации и роу...

Обзор Fade to Silence. Выживаем в снегах Игры про выживание с каждым годом становятся все интереснее и интереснее. Разрабочики научились лучше передавать атмосферу страха, лучше реализовывают виртуальный мир и вынуждают иначе смотреть на геймплейные особенности. Fade to Silence — яркий пример того, как может выгляд...

[Из песочницы] История одной оптимизации MySQL Речь пойдет об оптимизации в MySQL базе данных. Это случилось, когда мы делали систему для email рассылок. Наша система должна была высылать десятки млн. писем в день. Отправка письма — задача не из простых, хотя выглядит все довольно примитивно: Собрать письмо из html кр...

[Перевод] Заложники COBOL и математика. Часть 1 Посмотрим правде в глаза: никто не любит дробные числа — даже компьютеры. Когда речь заходит о языке программирования COBOL — первый вопрос, который всплывает у всех в голове, всегда выглядит так: «Почему человечество всё ещё использует этот язык во множестве жизненно важны...

[Из песочницы] Система контроля библиотеки на Flask-Potion, Часть 0: готовим всё, что понадобится Введение В своей работе я уже некоторое время использую Flask-Potion — фреймворк, основными достоинствами которого являются: весьма удобная интеграция с SQLAlchemy моделями, автогенерация crud-эндпоинтов, наличие клиента potion-client (весьма удобного, если пишешь API сервис...

[Перевод] Главный секрет разработки хороших Electron-приложений Кое-кто люто ненавидит Electron-приложения. То, что приложение включает в себя браузер Chromium, кажется, мягко говоря, странным. Это ощущение усиливается в ходе работы с такими приложениями. Они потребляют много памяти, медленно загружаются и не отличаются особенно высокой ...

Windows становится современной Согласно многочисленным слухам, «Windows Lite» может появиться только в 2020 году. Редмондский гигант только что намекнул, что он работает над современной версией своей настольной операционной системы.На Computex Microsoft также обсудила свое видение современной ОС, выделив ...

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

[Перевод] Пять вопросов о проектировании языков программирования Руководящая философия 1. Языки программирования для людей Языки программирования это то, как люди говорят с компьютерами. Компьютер будет рад поговорить на любом языке, который не будет двусмысленным. Причина почему у нас есть высокоуровневые языки — потому что люди не мо...

Unit тестирование в Laravel Я часто слышу среди обсуждений в сообществе мнение, что unit тестирование в Laravel неправильное, сложное, а сами тесты долгие и не дающие никакой пользы. Из-за этого эти тесты мало кто пишет, ограничиваясь лишь feature тестами, а польза unit тестов стремится к 0. Я тоже так...

[recovery mode] Делаем маршрутизатор и NAS на одном процессоре У меня появился «домашний сервер» на Linux всего через несколько лет, как мне купили компьютер. Сейчас, с того момента прошло уже более пятнадцати лет и большинство этого времени у меня был какой-то второй дополнительный компьютер дома. Однажды, когда пришла пора его обновля...

Как выучить иностранный язык Я расскажу о том, как изучать иностранный язык и буду это делать на примере личного опыта изучения английского языка. Английский я начал учить в 36 лет, а уже сейчас у меня свободный английский язык (как письменный, так и устный), подтверждённый официальными сертификатами. Ч...

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

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

Оптимальная линейная фильтрация: от метода градиентного спуска до адаптивных фильтров Развивая тему конспектов по магистерской специальности "Communication and Signal Processing" (TU Ilmenau), продолжить хотелось бы одной из основных тем курса "Adaptive and Array Signal Processing". А именно основами адаптивной фильтрации. Для кого в первую очередь была напис...

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

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

«Сначала подумал, что на табуретке сижу»: Блогер пересел с «Лансера» на «Прадик» и поделился впечатлениями О замене маленького седана на огромный японский внедорожник обзорщик ни капли не пожалел. Mitsubishi Lancer 10-го поколения блогера Эдгара Багдасаряна устраивал практически во всём, однако в определённый момент ему захотелось стать владельцем более габаритного автомобиля, ч...

[Из песочницы] Wolfram Function Repository: открытый доступ к платформе для расширений языка Wolfram Привет, Хабр! Представляю вашему вниманию перевод поста Стивена Вольфрама "The Wolfram Function Repository: Launching an Open Platform for Extending the Wolfram Language". Предпосылки состоятельности языка Wolfram Сегодня мы стоим на пороге великих свершений вмест...

Собираем iMac за 300 евро Сегодня я разберу личный опыт бюжетнейшей сборки "Хакинтоша" (MacOS) с нуля, имея только монитор, используя комплектующие на общую сумму менее 300 Евро (340$). Сборка была сделана в конце июля-начале августа 2018 года и успешно просуществовала более 8 месяцев. Актуально и ...

[Перевод] Делаем стильный водопад из RiME прямо в Unity или UE4 Есть игры с таким запоминающимся визуалом, что страшно считать потраченное на его разработку время, взять хотя бы последний God of War или RDR2. А бывают проекты, которые подкупают своей атмосферной, даже если они далеки от ААА. Как пример — RiME не раз хвалили за стиль, зву...

Вчера Samsung заново представила Galaxy Fold, а сегодня отменила все ранние предзаказы на этот смартфон в США Вчера компания Samsung наконец-то передпредставила гибкий смартфон Galaxy Fold и объявила дату начала продаж — 6 сентября, то есть сегодня. Как оказалось, перезапуск важного для Samsung устройства сопровождался весьма странным поступком компании. Дело в том, что S...

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

О важности подтверждения управляющих команд на примере Делимобиля При проектировании IoT систем, например, каршеринга, очень важно учитывать возможные сбои. В противном случае вас ожидает критическая нагрузка на техподдержку и недовольство клиентов. Парковка «Сколковская»​ Читать дальше →

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

Замена Action URL & URI в SIP-телефонах или управление via websockets? SIP-телефоны. Компьютеры с трубкой. По идее с ними очень многое можно что делать, а их используют только для звонков :-) Недавно был на конференции АстерКонф, и там вендоры рассказывали о своих телефонах, не будем никого выделять, все хороши, где-то лучше, где-то дешевле, п...

Скоро браузер Firefox будет сложно отличить от Chrome, но за это придётся заплатить Согласно заявлению генерального директора Mozilla в недавнем интервью немецкому изданию t3n, компания планирует пойти по стопам Google и ее браузера Chrome и сделать некоторые дополнительные функции Firefox доступными только по платной подписке. В качестве платных дополнени...

Как очистить оперативную память на Android-смартфоне Освободив оперативную память, вы заставите смартфон работать быстрее Большинство устройств среднего и высокого ценового диапазона, выпущенные за последние пару лет, имеют в районе 4 гигабайт оперативной памяти. Если, конечно, мы не будем принимать во внимание флагманы вроде ...

[Перевод] Пишем API для React компонентов, часть 6: создаем связь между компонентами Пишем API для React компонентов, часть 1: не создавайте конфликтующие пропсы Пишем API для React компонентов, часть 2: давайте названия поведению, а не способам взаимодействия Пишем API для React компонентов, часть 3: порядок пропсов важен Пишем API для React компонентов,...

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

Типовое внедрение мониторинга. Николай Сивко Расшифровка доклада "Типовое внедрение мониторинга" Николая Сивко. Меня зовут Николай Сивко. Я тоже делаю мониторинг. Okmeter это 5 мониторинг, который я делаю. Я решил что я спасу всех людей от ада мониторинга и мы избавим кого-то от этих страданий. Я всегда в своих презен...

Как мы со Стасом завод за 2 месяца автоматизировали Случалось ли вам видеть автоматизацию производственного предприятия, выполненную за 2 месяца? Или, может быть, доводилось делать такую автоматизацию? Я уверен, таких примеров много. У меня тоже есть – кидаю в копилку. Сразу скажу, чтобы у вас не было предвзятости при прочте...

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

Лучшие программы для диагностики Android-смартфона Знать о состоянии своего смартфона крайне важно Современный смартфон — это настоящий «микрокомпьютер» с огромным числом компонентов внутри. С его помощь можно делать кучу вещей, в частности, читать новости в нашем Телеграм-канале. А для того, чтобы разобратьс...

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

Кое-что о пространстве имён Я программирую на PHP. И немножко на JS. Когда-то я программировал на Java, ещё раньше — на LotusScript. Попробовал на вкус python и dart. Basic, Fortran, Pascal, Prolog, VisualBasic, С++/С, perl — на всём этом я тоже изображал что-то исполняемое. Языки программирования меня...

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

[Из песочницы] Сборка примера Augmented Faces ARCore в Unity Надеюсь, данная статья будет полезна тем, кто хочет пощупать возможности дополненной реальности ARCore в Unity, но при этом не смог найти понятной инструкции. Мы соберем пример приложения дополненной реальности Augmented Faces ARCore для Unity, оно будет отслеживать через...

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

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

Функциональное программирование с точки зрения EcmaScript. Композиция, каррирование, частичное применение Привет, Хабр! Сегодня мы продолжим наши изыскания на тему функционального программирования в разрезе EcmaScript, на спецификации которого основан JavaScript. В предыдущей статье мы разобрали основные понятия: чистые функции, лямбды, концепцию имутабельности. Сегодня поговор...

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

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

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

Статистика сайта и своё маленькое хранилище Утилита Webalizer и инструмент Google Analytics помогали мне много лет получать представление о том, что происходит на веб сайтах. Сейчас я понимаю, что они дают очень мало полезной информации. Имея доступ к своему файлу access.log, разобраться со статистикой очень просто и ...

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

[Перевод] CSS Subgrid новости Несколько недель назад, я выступала на Frontend NE в Ньюкасле и большую часть выступления объясняла, что за особенности будут в CSS Grid Subgrid из Grid Level 2. Не имея реализации данного свойства(в браузерах), я смоделировала кучу демок, используя DevTools, для того выступ...

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

Все, что вам нужно знать об обновлении Windows 10 November 2019 Update Ожидается, что Microsoft начнет развертывание Windows 10 November 2019 Update (версия 1903) 12 ноября, и компания также сделала RTM-сборку доступной для большего числа инсайдеров.По состоянию на 5 ноября последняя версия обновления за ноябрь 2019 года – это сборка 18363.449,...

ML на Scala с улыбкой, для тех, кто не боится экспериментов Всем привет! Сегодня будем говорить о реализации машинного обучения на Scala. Начну с объяснения, как мы докатились до такой жизни. Итак, наша команда долгое время использовала все возможности машинного обучения на Python. Это удобно, есть много полезных библиотек для подг...

DearMob iPhone Manager – лучший вариант среди всех альтернатив iTunes Недавно компания Apple решилась на необычный шаг и удалила со своей настольной платформы приложение iTunes, заменив его несколькими утилитами. На Windows яблочный медиакомбайн сохранился. Однако можно предположить, что Apple вряд ли продолжит развивать iTunes. По этой причин...

Время первых. История, как мы внедряли Scratch как язык программирования роботов Смотря на текущее разнообразие образовательной робототехники радуешься, что детям доступно огромное количество конструкторов, готовых изделий и что планка «входа» в основы программирования опустилась достаточно низко (вплоть до детского сада). Массово идет тенденция приобщен...

Попытка создать аналог ASH для PostgreSQL Постановка задачи Для оптимизации запросов PostgreSQL, очень требуется возможность анализировать историю активности, в частности – ожидания, блокировки, статистика таблиц. Имеющиеся возможности Инструмент анализа исторической нагрузки или «AWR для Postgres»: очень интересн...

ЧПУ выжигатель с нихромовой проволокой часть 1. Очень много всякой рекламы о чудесном выжигателе. Не буду писать здесь даже название, все и так поймут. Объясню лишь, что не бывает профессиональных выжигателей такого типа. Все они собираются, как говорится на коленке. И стоимость в 50 + тысяч рублей, извините, завышена в т...

Xamarin.Forms — простой пример Host-based Card Emulation В этой статье будем реализовывать так называемую Host-based Card Emulation (HCE, Эмуляция банковской карты на телефоне). В сети много подробных описаний этой технологии, здесь я сделал акцент именно на получении работающих приложений эмулятора и ридера и решении ряда практич...

Нахождение объектов на картинках Мы занимаемся закупкой трафика из Adwords (рекламная площадка от Google). Одна из регулярных задач в этой области – создание новых баннеров. Тесты показывают, что баннеры теряют эффективность с течением времени, так как пользователи привыкают к баннеру; меняются сезоны и тре...

Run, Gopher, run! — о чем поговорим на GolangConf Мы обещали 5-6 причин перейти на Go, так и получилось! На GolangConf — конференции полностью посвященной Go — 7 октября будет 5 докладов с пометкой «Переход на Go» для тех, кто только собирается или начинает использовать этот язык в своих проектах. Но это только начало. С п...

Обзор Destiny 2: Обитель Теней Destiny 2 – и вся франшиза в целом – это очень странный зверь. Это серия, которую знают все, но которая никогда не перешагивала планку посредственности. Это выдающийся шутер с огромным числом проблем, которые остаются нерешёнными по сей день. Это постоянное напоминание об ог...

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

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

Чему не учат в школе: как мы готовим инженеров техподдержки Вот и обещанная “другая история”. Challenge Если бы четыре года назад меня спросили: “Как можно обучать новичков в ИТ отделе/компании?” — я, не задумываясь, выдал бы: “По методу “обезьянка видит — обезьянка подражает”, то есть прикрепите новичка к более опытному сотрудни...

[Перевод] Flutter. Keys! Для чего они? Параметр key можно найти практически в каждом конструкторе виджета, но используют этот параметр при разработке достаточно редко. Keys сохраняют состояние при перемещении виджетов в дереве виджетов. На практике это означает, что они могут быть полезны для сохранения местопол...

Lerdge K и 3d touch автоуровень (от TriangleLab) на Ender 3 или любом другом принтере. Наконец-то выдалась минутка поделится своими 'мучениями'. Статья уже неск. мес. в черновиках.Речь пойдет о популярной нынче плате Лердж К и не менее популярном датчике, клоне bl touch, 3д таче.И не надо тут спорить, зачем и почему. Я так захотел, потому что у меня есть для э...

Зеркало 1xbet На просторах интернета можно найти действительно огромное количество разнообразных букмекерских контор, которые предлагают делать ставки, и соответственно, дают возможность зарабатывать реальные деньги. К сожалению, не все они одинаково удобные, честные и надежные, поэтому к...

Зачем нужны «Команды» Siri? Ответ Apple 17 сентября 2018 года, одновременно с релизом iOS 12, watchOS 5 и tvOS 12, Apple выпустила приложение «Команды» для Siri. Именно оно обеспечивает работу функции быстрых команд (shortcuts), позволяющих автоматизировать выполнение многих повседневных задач на iPhone и iPad. С...

Асинхронное программирование в JavaScript (Callback, Promise, RxJs ) Всем привет. На связи Омельницкий Сергей. Не так давно я вел стрим по реактивному программированию, где рассказывал про асинхронность в JavaScript. Сегодня я бы хотел законспектировать этот материал. Но перед тем как начать основной материал нам нужно сделать вводную. Итак...

[Из песочницы] Рефакторинга много не бывает Привет, Хабр! Представляю вашему вниманию перевод статьи "Refactoring — oops, I’ve been doing it backwards" автора Джастина Фуллера (Justin Fuller). Я очень завишу от рефакторинга, и не боюсь признать это, но есть только одна проблема: я всегда делал это задом на...

Субъективное видение идеального языка программирования Дальнейший текст — моя точка зрения. Возможно, она позволит кому-то по-новому взглянуть на дизайн языков программирования или увидеть какие-то преимущества и недостатки конкретных фич. Я не буду лезть в частные подробности типа "в языке должна быть конструкция while", а прос...

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

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

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

Зачем нам на производстве AR и VR Привет! AR и VR — штуки модные, сейчас приложения с их использованием не сделал только ленивый (или тот, кому оно просто не надо). От Oculus до MSQRD, от простых игрушек, радующих детишек появлением динозавра в комнате, до прикладных приложений вида «Расставь мебель в своей ...

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

[Из песочницы] Прагматическое функциональное программирование Привет, Хабр! Предлагаю вашему вниманию перевод статьи «Pragmatic Functional Programming» автора Robert C. Martin (Uncle Bob). Переход к функциональному программированию всерьез развился только около десяти лет назад. Мы видим, что такие языки, как Scala, Clojure и F# прив...

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 47. Устранение неполадок OSPF Сегодня мы продолжим тему предыдущего урока о протоколе OSPF, которому посвящен раздел 2.4 тематики ICND2, и рассмотрим устранение типичных проблем реализации этого протокола. Вернемся к примеру Packet Tracer, которым мы закончили последнее видео. Для начала я исправлю обозн...

[Перевод] MVC без C: Что изменит SwiftUI в архитектуре приложений? MVC был давним стандартом в паттернах проектирования, используемых для написания iOS приложений. Структура iOS приложений, которые создавались ранее, была основана на одном базовом компоненте, который присутствует везде, и называется он — Controller. На WWDC19 был представле...

У нас DevOps. Давайте уволим всех тестировщиков Можно ли автоматизировать всё, что угодно? Потом всех тестировщиков уволим, конечно. Зачем они теперь нужны, «ручного» тестирования не осталось. Правильно ведь? Это рассказ о будущем тестирования с точки зрения DevOps. Здесь будут конкретные цифры и чисто практические вывод...

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

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

[Перевод] Оптимизация поиска в ширину: как обработать граф с 10 миллиардами состояний Пару месяцев назад мне наконец пришлось признать, что я недостаточно умён, чтобы пройти некоторые уровни головоломки Snakebird. Единственным способом вернуть себе часть самоуважения было написание солвера. Так я мог бы притвориться, что создать программу для решения головол...

Всё что нужно знать про систему Windows 10X для устройств с двумя экранами Microsoft представила устройство Surface Neo с двумя экранами, слухи о котором ходили уже давно. Оно будет работать на версии операционной системы Windows 10X. Что она из себя представляет?На мероприятии в Нью-Йорке 2 октября компания Microsoft показала устройство Surface Ne...

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

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

Apple обучает iPhone выявлять болезнь Альцгеймера Apple хочет научить iPhone выявлять болезнь Альцгеймера. Достойная цель, и уже есть первые результаты Медицинские технологии – это одно из ключевых направлений деятельности, которые Apple старается развивать активнее, чем другие. Чаще всего до пользователей доходят только са...

Надо ли устанавливать macOS Catalina? Мнение наших читателей Умеет Apple делать красивые заставки для своих ОС Летом этого года Apple представила macOS Catalina. На презентации она выглядела очень многообещающей. Возможность запускать приложения с iPad, использование iPad в качестве графического планшета или второго экрана. Выглядит и...

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

Загадка нейтрино от Сверхновой 1987А Сверхновая 1987А: во время и до вспышки Не очень давно здесь была неплохая статья Bars21 о нейтрино от сверхновых. Она мне очень понравилась, и кое-какие моменты (например, про урка-процесс) натолкнули на то, что мы не только читали или слушали одних и тех же преподавателе...

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

Обзор твердотельного накопителя GoodRam IRDM Pro gen. 2 (1 Тбайт) Серия твердотельных накопителей IRDM Pro является топовой в модельном ряду GoodRam. Данные устройства гарантируют надежную и стабильную работу ПК, а заявленные скорости достигают максимума для интерфейса SATA III. Всем известно, что варианты с таким подключением давно уперл...

Почему нужно сваливать — 2 часть Сегодня я хочу обсудить свою прошлую статью о том как свалить из страны — http://blogarbik.ru/?p=9718 И разумеется появилось куча негатива. У меня только один вопрос — А у кого есть хоть какой то реальный вариант свалить из страны?!  Ну хоть один?!  Не пиздеть, ч...

Что делать тимлиду, чтобы команда не выгорала Недавно в подкасте "Цинковый прод" мы обсуждали выгорание. Я решил структурировать некоторые мысли и оформить в виде статьи История первая Однажды, когда я еще был простым линейным разработчиком, я решил пофрилансить. Друг попросил доработать одну довольно хитрую систему, п...

[Перевод] Почему я не использую веб-компоненты Я пишу это в основном для себя в будущем, чтобы у меня было куда сослаться, когда кто-нибудь спросит меня, почему я скептичен в отношении веб-компонентов и почему Svelte не компилируется в веб-компоненты по умолчанию. (Тем не менее, он может компилироваться в веб-компоненты,...

Blackbox-мониторинг в Clos-сетях. Доклад Яндекса Топология современных дата-центров и устройства в них уже не позволяют довольствоваться исключительно whitebox-мониторингом. С течением времени понадобился инструмент, который покажет работоспособность конкретных устройств, исходя из реальной ситуации с передачей трафика (da...

У некоторых инсайдеров Microsoft Edge на Chromium появился в Windows Sandbox Компания Microsoft по-прежнему не запустила публичное тестирование новой версии браузера Edge, построенной на базе Chromium, однако это может произойти уже в самое ближайшее время. Если же вы не хотите ждать, то можете установить одну из утёкших сборок браузера, ссылки на к...

Еще немного фоток с 3dtodayfest. Заключительная часть Третья часть фоток с 3dtodayfestПредупреждение для пользователей мобильного трафика - будет много фотокЕсли увидите фото со своего стенда то пишите в комментариях ссылки на свои профили в соцсетях чтоб когда буду выкладывать обозначил ваше авторство. Так же в предыдущих пост...

Дайджест интересных материалов для мобильного разработчика #300 (27 мая — 2 июня) Понадобилось немногим более 6 лет на выпуск 300 дайджестов. Всем привет, меня зовут Леонид, и это я делаю эти статьи. Читать дальше →

Windows 10 + Python = VS Code + WSL Microsoft… Технологических локомотивов нашего времени. Ни для кого не секрет что они крутые, а также, что они поглощают все больше и больше… Всего. К счастью последнее время они только радуют меня своим потенциалом. А после выступления Satya Nadella, где он рассказал миру о...

[Из песочницы] Начинаем FPGA на Python Технология FPGA (ПЛИС) в настоящее время обретает большую популярность. Растёт количество сфер применения: помимо обработки цифровых сигналов, FPGA используются для ускорения машинного обучения, в blockchain технологиях, обработке видео и в IoT. Данная технология имеет од...

Играйте на игровых автоматах для настоящих чемпионов в казино онлайн Если когда-либо и были причины играть в онлайн слоты, то это так: вы можете найти фрироллы! Работает azino mobile в соответствии с действующим законодательством. Один из самых больших слотов мифов, который существует идея, что вы можете изменить свою судьбу, переключая игров...

Как меняется специфика работы с серверами приложений на примере OpenLiberty Привет, Хабр! Выступление Себастьяна Дашнера на java meetup в московском офисе IBM (нашел запись похожего выступления) подтолкнуло меня начать свое знакомство с легковесными серверами приложений, в частности, с OpenLiberty. И тогда я задумался: Какие преимущества дают ...

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

В Drupal пропатчен баг, грозящий угоном сайта Разработчики CMS-системы Drupal выпустили обновление 8.7.5, устраняющее критическую уязвимость, которую они охарактеризовали как «обход доступа». Согласно алерту Агентства кибербезопасности США (CISA), использование новой проблемы позволяет захватить контроль над с...

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

[Из песочницы] Как в Android'е передать переменную из фрагмента в активность? Рассказ о том, как в Android'е передать информацию из фрагмента (Fragment) в активность (Activity). Информация будет полезной для новичков (джуниоров), осваивающих программирование для Android, и вряд ли будет интересной для миддлов и сеньоров. Запускаем IDE (integrated dev...

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

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

Xiaomi выпустила обновление MIUI со стабильной Android 9 Pie для прошлогоднего Redmi Note 6 Pro Смартфон Xiaomi Redmi Note 6 Pro дебютировал осенью прошлого года и представляет собой небольшой обновление Note 5 Pro с вырезом экрана под двойную селфи-камеру. После месяца бета-тестирования, для Xiaomi Redmi Note 6 Pro начало распространяться стабильное обновление об...

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

[Перевод] Грамматика английского. Who vs. Whom – как понять, какое слово использовать Разобраться в хитростях английской грамматики может быть довольно непросто. Классический пример здесь – выбор между who и whom. Даже носители языка не всегда корректно используют нужное слово, что уж говорить о тех, кто только изучает английского. В блоге одного из сервис...

Стартовал бета-тест необычного рогалика без рекламы и внутриигровых покупок Cannon Ballers Cannon Ballers — это игра от студии под названием Looty Games, в которой, если верить разработчикам, не будет ни рекламы, ни внутриигровых покупок. Ирония, которую мы заслужили. Это будет рогалик, в котором вам предстоит сыграть за пушечное ядро, хотя технически вы играете ...

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

Смартфоны Samsung Galaxy Note могли бы иметь более узкие рамки и емкий аккумулятор, если бы не стилус S Pen Известный инсайдер под ником Ice Univerce опубликовал на своей страничке в социальной сети Twitter сведения о том, насколько более изящными могли бы быть смартфоны Samsung Galaxy Note, если бы не стилус S Pen. Согласно информации, полученной по его собственным каналам, ...

Поймай меня, если сможешь. Версия менеджера Ты – программист. Я – эффективный менеджер. Ну, ты так считаешь. Может, даже статью про меня напишешь, наберешь кучу плюсов – тема-то благодатная. В статье обязательно слово «эффективный» в кавычки поставишь. Я уже не работаю в вашей компании. Решил рассказать тебе, как всё...

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

Почему важно время от времени обновлять процессор? На примере Intel Core i5-8500 Сегодня, наверное, чаще всего меняют железо те, кто активно играет на своём ПК в игры. Эти люди хорошо представляют, зачем им новая видеокарта или более высокочастотная оперативная память или игровая материнская плата, и тем более свежий процессор. Читать полную статью ...

Как победить дракона: переписываем вашу программу на Golang Так случилось, что ваша программа написана на скриптовом языке — например, на Ruby — и встала необходимость переписать ее на Golang. Резонный вопрос: зачем вообще может понадобится переписывать программу, которая уже написана и нормально работает? Читать дальше →

Как удалить оболочку и фирменные приложения Samsung с вашего смартфона Android является весьма удобной системой с открытым исходным кодом. Это означает, что сторонние производители могут делать все, что захотят. Примером этого является уникальный пользовательский интерфейс Samsung (ранее известный, как TouchWiz). Он является предметом жарких с...

[Из песочницы] 20 игр, чтобы научить ребёнка программированию Привет Хабр! Меня зовут Оксана Селендеева. Я считаю, что лучше начинать программировать с юного возраста — 4-5 лет, потому что кодинг активно развивает у детей когнитивные функции мозга, и это впоследствии помогает им отлично усваивать точные науки. А попробовать себя в прог...

Из юриспруденции в Big Data-разработку Путей много – как найти свой? Герой этой статьи, Роман Майер, получил гуманитарное образование и пришел в IT совсем из других областей. Он развивал собственный бизнес, работал менеджером по продажам, был юристом, а к 28 годам понял, что пока не нашел работу мечты и пора осв...

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

[Перевод] PostgreSQL 11: Эволюция секционирования от Postgres 9.6 до Postgres 11 Отличной всем пятницы! Все меньше времени остается до запуска курса «Реляционные СУБД», поэтому сегодня делимся переводом еще одного полезного материала по теме. В процессе разработки PostgreSQL 11 была проделана впечатляющая работа по улучшению секционирования таблиц. Секц...

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

Huawei необходимо что-то сделать со странным интерфейсом EMUI Есть такой смартфон у Huawei, который делает превосходные фотографии, и имя ему Mate 20 Pro. Этот смартфон можно любить за многое, но есть у него одна, на мой взгляд, ахиллесова пята – фирменный лончер. Как вы уже поняли, эта проблема имеет отношение не только к Mate 20 Pro...

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

Для тех, кто работает в Houdini. О курсах Nature of Vex и Bites of Python Под катом вы найдете отзыв специалистов из Houdini Team краснодарской студии Plarium о видеокурсах Nature of Vex и Bites of Python от Mix Training, посвященных работе с языками Python и Vex в графической программе Houdini. Также в этом посте ребята делятся подборкой матери...

Преимущества следования styleguide’ам при разработке Angular-приложений В конце 2018-го года в Самаре состоялся Panda-Meetup #9 Frontend. На этом мероприятии я попробовал себя в новой роли и выступил с докладом. Меня зовут Евгений Холмов. В программирование я пришёл более 10 лет назад, будучи студентом. Последние 5 лет я занимаюсь разработкой си...

[Перевод] Раф Костер: «Community Cookbook» Полезный материал для модератеров Пикабу, Хабра, урбанистов, чиновников, колонистов на Марсе/Луне и всем тем, кто планирует править этим (или еще каким) миром. Слово Рафу Костеру, легенде геймдева, Ultima Online, Star Wars Galaxies, геймификации, автору книги «A Theory of Fu...

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

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

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

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

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

[Перевод] DEFCON 21. Одних паролей недостаточно, или почему «ломается» шифрование диска и как это можно исправить. Часть 2 DEFCON 21. Одних паролей недостаточно, или почему «ломается» шифрование диска и как это можно исправить. Часть 1 Существуют забавные штуки, такие, как монотонно возрастающие счетчики, с помощью которых можно контролировать активность TMP, а затем проверять полученные значен...

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

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

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

Bose Portable Home Speaker выглядит интересно Официально представлена новая умная колонка Bose Portable Home Speaker, которая уже работает с голосовыми помощниками Google Assistant, Alexa и AirPlay 2. То есть, если вы хотите использовать умную колонку и получать от нее какую-то полезную информацию, то самое время искать...

Мнение: За счет чего Apple могла бы увеличить продажи iPhone Не секрет, что сейчас Apple переживает не лучшие времена: судебные разбирательства с компанией Qualcomm, не слишком результативные продажи флагманских моделей iPhone, давление со стороны китайских производителей смартфонов. Нет никаких сомнений, что Apple может вернуть лиди...

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

Как реализовать язык программирования на JavaScript. Часть 1: Парсер Здравствуйте! Представляю вам любительский перевод руководства реализации своего языка программирования на JavaScript — PL Tutorial. От переводчика Мы создадим свой язык программирования — λзык (в оригинале — λanguage). В процессе создания мы будем использовать достаточно мн...

[recovery mode] «Жить в кайф» или моя история от прокрастинации к саморазвитию Здравствуй, друг. Сегодня речь не пойдет о сложных и не очень аспектах языков программирования или каком-то Rocket Sience. Сегодня я расскажу тебе короткую историю о том, как я встал на путь программиста. Это моя история и ее уже не изменишь, но если она поможет хотя бы одн...

Практическое применение трансформации AST-деревьев на примере Putout Введение Каждый день при работе над кодом, на пути к реализации полезного для пользователя функционала, становятся вынужденные (неизбежные, либо же просто желательные) изменения кода. Это может быть рефакторинг, обновление библиотеки или фреймворка до новой мажорной версии, ...

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

Простая игра на SFML Будем делать игру «пятнашки» на языке C++ с использованием библиотеки SFML. Пятнашки — это широко известная головоломка, которая выглядит следующим образом: На игровом поле размером 4х4 случайным образом расположены 15 плашек с номерами от 1 до 15 и одно свободное место. П...

«Теория Большого взрыва» и практика применения Python Вступление В последнее время активно изучаю язык программирования Python. Особенно меня заинтересовало использование Python в распознавании и классификации лиц. В статье я попробую применить распознавание лиц для сериала «Теория Большого взрыва». Читать дальше →

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

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

[Из песочницы] Почему мы пишем бизнес-логику на Lua Привет, Хабр. В этом посте мы хотим рассказать о том, как и почему мы в IPONWEB используем язык программирования с красивым названием Lua. Lua — скриптовый встраиваемый язык программирования со свободно распространяемым интерпретатором и открытыми исходными текстами на C. О...

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

[Перевод] Что есть и чего нет в Go. Часть 1 Всем привет, в преддверии старта нового потока по курсу «Разработчик Golang» хотим поделиться с вами переводом интересной статьи, в первой части которой разбираются элементы, которые есть в Go. Поехали. Go создавался с оглядкой назад, и его базовая комплектация действител...

[Перевод - recovery mode ] Django 3.0 будет асинхронным Andrew Godwin опубликовал DEP 0009: Async-capable Django 9 мая, а 21 июля он был принят техническим советом Django, так что можно надеяться, что к выходу Django 3.0 успеют сделать что-нибудь интересное. Он уже упоминался где-то в комментариях Хабра, но я решил донести эту но...

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

Не так, как было обещано. Браузер Microsoft Edge на базе Chromium научился открывать страницы в Internet Explorer Компания Microsoft частично сдержала своё обещание и запустила в браузере Edge на базе Chromium режим IE mode. На новшество обратил внимание ресурс Techdows.  Данная функция была анонсирована для версии Edge на Chromium в мае на конференции Build для разработчиков...

Топ ошибок со стороны разработки при работе с PostgreSQL HighLoad++ существует давно, и про работу с PostgreSQL мы говорим регулярно. Но у разработчиков все равно из месяца в месяц, из года в год возникают одни и те же проблемы. Когда в маленьких компаниях без DBA в штате случаются ошибки в работе с базами данных, в этом нет ничег...

Всё, что известно про новый меню «Пуск» в Windows 10 20H1 Случайный выпуск Microsoft непроверенной сборки Windows 10 для инсайдеров показал новое меню «Пуск». В меню «Пуск» отсутствуют живые плитки, и это может быть частью новой функции, которую Microsoft готовит для Windows Lite, урезанной и облегченной версии Windows.Новое меню «...

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

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

[Перевод] Создаём собственный игровой контроллер Источник вдохновения На игровых выставках разработчики Objects in Space показывали демо своей игры с контроллером на кокпите огромного космического корабля. Он был дополнен загорающимися кнопками, аналоговыми приборами, световыми индикаторами состояния, переключателями и т.д...

Новая сборка Windows 10 обеспечивает автоматический перезапуск для UWP-приложений Microsoft выпустила сборку Windows 10 Build 18990 для инсайдеров Windows в канале Fast Ring, предоставив поддержку автоматического перезапуска для приложений UWP.Начиная со сборки 18965 пользователям Windows 10 предоставляется специальная опция в приложении «Параметры» для а...

[Из песочницы] Установка sdl2 на основные дистрибутивы Здравствуй, Хабр. Недавно наткнулся на новый цикл статей по sdl2, но без процедуры установки. Вроде ничего сложного, но если интересно, то давайте вместе пройдемся по граблям, которые могут нас ожидать. Я проведу установку для xcode10 на macOS 10.14.5, code::blocks на Ubuntu...

[Из песочницы] Как я нашел свою первую уязвимость? Предисловие Всем привет. Мне 20 лет. Еще недавно я учился в лицее и готовился поступать в медицинский ВУЗ, а сейчас я — фулстэк разработчик в одной американской компании. На самом деле я очень рад, что с медициной у меня не вышло — программирование было моим хобби, а сейчас ...

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

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

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

Логирование HTTP запросов в Spring Boot с использованием Бобины Приветствую, дорогие друзья! Сегодня я хочу продемонстрировать потрясающий пример того, как Бобина может помочь в очень распространённой ситуации — логирование HTTP запросов и ответов в Spring Boot. Даже больше! Мы будем логировать только сообщения HTTP в отдельные файлы. Чи...

[Из песочницы] Структуры данных в Java. Полезные методы вспомогательных классов Привет, habr! Я Software Engineer в EPAM. Более 8 лет я работаю с legacy-кодом, написанном на языке Java (предвосхищая комментарии, отмечу, что понимание и терпимость к legacy началась задолго до EPAM, в заключении вы найдёте ответ, почему). Часто в работе я сталкивался с ...

WAL в PostgreSQL: 1. Буферный кеш Предыдущий цикл был посвящен изоляции и многоверсионности PostgreSQL, а сегодня мы начинаем новый — о механизме журналирования (write-ahead logging). Напомню, что материал основан на учебных курсах по администрированию, которые делаем мы с Павлом pluzanov, но не повторяет их...

Обзор Polysphere. Лучшая игра уходящего года Меня постоянно интересуют новые интересные мобильные игры, которые могут хотя бы удивить. В последнее время таких проектов практически не осталось, так как разработчики не хотят рисковать. Зачем выпускать мобильную игру, разработка которой обойдется в тысяч 100 долларов, есл...

Семь бесплатных автоматизированных платформ-задачников для прокачки навыков программирования Привет! Недавно сделали подборку бесплатных сервисов для изучения программирования с нуля. В комментариях получили много заинтересовавших нас платформ. Из них составили отдельный список таких, которые подойдут профессиональным программистам. CheckiO Проект из Украины «Чекио»...

Windows 10 20H1 вскоре станет доступен на канале Fast В связи с тем, что Windows 10 May 2019 Update вскоре станет доступен на канале Release Preview, компания Microsoft планирует перевести участников программы Windows Insider на канале Fast на сборки 20H1. Небольшая группа инсайдеров, выбравших канал Skip Ahead, будет объедине...

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

[Перевод] Как реализовать язык программирования на JavaScript. Часть 3: CPS-интерпретатор Здравствуйте! Представляю вам третью часть моего перевода руководства реализации своего языка программирования на JavaScript — PL Tutorial. От переводчика Мы создадим свой язык программирования — λзык (в оригинале — λanguage). В процессе создания мы будем использовать достат...

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

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

Обзор Joyoshare Media Cutter. Многое в одном инструменте для редактирования видео Нет, я всё понимаю. То, что вы умеете пользоваться всяческими приложениями для видеомонтажа, в которых работают голливудские мастера, это хорошо и замечательно. Но из пушки по воробьям не стреляют. И если вам нужна компактная, шустрая и удобная программа, умеющая резать и ко...

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

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

[Из песочницы] Оптимизация скриптов с Webpack SplitChunksPlugin В этой статье я бы хотел поделиться своим опытом по разбиению бандлов для многостраничного сайта с помощью Webpack 4. Cначала создадим для каждой страницы свою точку входа. Рассмотрим на примере 4 страниц: const path = require("path"); const PATHS = { src: path...

TJBOT как иллюстрация IBM Watson services Привет, Хабр! Весной 2019 года прошел очередной Think Developers Workshop, на котором все желающие могли собрать картонного робота TJBota под управлением IBM Watson Services. Под катом находится подробная инструкция, из чего и как собрать такого робота, полезные ссылки и про...

[Перевод] Отличия LabelEncoder и OneHotEncoder в SciKit Learn Если вы недавно начали свой путь в машинном обучении, вы можете запутаться между LabelEncoder и OneHotEncoder. Оба кодировщика — часть библиотеки SciKit Learn в Python и оба используются для преобразования категориальных или текстовых данных в числа, которые наши предсказате...

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

Сжимаем список IP-адресов наилучшим образом Как-то я прочитал на Хабре статью про настройку BGP на роутере. Инструкции оттуда можно использовать для настройки домашнего роутера так, чтобы трафик на определённые IP-адреса шёл через другой канал. Однако здесь есть проблема: список IP-адресов может быть очень большим. ...

Apple выпустила первые бета-версии iOS 12.4, macOS 10.14.6, watchOS 5.3 и tvOS 12.4 Сегодня, 15 мая, Apple выпустила первые бета-версии iOS 12.4, macOS 10.14.6, watchOS 5.3 и tvOS 12.4. Обновления уже доступны для загрузки всем зарегистрированным разработчикам. Установить апдейты можно как по «воздуху», установив специальный профиль, так и с официального с...

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

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

Windows 10 May 2019 Update выпущен на канале Release Preview На прошлой неделе компания Microsoft анонсировала Windows 10 May 2019 Update. Новое функциональное обновление, в отличие от October 2018 Update, более месяца будет проходить тестирование на канале Release Preview, прежде чем начнёт распространяться среди обычных пользовател...

Тема для Ютуб-канала — Кулинарные рецепты Время от времени я буду публиковать интересные тематики ютуб-каналов, которые легко раскручиваться и они могут дать кучу бабла.   Помните историю 2-летней давности когда в Яндекс.Дзене стали появляться каналы со скопипастенными кулинарными рецептами.  И кто в теме, прек...

iFixit оправдала Galaxy Fold Компания iFixit разобрала смартфон Galaxy Fold и постаралась выяснить, почему новинка от Samsung поломалась почти у всех, кто ее получил. Оказалось, что дело не в неряшливости корейской компании, а в том, что смартфон основан на OLED-дисплее, а он сам по себе гораздо тоньше,...

[Перевод] Оттенки значений в английском языке: как использовать глаголы Advise, Recommend, Suggest Английский язык часто воспринимается как нечто не столь сложное, как некоторые другие языки – взять тот же немецкий. Но на самом деле в нем есть достаточное количество трудностей и тонких моментов («Пишется Ливерпуль, а читается Манчестер» ). Один из них, вызывающий личн...

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

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

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

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

Морти, мы в UltraHD! Как посмотреть любой фильм в 4K, дорисовав его через малоизвестную нейросеть Наверное, вы слышали про технологию Яндекса DeepHD, с помощью которой они как-то раз улучшили качество советских мультфильмов. Увы, в публичном доступе ее еще нет, а у нас, рядовых программистов, вряд ли найдутся силы написать свое решение. Но лично мне, как обладателю Retin...

Lenovo украла фанатское видео, чтобы рекламировать складной Motorola RAZR Уже давно не секрет, что Motorola работает над собственным складным смартфоном. Мы уже даже видели изображения этого смартфона, но ранее это были лишь слухи, а теперь стало известно, что Lenovo, чьей «дочкой» является Motorola, поделилась со СМИ видео, на котором показан но...

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

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

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

Почему никогда не поздно начать изучение Java (или других ЯП) Автор статьи: Джон Селавски (John Selawsky). Любви все возрасты покорны. Многие соглашаются с этим выражением, однако мы убеждаем себя, что уже поздно учиться или менять профессию. Почему бы нам не использовать этот подход ко всему, что мы бы хотели достичь, особенно когд...

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

Что умеет самый необычный менеджер задач? Я фанат ежедневников для записи дел. Какие только я не пробовал — и компактные Moleskine, чтобы делать быстрые заметки, и большие формата A4 для планирования своего дня чуть ли не по минутам. Но раз за разом возвращался к тому, что у такого подхода нет гибкости и како...

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

Как делиться паролем Wi-Fi при помощи QR-кода в Android 10 Если ваш смартфон работает под управлением Android 10 (также известной как Android Q), тогда вы можете очень быстро поделиться своей сетью Wi-Fi с друзьями, используя старый добрый QR-код. Смартфон того, с кем вы делитесь Wi-Fi не должен работать под управлением новейшей ве...

[Перевод] Зачем нужны дженерики? Эта статья о том, что будет означать добавление дженериков в Go, и почему я считаю, что нам это следует сделать. Также я коснусь возможного изменения архитектуры языка ради добавления дженериков. Go вышел 10 ноября 2009-го. Меньше чем через сутки появился первый комментари...

1000 и 1 фидбэк Привет! Меня зовут Евгения Голева, я выступила на TeamLeadConf с докладом про обратную связь и хочу поделиться с вами его вольной расшифровкой. Мне удалось под соусом совсем другого проекта научить инженеров давать обратную связь гораздо лучше, чем они делали это раньше. Для...

Советский центр управления полетами времен «Востоков» и «Восходов» Написать эту статью меня побудила вот эта фраза Филиппа Терехова из его обзора фильма «Время Первых»: «Отдельная интересная история с Центром управления полетами, как он показан в фильме. Увы, но красивая картинка выше представляет собой копию американского ЦУПа…Внутренн...

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

pg_stat_statements + pg_stat_activity + loq_query = pg_ash? В качестве короткого дополнения к статье Попытка создать аналог ASH для PostgreSQL. Задача Необходимо связать историю представлений pg_stat_statemenets, pg_stat_activity. В результате, используя историю планов выполнения из сервисной таблицы log_query, можно получить очень ...

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

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