Backend developer
Как попасть на дачу президента в пять часов утра

Практическая работа с Intel IoT Developer Kit, Intel XDK, Edison, облаками и Твиттером

Многие, кто в первый раз берёт в руки Intel Edison, не знают с чего начать. Сегодня мы узнаем, как создавать простые проекты с большими возможностями. Будет рассмотрено подключение к облачному сервису, реагирование на твиттер-сообщения, создание мобильных приложений Cordova, работа с эмулятором мобильного устройства и просмотр графиков по данным с сенсора, которые хранятся в облаке. Всё это стороны Internet of Things (IoT) — интернета вещей.
Обработка ошибок в Rust

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

Севший не вовремя телефон — причина нервного расстройства и последующей затяжной депрессии не одной тысячи человек. Даже если нет важного разговора, все равно разряженный мобильный друг расстраивает. А если еще и поговорить срочно нужно — вообще хоть с моста бросайся. Но не все так мрачно — есть много вариантов, как вернуть к жизни своего электронного помощника. Это и адаптер для батареек, и повербанк, и «быстрый» адаптер, с поддержкой Quick Charge. Вот последний вариант и хочется обсудить.
Дело в том, что уже несколько лет компания Qualcomm выпускает чипы, которые совместимы с технологией быстрой зарядки. Сама технология, которая широко распространена сейчас, называется Quick Charge 2.0 — ее поддержка обеспечивается либо использованием отдельной микросхемы в системе, либо совместимым чипом Snapdragon. По словам разработчиков, эта технология ускоряет зарядку аккумулятора устройства вплоть до 75%.
Большой список научно-фантастических сериалов

Кадр из заставки сериала «Грань»
Предисловие
На Geektimes и Habrahabr уже были статьи со списком Sci-Fi сериалов (Фантастические сериалы — обзор от фаната, Фантастические сериалы и др.). Но все они либо содержали достаточно мало сериалов и/или поверхностную информацию о них самих, либо были предвзяты в отношении тех или иных сериалов.
В данной публикации я постараюсь предоставить большой список научно-фантастических сериалов. А благодаря голосованию — узнать какие сериалы на самом деле нравятся пользователям Geektimes.
Запущена первая в мире ММО-стратегия для программистов

В ноябре прошлого года мы запустили краудфандинговую кампанию на Indiegogo, собранные средства с которой позволили доработать прототип до полноценного продукта. Весь июнь и июль получившие приглашение игроки тестировали версию Early Preview. И вот, теперь мы объявляем о публичном запуске этого необычного проекта. Встречайте Screeps!
Под катом небольшое описание, отзывы и технические подробности проекта.
Введение в machine learning: с чего начать изучение и как применять

Машинное обучение — это математическая дисциплина, изучающая алгоритмы способные выделять знания из данных. Несмотря на то, что эта дисциплина в основном теоретическая, в жизни большинства людей она с каждым годом играет все большую и большую роль. Так, сложно сейчас встретить человека, который бы ничего не слышал о торговых роботах, Яндексе, Google Street View, Siri.
В докладе коллеги Алексадра Сенова из проекта Synqera для очередного нашего технического i-Free meet-up проведен небольшой экскурс в машинное обучение. Из него мы узнаем чуть больше про области применения, рассмотрим основные задачи, возникающие в рамках машинного обучения, а так же алгоритмы их решения. Уделим внимание проблемам, возникающим при их применении, приведем пару примеров и рекоммендаций по дальнейшему изучению.
Интерполяция данных: соединяем точки так, чтобы было красиво

Ускоряем запуск BeagleBone или runit не для чайников

