Непридуманная история о производительности, рефлексии и java.lang.Boolean

Автор: admin от 2-04-2018, 11:00, посмотрело: 42

Однажды, в студёную зимнюю пору (хотя на дворе был март) мне нужно было покопаться в куче (того, что называется heap dump, а не того, о чём вы подумали). Расчехлив VisualVM я открыл нужный файл и перешел в OQL консоль. Пока суд да дело, моё внимание привлекли запросы, доступные из коробки. Особенно в глаза бросался один из них, озаглавленный "Too many Booleans". В его описании английским по белому сказано:



Check if there are more than two instances of Boolean on the heap (only Boolean.TRUE and Boolean.FALSE are necessary).

Чувствуете, да? Вот и я проникся.

Категория: Операционные системы » iOS

 

Как мы в Smart Engines учили Sailfish OS распознаванию

Автор: admin от 2-04-2018, 11:00, посмотрело: 43

Как мы в Smart Engines учили Sailfish OS распознаванию


Всем привет! Как вы уже знаете по нашим статьям, мы в Smart Engines занимаемся распознаванием, причем распознавать мы стараемся на чем угодно и в любых условиях. Мы поддерживаем все популярные операционные системы: iOS, Android, Windows, Linux, MacOS, Solaris. Поддерживаем мы и отечественного производителя: Эльбрус и AstraLinux. Наши алгоритмы оптимизированы под ARMv7-v8, AArch64, x86, x86_64, SPARC, E2K, MIPS.



Поэтому, когда мы увидели нарастающую популярность российской операционной системы Sailfish Mobile OS RUS, мы не смогли обойти ее стороной. Sailfish Mobile OS RUS — это POSIX-совместимая операционная система для мобильных устройств, развиваемая отечественной компанией «Открытая Мобильная Платформа» для решения задач корпоративных пользователей и государственных учреждений. По состоянию на февраль 2018 года является единственной мобильной операционной системой, включенной в реестр Отечественного ПО и прошедшей сертификацию ФСБ по классу АК1/КС1.



В этой статье мы расскажем о своем опыте портирования нашей библиотеки распознавания Smart IDReader (технология Hieroglyph) на Sailfish OS. В ней будет код, ссылки и видео. Мы хотим, чтобы эта статья была технически информативной и полезной в качестве общей инструкции для тех, кто портирует С++ приложения на Sailfish OS.

Категория: Операционные системы » iOS

 

Айфончик, не лагай. Часть 1: многопоточность для практиков

Автор: admin от 2-04-2018, 11:00, посмотрело: 62

Айфончик, не лагай. Часть 1: многопоточность для практиков



Меня зовут Максим, и я алкоголик занимаюсь iOS разработкой уже более 7 лет.



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



Среди кандидатов попадаются кадры, которые курят кальян прямо на Skype собеседовании, пытаются гуглить вопросы на ходу, хотят ЗП 180к за 3 месяца опыта, ведут себя так, как будто гоп-стопнули меня на улице (с соответствующей терминологией) и так далее.

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



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

(Если лень читать, то прилагается видео)

Категория: Операционные системы » iOS

 

Анатомическая метафора кода. Где у кода мускулы

Автор: admin от 2-04-2018, 10:55, посмотрело: 44

Размышлял как-то о коде, программировании и всём таком; бродили всякие мысли. А что если взять, например, и заставить двух разработчиков написать несложные программы по одному ТЗ. Программисты одинакового уровня. Пишут независимо друг от друга. Код у них, естественно, получится разный. Однако если вытащить из кода каждой программы строчки, выполняющие реальную работу (преобразования исходных данных в необходимый результат), и свалить их в две большие «кучи», то эти «кучи» вроде бы должны оказаться сильно похожими. Потому что исходя из поставленной задачи оба программиста, наверное, применят похожие вычисления и преобразования данных. (На самом деле это маловероятно, так как и алгоритмы тоже, скорее всего, будут выбраны разные.)



Тогда и появилась эта безумная аналогия.



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



Анатомическая метафора кода. Где у кода мускулы

Категория: Операционные системы » Windows

 

Введение в квантовые вычисления

Автор: admin от 2-04-2018, 10:55, посмотрело: 74

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



Введение в квантовые вычисления

Категория: Операционные системы » Windows

 

Пример организации кода для сложного Angular проекта

Автор: admin от 1-04-2018, 21:05, посмотрело: 126

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



Пример организации кода для сложного Angular проекта

(Изображение взято из статьи "12 Things to Help Large Organizations Do Angular Right" )



Данная публикация есть практическое осмысление статей "12 Things to Help Large Organizations Do Angular Right" (Victor Savkin, Co-founder of Narwhal Technologies (nrwl.io) и "Angular: Understanding Modules and Services" (Michele Stieven, Web Developer & JS enthusiast) через призму собственного опыта работы с фреймворком.

Категория: Операционные системы » Android

 

Новая микроархитектура процессоров Intel: быстро, но не бесплатно

Автор: admin от 1-04-2018, 21:05, посмотрело: 56

Новая микроархитектура процессоров Intel: быстро, но не бесплатно


Выявление аппаратных уязвимостей Spectre и Meltdown в процессорах Intel поставило перед архитекторами компании сложнейшую задачу – внести в микроархитектуру CPU изменения, обеспечивающие полную безопасность исполнения при сохранении и даже повышении производительности процессоров. Сейчас, полгода спустя, настало время поделиться результатами данной работы. Конечно, не всеми, а только частью, не являющейся Intel Top Secret.

Категория: Операционные системы » Android

 

Нативная валидация как фреймворк. Лекция в Яндексе

Автор: admin от 1-04-2018, 21:05, посмотрело: 83

Разработка форм — один из самых ответственных и сложных этапов создания веб-интерфейсов. Проект должен получить пользовательские данные, проверить их и дать пользователю обратную связь. Современные браузеры предоставляют разработчику встроенный API, позволяющий поэтапно реализовать валидацию данных методом progressive enhancement — от HTML/CSS к JS. Можно ли уже сегодня отказаться от тяжеловесных библиотек для валидации? Какие преимущества обеспечивает нативная валидация и насколько тернист путь её использования? В своём докладе на конференции FrontTalks технический директор LOVATA Павел Ловцевич рассмотрел основные аспекты работы с HTML5 Constraint Validation API.





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

Категория: Операционные системы » Android

 

Модифицируем плеер Vanilla Music под Android (часть 2)

Автор: admin от 1-04-2018, 21:05, посмотрело: 75

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

Категория: Операционные системы » Android

 

Что такое EVPN/VXLAN

Автор: admin от 1-04-2018, 19:30, посмотрело: 62

В этой статье я расскажу — что такое EVPN/VXLAN и почему особенности этой технологии кажутся мне привлекательными для применения в ЦОД. Я не буду глубоко погружать вас в технические детали, а остановлюсь на них лишь в той мере, в которой это необходимо для знакомства с технологией. Почти все чего я буду касаться в этой статье так или иначе связанно с передачей трафика второго уровня OSI между устройствами в одном широковещательном домене. Есть множество задач прикладного характера, которые можно комфортно решить, имея такую возможность, одним из наиболее знакомых примеров такой задачи является миграция виртуальных машин в рамках одного или нескольких ЦОД. И если некоторое время назад разговор об этом неминуемо поворачивал в плоскость обсуждения проблем и неудобств общего широковещательного домена, сейчас, напротив, мы можем размышлять о решении этой задачи с точки зрения новых возможностей, перспектив и удобства.

Категория: Операционные системы » Linux