Сортировка пузырьком в коде Qualcomm

Автор: admin от Сегодня, 16:15, посмотрело: 8

Забавной находкой поделился сегодня пользователь fj333 с Reddit. Разбираясь в появившемся год назад проприетарном коде Qualcomm Technologies для Android, он обнаружил, что неизвестный программист решил в production-коде использовать сортировку пузырьком для того, чтобы найти… максимум в массиве.



Посмотреть исходный файл вы сможете по ссылке на Github или же под катом, а оценить его в работе может любой владелец устройства с Qualcomm Snapdragon 200 MSM8610 под управлением Android.



Как известно любому, кто знаком с алгоритмами сортировки, сортировка пузырьком — алгоритм учебный, и в промышленном коде не применяющийся в силу своей неэффективности; дело в том, что в наихудшем и среднем случаях он имеет сложность О(n2), к тому же его емкостная сложность в данном случае — O(n). Кого это не убедило — использовать сортировку пузырьком не рекомендует даже Барак Обама.



И это всё не учитывая того, что для поиска максимума хватило бы и простого перебора.
->

Категория: Программирование

 

Выбранный UI-фреймворк – вред. Архитектурные требования – профит

Автор: admin от Сегодня, 12:50, посмотрело: 13

Выбранный UI-фреймворк – вред. Архитектурные требования – профит


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




  • Войти в метро теперь – не просто кинуть пятачок, а приложить карту Тройка, записанную на телефон и учитывающую пересадку.

  • Позвонить по телефону и посмотреть телевизор – давно уже не провести два провода в квартиру и вносить фиксированную абонентскую плату, а triple play с кучей опций и возможностей.

  • Посмотреть дневник сына – на святое же покусились! – теперь можно с планшета, заодно ответив на комментарий классного руководителя о его неудовлетворительном поведении.



Ну и я уже молчу про всякие Tinkoff, Apple Pay, Google Now, умные дома и многое другое.



Как следствие, в любой компании растут IT-отделы. То, чем раньше занимались несколько десятков сотрудников, сейчас делают команды из тысяч и десятков тысяч человек (кстати, поделитесь в комментариях, как выросли ваши IT-отделы).



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

Категория: Программирование, Веб-разработка

 

Starbucks следует открыть публичный доступ к своим API

Автор: admin от Вчера, 22:10, посмотрело: 17

Мобильное приложение Starbucks — один из самых известных кейсов в ecommerce. Автор материала — программист опытным путем доказывающий, почему стоит открыть API этого приложения.



Starbucks следует открыть публичный доступ к своим API



Мотивация



Стоит отдать должное приложению Starbucks — оно просто отличное. Я использую его (как минимум) раз в день. В нем есть все, что мне нужно от отличного мобильного сервиса — кофе, плейлисты хитов 80-х в Spotify и возможность избежать живого общения с другими людьми. Я явно не одинок в своих предпочтениях, так как 20% операций Starbucks в США сейчас производится через мобильные телефоны.



Помимо интеграции Slack и кофейных кнопок существует множество других интеграций, которые можно было бы реализовать, если бы компания открыла свой API для сторонних разработчиков. Она явно движется в этом направлении, поскольку у нее есть и аккаунт в Twitter, и (защищенный паролем) веб-сайт для разработчиков.



Однако я не мог ждать и поэтому решил взять дело в свои руки.
->

Категория: Программирование, Веб-разработка

 

Дженерики и конвертеры в Nim

Автор: admin от Вчера, 17:55, посмотрело: 16

Дженерики и конвертеры в Nim


Всем привет! В данной статье я постараюсь рассказать, что такое generic процедуры и converter’ы в Nim (и показать примеры их использования)



Что такое Nim? Nim – компилируемый (в C, C++, Objective C и JS) высокоуровневый язык программирования со сборщиком мусора, имеющий три основных цели (в порядке приоритета): производительность, выразительность, элегантность. Официальный сайт языка, репозиторий на GitHub.

Также в Nim достаточно развито метапрограммирование (дженерики, шаблоны, макросы).
->

Категория: Программирование

 

Разыменование нулевых указателей больше не проблема

Автор: admin от Вчера, 10:40, посмотрело: 19

Разыменование нулевых указателей больше не проблема



Дефект, который справедливо считается «чумой» современного программирования преодолим. Предлагаем ознакомиться с переводом статьи Бертрана Мейера, французского учёного, создателя языка программирования Eiffel, приглашенного профессора и руководителя Лаборатории программной инженерии Университета Иннополис. Оригинал статьи опубликован в журнале Сommunications of the ACM. ->

Категория: Программирование

 

Что такое SMT и как оно работает в приложениях — плюсы и минусы

Автор: admin от 18-07-2017, 22:30, посмотрело: 25

Пока я радую свои графоманские пристрастия написанием детальной технической статьи про «Windows Performance Station», захотелось поделиться своими мыслями о том, что хорошего и плохого приносит SMT в процессоры «AMD» и «Intel», и как тут поможет «Windows Performance Station».



Что такое SMT и как оно работает в приложениях — плюсы и минусы


Тем, кому интересна данная тема, добро пожаловать под кат…
->

Категория: Программирование, Веб-разработка, Windows

 

Применение принципа poka-yoke в программировании на примере PHP

Автор: admin от 18-07-2017, 18:25, посмотрело: 32

Применение принципа poka-yoke в программировании на примере PHP

Всем привет! Я Алексей Грезов, разработчик Server Team Badoo. Мы в Badoo всегда стараемся сделать так, чтобы наш код было легко поддерживать, развивать и переиспользовать, ведь от этих параметров зависит, насколько быстро и качественно мы сможем реализовать какую-либо фичу. Одним из способов достижения этой цели является написание такого кода, который просто не позволит совершить ошибку. Максимально строгий интерфейс не даст ошибиться с порядком его вызова. Минимальное количество внутренних состояний гарантирует ожидаемость результатов. На днях я увидел статью, в которой как раз описывается, как применение этих методов упрощает жизнь разработчикам. Итак, предлагаю вашему вниманию перевод статьи про принцип "poka-yoke".

->

Категория: Программирование, Веб-разработка

 

Основы CQRS

Автор: admin от 18-07-2017, 12:45, посмотрело: 27

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



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



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

Категория: Программирование, Веб-разработка

 

«Ультимативный» блокчейн-дайджест: полезные материалы на Хабре и другие источники по теме

Автор: admin от 18-07-2017, 09:15, посмотрело: 18

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



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



«Ультимативный» блокчейн-дайджест: полезные материалы на Хабре и другие источники по теме ->

Категория: Программирование

 

QML: как легко получать футболки в конкурсах mail.ru по машинному обучению

Автор: admin от 18-07-2017, 08:40, посмотрело: 14

QML: как легко получать футболки в конкурсах mail.ru по машинному обучению

В субботу завершился месячный конкурс по машинному обучению от mail.ru ML bootcamp 5. я занял в нем 14ое место. Это уже третий мой конкурс, в котором я выиграл одежду и за время участия у меня сформировался фреймворк для помощи в подборе решения в подобных соревнованиях. На примере решения ML bootcamp 5 я опишу как им пользоваться.



Как полагается, сперва покажу товар лицом :)




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

  • Модели для различных усреднений и стэкинга

  • Вспомогательные скрипты для отбора признаков

->

Категория: Программирование

 
Назад Вперед