В устройствах, которые мы разрабатываем и производим, требуется быстрый запуск после холодного старта. Для приборов без полноценной операционной системы (в них мы используем NutOS, он же EtherNut) такой проблемы нет — они готовы к работе через пару секунд после включения. Зато в более сложных и продвинутых, с linux внутри, и особенно в портативных измерительных системах, вопрос ускорения алгоритмов инициализации более чем актуален.
В пилотной версии своего коммутатора 10G ethernet мы использовали хорошо известную плату Beaglebone и процесс загрузки, если не считать qemu-эмулятор, с удовольствием отлаживали на ней. Кстати, эта пилотная версия 10-гигабитного свича с управляющей beaglebone-платой (на фотографии к статье) стоит у нас в серверной и пару лет успешно работает,
Сразу скажу, что переход на runit дал ускорение запуска системы на 500MHz arm-процессоре с полминуты до шести с копейками секунд.
Disclaimer: эта заметка была написана для внутреннего wiki нашей компании, и, поскольку далеко не все разработчики ПО системные администраторы, я посчитал нужным объяснить некоторые моменты максимально простым и понятным языком.
Управление разработкой программного продукта на основе рисков

Эта статья адресована тем, кто имеет отношение к разработке программного продукта. Понимание принципов управление процессом разработки не менее важно, чем фактические знания технологий программирования. Статья не адресована только тем, кто хочет стать или работает руководителем проекта (Project Manager), Понимание принципов управления принесет пользу на любой должности и в любой команде.
Семь видов интерпретаторов виртуальной машины. В поисках самого быстрого
Все проблемы в области Computer Science могут быть решены введением дополнительного уровня косвенности. За исключением одной: слишком большого числа уровней косвенности.
All problems in computer science can be solved by another level of indirection, except for the problem of too many layers of indirection.
Программные интерпретаторы известны своей невысокой скоростью работы. В этой статье я расскажу, как их можно ускорить.
Я давно уже хотел поподробней остановиться на создании интерпретаторов. Прямо таки обещал, в том числе самому себе. Однако серьёзный подход требовал использования более-менее реалистичного кода для примеров, а также проведения измерений производительности, подтверждающих (а иногда и опровергающих) мои аргументы. Но наконец-то я готов представить почтенной публике результаты, причём даже чуть более интересные, чем собирался.
В данной статье будет описано семь способов построения программной ВМ для одной гостевой системы. От самых медленных мы проследуем к более быстрым, поочерёдно избавляясь от различных «неэффективностей» в коде, и в конце сравним их работу на примере одной программы.
Тех, кто не боится ассемблерных листингов, испещрённого макросами кода на Си, обильно удобренного адресной арифметикой, goto и даже longjmp, а также программ, использующих копипаст во имя скорости или даже создающих куски самих себя, прошу пожаловать под кат.
Про Бурали-Форти, Пуанкаре и то самое определение единицы

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

Я расскажу о применении различных способов аутентификации для веб-приложений, включая аутентификацию по паролю, по сертификатам, по одноразовым паролям, по ключам доступа и по токенам. Коснусь технологии единого входа (Single Sign-On), рассмотрю различные стандарты и протоколы аутентификации.
Перед тем, как перейти к техническим деталям, давайте немного освежим терминологию.
- Идентификация — это заявление о том, кем вы являетесь. В зависимости от ситуации, это может быть имя, адрес электронной почты, номер учетной записи, итд.
- Аутентификация — предоставление доказательств, что вы на самом деле есть тот, кем идентифицировались (от слова “authentic” — истинный, подлинный).
- Авторизация — проверка, что вам разрешен доступ к запрашиваемому ресурсу.
Например, при попытке попасть в закрытый клуб вас идентифицируют (спросят ваше имя и фамилию), аутентифицируют (попросят показать паспорт и сверят фотографию) и авторизуют (проверят, что фамилия находится в списке гостей), прежде чем пустят внутрь.
Аналогично эти термины применяются в компьютерных системах, где традиционно под идентификацией понимают получение вашей учетной записи (identity) по username или email; под аутентификацией — проверку, что вы знаете пароль от этой учетной записи, а под авторизацией — проверку вашей роли в системе и решение о предоставлении доступа к запрошенной странице или ресурсу.
Однако в современных системах существуют и более сложные схемы аутентификации и авторизации, о которых я расскажу далее. Но начнем с простого и понятного.
Купить в Европе, доставить в Финляндию, и все-таки вернуть VAT
Но, к сожалению, не все интернет-магазины с этим согласны, видимо «безграничное» пространство Европы все-таки удобнее.
Ну, ладно, доставить можно на pochta.fi в Финляндию, заберет друг, когда поедет за сыром и Fairy, а что делать с НДС, не хочется терять этот бонус.
И тут есть выход, не самый простой, но если VAT больше 20-30 евро, есть смысл попытаться.

