Pull to refresh
0
0
Тимофей @kristoft

Mobile developer

Send message

Анализ публикаций на Хабрахабре за 2017 год. Статистика, полезные находки и рейтинги

Reading time8 min
Views29K


Подходит к концу 2017 год. Пришло время подвести некоторые итоги. Каким был этот год на Хабрахабре? Чтобы ответить на этот вопрос мы, в Cloud4Y, решили собрать статистику по всем публикациям за прошедший с начала года период. В этой статье мы расскажем о том, что показалось нам наиболее интересным.

С 1 января по 18:00 22 декабря 2017 года на Хабрахабре было опубликовано 10684 поста, которые посмотрели около 123 миллионов раз! Мы не включили в счёт 46 мегапостов и публикации, которые были скрыты или перенесены на Geektimes. В среднем в месяц публиковалось около 900 постов, а рекордным стал март.


Читать дальше →
Total votes 92: ↑90 and ↓2+88
Comments35

Управление памятью в Python

Reading time9 min
Views116K


Одна из главных проблем при написании крупных (относительно) программ на Python — минимизация потребления памяти. Однако управлять памятью здесь легко — если вас вообще это волнует. Память в Python выделяется прозрачно, управление объектами происходит с помощью системы счётчиков ссылок (reference count), и память высвобождается, когда счётчик падает до нуля. В теории всё прекрасно. А на практике вам нужно знать несколько вещей об управлении памятью в Python, чтобы ваши программы эффективно её использовали. Первая вещь, надо хорошо в ней разбираться: размеры основных объектов в Python. И вторая вещь: как устроено управление «под капотом» языка.


Начнём с размеров объектов. В Python есть много примитивных типов данных: целые числа (int), long (версия int с неограниченной точностью), числа с плавающей запятой (они же числа с двойной точностью, double), кортежи (tuple), строковые значения, списки, словари и классы.

Читать дальше →
Total votes 73: ↑71 and ↓2+69
Comments58

Clean Recycler Adapter. Часть 1

Reading time18 min
Views15K

Введение




Списки, списки, списки… Вертикальные, горизонтальные, комбинированные. Практически ни одно мобильное приложение не обходится без них. Более того, нередко приложения состоят из одних только списков.

И если в “однородных” списках нет ничего страшного, то разные типы ячеек уже могут вызывать вопросы, основные из которых:

  • как облегчить изменение и масштабирование типов ячеек
  • как минимизировать количество мест для изменения, снизив риск потенциальных ошибок
  • как избавиться от if-else уродства
  • как избавиться от уродливых проверок на тип и опасных приведений типов
Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments18

8 лекций, которые помогут разобраться в машинном обучении и нейросетях

Reading time2 min
Views85K



Мы собрали интересные лекции, которые помогут понять, как работает машинное обучение, какие задачи решает и что нам в ближайшем будущем ждать от машин, умеющих учиться. Первая лекция рассчитана скорее на тех, кто вообще не понимает, как работает machine learning, в остальных много интересных кейсов.
Читать дальше →
Total votes 47: ↑45 and ↓2+43
Comments5

Информация для адмиралов космических флотилий

Reading time4 min
Views16K


Докладная записка


Мой Адмирал, ваш флот насчитывает сотни, а может и тысячи кораблей. Все они действуют, как единый организм, действуя в одном информационном поле. В качестве канала связи используется радиоэфир, либо лазерная связь в случае работы в условиях радиоподавления (либо радиомолчания). Вероятнее всего, в качестве базового программного обеспечения, на кораблях используется Erlang, а каждый корабль является Нодой вычислительного кластера вашей космической армады. Благодаря этому, боевые программы, выполняемые на флагманском корабле, могут управлять ресурсами любого корабля армады, как своими собственными, координируя боевое взаимодействие. В условиях ведения космической битвы в окрестностях нашей солнечной системы, такой подход показал высокую эффективность, как на испытаниях, так и в реальном бою. Однако, партия ставит перед нами новую задачу: не допускать проникновения противника в пределы нашей солнечной системы, обнаружение противника и борьбу с ним вести на дальних рубежах.

В условиях субсветовых скоростей и огромных расстояний нас подстерегает новый враг. На этот раз технический. Этого врага зовут «временной разрыв» (Time Warp). Что это такое и как с ним бороться (используя Erlang версии 18 и выше), изложено в данной докладной записке. Записка основана на технической документации — Time and Time Correction in Erlang.
Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments27

Рецепты под Android: IoC со вкусом Gradle