Основы успешной реализации push-уведомлений для мобильных приложений

Топ-10 data mining-алгоритмов простым языком

Примечание переводчика: Мы довольно часто пишем об алгоритмической торговле (вот, например, список литературы по этой теме и соответствующие аналитические материалы) и API для создания торговых роботов, сегодня же речь пойдет непосредственно об алгоритмах, которые можно использовать для анализа различных данных (в том числе на финансовом рынке). Материал является адаптированным переводом статьи американского раработчика и аналитика Рэя Ли.
Сегодня я постараюсь объяснить простыми словами принципы работы 10 самых эффективных data mining-алгоритмов, которые описаны в этом докладе.
Когда вы узнаете, что они собой представляют, как работают, что делают и где применяются, я надеюсь, что вы используете эту статью в качестве отправной точки для дальнейшего изучения принципов data mining.
Датчики и микроконтроллеры. Часть 1. Матчасть

В этом цикле я расскажу о датчиках — как о немаловажном элементе системы управления неким объектом или тех. процессом.
Все свое повествование я буду вести касаемо практических вопросов реализации цифровых систем управления на базе микроконтроллеров.
Руководство не претендует на всеобщий обхват вопроса.
Хотя после того, как мой конспект перелез за 20 страниц текста, я решил разбить статью на следующие части:
- Часть 1. Мат. часть. В ней мы рассмотрим датчик, не привязанный к какому-то конкретному измеряемому параметру. Рассмотрим передаточные функции и динамические характеристики датчика, разберемся с его возможными подключениями.
- Часть 2. Датчики климат-контроля. В ней я рассмотрю особенности работы с датчиками температуры, влажности, давления и газового состава
- Часть 3. Датчики электрических величин. В ней я коснусь измерения тока и напряжения
Знакомство с XACML — стандартом для Attribute-Based Access Control
Стандарт переживает уже третью и, скорее всего, не последнюю редакцию, история его ведет свой отсчет с 2003 года. Курирует и поддерживает стандарт организация OASIS. Этот стандарт описывает необходимые компоненты системы, их назначение, способ их взаимодействия и использования. По сути, он охватывает все, что нужно, до мелочей.
В данной статье будут рассматриваться способ выражения бизнес-правил в виде политик безопасности, основные компоненты системы безопасности, ее интеграция и другие моменты, стандартом не затрагиваемые, но не менее важные и интересные. Приглашаю всех читателей познакомиться с этими вопросами подробнее. Также приветствуются любые замечания, комментарии, вопросы и критика.
Что не так с интерфейсами авиасервисов #2: Как Aviageek изменился после поста на Хабре

В прошлом топике мы рассказывали о том, как наш проект «Авиагик» решает распространенные интерфейсные проблемы авиасервисов. Проект находится в стадии прототипа, поэтому обратная связь для нас ценна, как ничто другое. Аудитория Хабра нас не подвела — материал получил большой отклик и собрал более сотни комментариев, авторы которых высказывали свои пожелания к интерфейсу и говорили о том, какие решения им показались не самыми удачными.
Мы тщательно проанализировали полученные отзывы, создали новую версию интерфейса и сегодня представляем вашему вниманию финальный прототип «Авиагика» перед непосредственным запуском сервиса.
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Registered
- Activity