Reading time10 min
Views12K
Android-проекты бывают большими. Иногда действительно большими. Один из наших проектов — новостное приложение, которое разрабатывается одновременно под две альтернативные платформы: Android и FireOS, что от Amazon. Это позволяет расширить круг читателей новостей, ведь пользователи читалок Kindle Fire любят почитать:). Однако, это же накладывает обязательство считаться с особенностями каждой из платформ. Например, если в Android вы используете GCM для push-сообщений, то в FireOS вы должны использовать для этого Amazon AWS. Аналогично и для систем покупок внутри приложения: Google in-app billing vs. In-App Purchasing. Но большой размер проекта != большой размер приложения!

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

Что готовим?



Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments2

Передача сообщений между потоками. Классические блокирующие алгоритмы

Reading time12 min
Views36K
Когда-то я вылез из песочницы с совочком в руке и постом о неблокирующих очередях и передаче данных между потоками. Тот пост был не столько об алгоритмах и их реализации, сколько об измерении быстродействия. Тогда же мне в комментариях задали совершенно резонный вопрос об обычных, блокирующих алгоритмах передачи — насколько они медленнее и вообще как выбрать оптимальный алгоритм под конкретную задачу.
Я конечно обещал и с энтузиазмом принялся за дело, даже получил забавные результаты, однако… какой-то изюминки не хватало, выходило скучно и плоско. В результате мой внутренний перфекционист обьединился с моим нескрываемым прокрастинатором и вдвоем они меня одолели, пост надолго осел в черновиках и даже совесть уже не вздрагивала при виде забытого заголовка.
Однако все меняется, появляются новые технологии, старые исчезают в архивах, и я вдруг решил что пришло время отдавать долги и сдерживать обещания. В качестве наказания мне пришлось все переписать с нуля, если скупой платит дважды, то ленивый дважды переделывает, так мне и надо.
Да, за КДПВ извиняюсь — оно конечно совсем из другой предметной области, но для иллюстрации взаимодействия между потоками подходит тем не менее идеально.
Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments37

Архитектура Android-приложений. Часть III — основные части приложения

Reading time7 min
Views70K
Итак, мы уже говорили о происхождении архитектуры ОС Android и о шаблонах, реализованных в этой архитектуре. Теперь настала пора поговорить о том, из чего состоит Android-приложение.

В этой статье будут представлены основные «персонажи» архитектуры Android-приложения.
Читать дальше →
Total votes 58: ↑54 and ↓4+50
Comments7

Shazam: алгоритмы распознавания музыки, сигнатуры, обработка данных

Reading time13 min
Views160K
В ресторане заиграла почти забытая песня. Вы слушали её в далёком прошлом. Сколько трогательных воспоминаний способны вызвать аккорды и слова… Вы отчаянно хотите послушать эту песню снова, но вот её название напрочь вылетело из головы! Как быть? К счастью, в нашем фантастическом высокотехнологичном мире есть ответ на этот вопрос.

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


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

Как же всё это работает?
Читать дальше →
Total votes 64: ↑58 and ↓6+52
Comments22

Intro to RxJava

Reading time1 min
Views26K
В рамках образовательных программ в e-Legion мы проводим лекции по Android-разработке в лаборатории ИТИС КФУ. Двумя из них мы решили поделиться с вами. Лекции посвящены набирающему популярность фреймворку RxJava.

Лекция 1


В лекции рассказано про:
  • Общие идеи фреймворка RxJava, зачем это нужно и как с этим работать
  • Способы создания различных Observable и самые основные операции над ними
  • Основных операторов преобразования Observable, а также о методе cache
  • Операции соединения Observable и их последовательного / параллельного выполнения.


Презентация.
Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments3

OpenBTS (1 часть) — Первое знакомство

Reading time3 min
Views41K
image OpenBTS.org — это открытый проект c исходным кодом на GitHub, призванный провести революцию среди мобильных сетей путем замены устаревших телекоммуникационных протоколов и традиционно сложных запатентованных аппаратных систем использованием Интернет-протокола и программного обеспечения с гибкой архитектурой. Архитектура этой системы является открытой для инноваций, позволяя любому желающему разрабатывать новых приложения и сервисы на базе OpenBTS и значительно упрощает настройку и эксплуатацию сети мобильной связи.
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments27

Google запустит свою платформу для интернета вещей в этом месяце

Reading time2 min
Views13K
Поисковый гигант объявил, что релиз платформы для интернета вещей состоится уже в мае. Разработчики по всему миру получат доступ к SDK и хардверной части, которая плавно интегрируется с устройствами.


Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments7

Китай. Завод устройств для «Умного дома». Учимся и учим

Reading time8 min
Views14K
Российский рынок профессионального оборудования автоматизации для дома и здания (aka Умный дом) всегда был заполнен европейскими и американскими брендами. Европейские компании, продукцию которых можно встретить в строительных магазинах — ABB, Schneider Electric, Legrand, Gira, JUNG — и американские компании, логотипы которых красуются на сенсорных панелях в офисах класса А — Crestron, AMX — давно работают на этом рынке, оснащая дорогие дома «умными» возможностями. Но рынок растет, оборудования нужно много и производство приходится переносить в Китай. Не удивительно, что часть китайский компаний, ранее специализировавшихся на OEM производстве, использовала заработанные деньги на создание собственного R&D подразделения. А значит и собственного уникального бренда.
Читать дальше →
Total votes 20: ↑16 and ↓4+12
Comments1

Шаблон интерфейса для «умного дома» на Ардуино

Reading time8 min
Views24K
Здравствуйте. Целью написания данной статьи является желание поделиться с общественностью накопленной информацией и, конечно же, узнать что-то новое. Я опишу, как подключить ардуину к роутеру и как сделать шаблон веб-интерфейса для управления ардуиной, а точнее, для дискретного «дёрганья ножками».

image

Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments8

Indoor «GPS» с точностью +-2см

Reading time5 min
Views60K
День добрый, коллеги!

Все началось с того, что мы, как и многие, тоже делали роботов — автономных, мобильных, с кучей сенсоров и огромным потенциалом. Вообще-то, мы все еще продолжаем их делать. Но в очередной раз столкнувшись с одной из ключевых задач роботов — определением своего положения в пространстве и навигацией в помещении — мы решили сфокусироваться на решении этой задачи. Вот, что из этого получилось.
Читать дальше →
Total votes 45: ↑40 and ↓5+35
Comments65

Курс молодого бойца. Практический курс по Cisco Packet Tracer

Reading time4 min
Views420K
Быстрый старт

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

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

Собственно после этого и началось создание «Курса молодого бойца» по сетевым технологиям.

image
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments8

Список ресурсов для изучения Ассемблера

Reading time4 min
Views438K
Доброго времени суток!
Некоторым программистам иногда приходит в голову мысль «а не изучить ли мне ассемблер?». Ведь на нем пишут самые (с некоторыми оговорками) маленькие и быстрые программы, да и охота ощутить вкус низкоуровневого программирования берет свое. Ну и для общего развития не повредит.
Мысль эта не обошла стороной и меня. Вдохновившись историей одного байта, я ринулся в бой…

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

UPD
В список начали добавляться ресурсы по программингу микроконтроллеров.
Читать дальше →
Total votes 135: ↑130 and ↓5+125
Comments46

ARM-ы для самых маленьких: компоновка-2, прерывания и hello world!

Reading time9 min
Views40K


Нашел возможность «добить» цикл еще одной статьей, где я подведу небольшой итог. По сути, только сейчас мы добрались до того, с чего, обычно, начинают программировать:
  • рассматриваем «сложный» сценарий компоновки GNU ld;
  • учимся использовать прерывания;
  • наконец добираемся до hello world!


Предыдущие статьи цикла:


Примеры кода из статьи: https://github.com/farcaller/arm-demos

Читать дальше →
Total votes 63: ↑59 and ↓4+55
Comments9

Как сисадмину не остаться без работы

Reading time4 min
Views96K

И при этом не попасться




Если ты админ, тебе нечем заняться, и твоя компания не нуждается в тебе ежедневно, то тебя, возможно, сократят в ближайшее время за ненадобностью. В данной статье я собрал лучшие практики от системных администраторов, которые умеют обеспечить себя работой настолько, что компания не может прожить без них и дня. Эти практики позволяют даже строить целые ИТ-отделы, там, где тебе было нечем заняться. Применять их или нет – остается на твое усмотрение:
Читать дальше →
Total votes 99: ↑71 and ↓28+43
Comments102

Лазерный пистолет из светового пистоля для Nintendo

Reading time1 min
Views35K
Не так давно я публиковал новость об умельце, который смог сделать очень стильный лазерный пистолет, который может поджечь или прожечь насквозь большое количество материалов. На этот раз на глаза попался не менее интересный проект. Интересен он тем, что этот пистолет создали на основе светового гаджета для стрельбы по уткам (Duck Hunt для Nintendo). Помнится, пройти «Утиную охоту» у меня так и не получилось, но здесь все намного интереснее.

Вот немного подробностей (список комплектующих):

2.1A input buck driver,
2x 750mAh 35-70c Lipo batteries,
M140 445nm diode,
G2 lens.


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

К сожалению, пистолет не издает звук «пиу-пиу», но его с успехом моделирует один из разработчиков.

Total votes 31: ↑27 and ↓4+23
Comments40

Information

Rating
Does not participate
Location
Краснодар, Краснодарский край, Россия
Date of birth
Registered
Activity