Pull to refresh
15
0
Андрей @Dink

Пользователь

Send message

Бесконечный скролл с баннерами, или Как обойтись тремя вьюхами

Reading time 10 min
Views 11K

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

Бесконечный/цикличный скролл в iOS стандартными средствами не реализовать, нужно идти на разные ухищрения. В этой статье я расскажу, какие варианты решения задачи лежат на поверхности и какой вариант мы в итоге реализовали.
Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Comments 7

Мега-Учебник Flask, Часть XIV: Ajax

Reading time 17 min
Views 42K

(издание 2018)


Miguel Grinberg




Туда Сюда


Это четырнадцатая часть Мега-Учебника Flask, в которой я собираюсь добавить функцию перевода текста в реальном времени, используя службу перевода Microsoft и немного JavaScript.

Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Comments 3

Обобщаем анимацию таблиц в iOS приложениях

Reading time 6 min
Views 11K
image

Пользователи хотят видеть изменения


Анимированное обновление списков всегда было непростой задачей в iOS. Что неприятно, это всегда было рутинной задачей.

Приложения крупных компаний, таких как Facebook, Twitter, Instagram, VK, используют таблицы. Более того, почти каждое iOS приложение написано с использованием UITableView или UICollectionView и пользователи хотят видеть, что изменяется у них на экранах, по этой причине reloadData не подходит для обновления экрана. Посмотрев несколько уже имеющихся фреймворков для данной задачи, я удивился, как много они в себе обобщают, помимо расчета анимаций. Некоторые же вообще при вставке одного элемента в начало, радостно сообщали о перемещениях всех остальных элементов.

Начав решать проблему обобщения построения и запуска анимаций, я ещё не понимал такого количества наличия подводных камней в дебрях UIKit. Но обо всём по порядку.
Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Comments 1

Data Science: Про любовь, имена и не только

Reading time 13 min
Views 29K
Что значит имя? Роза пахнет розой,
Хоть розой назови ее, хоть нет.

• Шекспир "Ромео и Джульетта" (пер. Пастернака)

Ромео и Джульетта


Данная статья не может служить поводом для выражения нетолерантности или дискриминации по какому-либо признаку.


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


Это примерно все равно, что сказать: вероятность быть сбитым машиной, если тебя зовут Сережа, выше, чем если бы тебя звали Костя! Звучит довольно дико, не правда ли? Ну, как минимум, ненаучно. Однако социальные сети сделали возможным сравнительно просто проверить приведенное выше утверждение.


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

Читать дальше →
Total votes 75: ↑69 and ↓6 +63
Comments 53

Эффективный расчёт области видимости и линии взгляда в играх

Reading time 16 min
Views 37K
image

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

image

Имея параметры видимости наблюдателя (направление взгляда, расстояние видимости и угол поля зрения), нам нужно найти видимую для него область, т.е. определить область видимости (field of view, FoV). Если препятствия отсутствуют, это будет сектор круга, состоящий из двух граней (радиусов) и соединяющей их дуги (см. Рис. 1). Кроме того, имея заданную точку мира, мы должны быстро определить, видима ли она для наблюдателя, т.е. необходимо обрабатывать запросы линии взгляда (line of sight, LOS) для заданной точки. Обе эти операции можно выполнить достаточно эффективно для использования при рендеринге в реальном времени.
Читать дальше →
Total votes 130: ↑126 and ↓4 +122
Comments 27

27 open-source ништячков для iOS разработчика

Reading time 7 min
Views 24K

1. DZNEmptyDataSet


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

С этой библиотекой вам необходимо всего лишь соответствовать определённым протоколам и iOS сама позаботиться о просмотре коллекций и выделит необходимое особым шрифтом, в виде красивых сообщений для пользователя. Элементарное решение для каждого проекта под iOS.

image


Total votes 29: ↑23 and ↓6 +17
Comments 9

Собираем DJI f450 или почему я не купил Phantom 3

Reading time 4 min
Views 47K
Немного истории. Квадрокоптер типа f450 у меня уже около 3х лет. За все это время на нем поменялись 3 комплекта двигателей, 2 комплекта регуляторов и пропеллеров: от дешевых turnigyдо t-motor. Но в итоге, после выхода комплекта E300 от DJI, я остановился именно на них. Этот набор* вместе с рамой я заказал с ebay.


Читать дальше →
Total votes 18: ↑15 and ↓3 +12
Comments 23

Ваш wi-fi расскажет мне, где вы живёте, где работаете и где путешествуете

Reading time 3 min
Views 145K

Москва вайфайная

Многие знают, что ваши мобильные устройства распространяют информацию об их предыдущих соединениях. Большинство не имеет об этом представления.

Пробы WiFi


Чтобы соединиться с уже известными сетями, которые не сообщают о своём присутствии, все ваши мобильные устройства отправляют пробные пакеты, чтобы найти известные им сети. Эти пакеты можно перехватить, когда телефон включается, или когда он отсоединяется от сети. Для этого используются обычные инструменты — airodump / tcpdump. Пример:

# airodump-ng -w wifi-dump wlan0
# tcpdump -n -l -e -r wifi-dump.cap |
    grep 'Probe Request ([^)]'


Вывод содержит время, MAC-адрес устройства и имя сети. Пример:

16:32:26.628209 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:50:ea:d6:aa:bb:cc
    Probe Request (SUBWAY) [1.0 2.0 5.5 11.0 Mbit]


То бишь, устройство 50:ea:d6:aa:bb:cc проверяло, есть ли сеть SUBWAY в пределах доступности.

Ну и что тут плохого?


Ну испускают они эти пакеты с именами сетей. Подумаешь.
Читать дальше →
Total votes 64: ↑61 and ↓3 +58
Comments 51

Пробуем Xcode Live Rendering

Reading time 6 min
Views 15K
Как вы знаете, в Xcode 6 и iOS 8 SDK Apple добавила возможность рендеринга кастомных компонентов и редактирования их свойств прямо в стандартном Interface Builder (здесь должно быть едкое упоминание о том, что это было еще в Delphi древних версий).

Основы


Для начала нам понадобится какой-то самодельный наследник UIView, чтобы заставить Xcode рендерить его в Interface Builder. Для этого его нужно пометить атрибутом IB_DESIGNABLE (технически в Objective-C это макрос, ну раз Apple называет это атрибутом, и в Swift это атрибут, так тому и быть):
IB_DESIGNABLE
@interface XXXStaticPriceView : UIView

@property (nonatomic, copy) IBInspectable NSNumber *price;
@property (nonatomic) IBInspectable NSUInteger amount;
@property (nonatomic) IBInspectable NSNumberFormatterRoundingMode roundingMode;

@property (nonatomic, getter = isHighlighted) IBInspectable BOOL highlighted;

@property (nonatomic, copy) IBInspectable UIColor *textColor;
@property (nonatomic, copy) IBInspectable UIColor *outlineColor;

@end

Теперь можно создать storyboard (или xib) и разместить там наш view, и Xcode должен будет его успешно отобразить (предварительно собрав проект):

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

Встраиваем Touch ID в iOS приложение

Reading time 8 min
Views 30K


Вступление


Начиная с iOS 8 Apple открывает доступ к возможности использования технологии Touch ID (аутентификации с помощью сканера отпечатков пальцев, встроенного в iPhone 5s) в сторонних приложениях. В связи с этим я хотел бы поделиться с вами подробной информацией о том, что же именно стало доступно разработчикам, как это встроить в свое приложение, каким поведением это обладает, а также поделиться удобной «оберткой», которая реализует наиболее, на мой взгляд, вероятный сценарий использования Touch ID.
Читать дальше →
Total votes 19: ↑19 and ↓0 +19
Comments 21

Анализ дружеских связей VK с помощью Python. Продолжение

Reading time 14 min
Views 68K
В предыдущей статье мы на основе общих друзей ВКонтакте строили граф, а сегодня поговорим о том, как получить список друзей, друзей друзей и так далее. Предполагается, что вы уже прочли предыдущую статью, и я не буду описывать все заново. Под хабракатом большие картинки и много текста.
Читать дальше →
Total votes 33: ↑31 and ↓2 +29
Comments 21

Micromouse — конкурс для маленьких роботов

Reading time 1 min
Views 6.7K


Micromouse — это конкурс для маленьких роботов-мышей по поиску пути в центр лабиринта размером 16х16 ячеек. Мероприятие популярно во многих странах, особенно в Великобритании, Японии и Южной Корее. Лабиринт представляет собой сетку из квадратов по 16 штук в длину и ширину, каждый квадрат имеет размеры стен 18 см. и высотой 5 см.
Читать дальше →
Total votes 66: ↑66 and ↓0 +66
Comments 21

Правильные барабаны для выбора времени

Reading time 3 min
Views 5.3K
Недавно я написал о том, каким вижу будильник своей мечты для Андроида. Спасибо всем, кто предложил свою помощь с его воплощением.

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

А сегодня я расскажу о то, как сделать качественный барабан выбора времени для этого приложения. Эти же принципы можно применить на любые другие барабаны-выбиралки.
Читать дальше →
Total votes 26: ↑14 and ↓12 +2
Comments 21

Написание покерного бота

Reading time 11 min
Views 46K
Внимание материал носит чисто ознакомительный характер, и автор не несет ответственности за закрытие аккаунтов покерными румами. По законам стран создание и использование ботов не запрещено, однако по правилам покерных румов они запрещены.

В данной статье полных исходных кодов не будет, только теоретически что и как можно использовать, и некоторые куски функций. Если ты интересуешься этим, тебе не составит собрать все в единую картину и написать свое. Так же не буду учить стратегиям игры, про термины или стратегии а так же правила можно в интернете найти много информации.
Читать дальше →
Total votes 53: ↑45 and ↓8 +37
Comments 42

Логически прозрачные нейронные сети и производство явных знаний из данных

Reading time 5 min
Views 7.2K
В продолжение темы эволюции нейросетей.
image
Производство явных знаний из накопленных данных — проблема, которая намного старше чем компьютеры. Обучаемые нейронные сети могут производить из данных скрытые знания: создается навык предсказания, классификации, распознавания образов и т.п., но его логическая структура обычно остается скрытой от пользователя. Проблема проявления (контрастирования) этой скрытой логической структуры решается путем приведения нейронных сетей к специальному “логически прозрачному” разреженному виду.
Перед каждым исследователем, решившим использовать нейронные сети, встают два вопроса: “Сколько нейронов необходимо для решения задачи?” и “Какова должна быть структура нейронной сети?” Объединяя эти два вопроса, мы получаем третий: “Как сделать работу нейронной сети понятной для пользователя (логически прозрачной) и какие выгоды может принести такое понимание?”
Читать дальше →
Total votes 50: ↑37 and ↓13 +24
Comments 44

Как я делал телевизор на кухне из Samsung'a ue40c6510uw, WD TV Live и 802.11n

Reading time 6 min
Views 26K
Хочу рассказать о том, с чем пришлось встретиться организовывая такую, казалось бы, простую вещь как просмотр фильмов на кухне. Не наступайте на мои грабли, ищите свои.

ТЗ

Все очень просто: на кухне должно быть некое устройство, которое показывает фильмы в 720р (идеально 1080р) популярных форматов в популярных контейнерах. Специальных требований 3: выбор звуковой дорожки по запросу пользователя, наличие беспроводного интерфейса (досадный просчет при ремонте затрудняет прокладывание кабеля) и все богатство должно продаваться в этой стране, с ebay и почтой я не дружу.

Читать дальше →
Total votes 37: ↑34 and ↓3 +31
Comments 104

Все ходы записаны

Reading time 20 min
Views 51K
   Я считаю, что одним из главных устройств, которое должно быть в любом автомобиле, является видеорегистратор. Что это такое и для чего он нужен? По большому счету, это небольшая штука, основная задача которой – записывать всё то, что видит водитель в лобовое стекло своего автомобиля. За этот «бесполезный» кусок китайской пластмассы иной раз хотят очень много денег, поэтому многие считают его покупку нецелесообразной, предпочитая купить какой-нибудь сабвуфер. Однако в жизни любого водителя может случиться (тьфу-тьфу-тьфу) такой момент, когда подобное устройство может оказаться единственным спасением – пройдет всего какой-то миг, а видеорегистратор, в отличие от того же сабвуфера, успеет многократно окупиться. От приключений на дороге никто не застрахован, просто одни вздохнут с облегчением, а к другим моментально придет понимание, что регистратор все-таки нужен. Был.

image

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

Читать дальше →
Total votes 263: ↑223 and ↓40 +183
Comments 179

Хранение своего архива фотографий

Reading time 4 min
Views 98K

Фотографий становится все больше и больше


В последнее время наблюдается «бум» в цифровой фотографии. Мыльница, зеркалка, камера в телефоне или любое другое устройство, способное сделать снимок, есть, пожалуй, у каждого человека. Количество людей увлекающихся фотографией растет с каждым днем. С приходом цифровой фотографии, количество сделанных кадров перестало играть какое-либо значение (это не пленка и сделать лишних 100-200 кадров ничего не стоит). У многих людей есть больших архивы их фотографий и фотографий их друзей, которые никак не структурированы. Поиск нужной фотографии иногда может занимать довольно много времени. Если у вас совсем немного фотографий в личном архиве, то эта статья вряд ли будет вам интересна. Но если у вас несколько тысяч или более снимков, и вы хотите легко ориентироваться в своем архиве, то в эта статья должна быть вам интересна.

Читать дальше →
Total votes 91: ↑63 and ↓28 +35
Comments 155

Побеждаем ELMS Delivery Client

Reading time 3 min
Views 2K
Сначала объясню, о чем речь.
Что такое ELMS? ELMS (e-academy License Management System) — это веб-сайт для распространения ПО, который каждый администратор программы может настроить в соответствии с потребностями своего подразделения. Факультеты-подписчики MSDN Academic Alliance всего мира могут пользоваться ELMS бесплатно, так что ее использование не приведет к дополнительным затратам.

Зачем нужна ELMS? ELMS — это основанная на веб-технологиях система управления, упрощающая распространение ПО среди студентов в соответствии с политикой лицензирования программы MSDN AA.
Ссылка

Основная идея этой системы заключается о том, что пользователь скачивает специальное приложение, которое скачивает установщик лицензионного ПО и разархивирует его. Идея не так чтобы очень хорошая, но на первый взгляд терпимая. Но, как это часто бывает с продуктами Microsoft, всё пошло не так, как надо.
Читать дальше →
Total votes 19: ↑15 and ↓4 +11
Comments 4

Семейный бюджет в Google Docs v3

Reading time 6 min
Views 42K
C Новым Годом всех, кто не может в праздники без мозговой деятельности и без хабра.
Продолжаю полюбившуюся серию постов (раз, два) про теорию и практику ведения семейного бюджета в Google Docs.

Я честно вел свой бюджет, написанный в Google docs год назад, и родил новую версию и новую философию (для себя) ведения бюджета. Чем и спешу поделиться.

Вступление

Я знаю, что есть много специализированных систем для семейного бюджета вроде 4 Конверта или ИзиФинанс, но я люблю все делать сам, ибо это позволяет сделать то, что сам хочешь и своим детищем пользоваться приятнее.

Основные преимущества ведения бюджета на Google Docs:

1. Можно заполнять откуда угодно (ноутбуки, телефоны, айпады) — с помощью Google forms
2. Можно самому разрабатывать логику и визуализацию
3. Надежность и почти 100% отказоустойчивость обеспечена корпорацией зла :)

Немного философии.

Зачем мы начинаем вести бюджет? У каждого есть свои причины: понять, почему за 10 дней до ЗП кончаются деньги; понять, почему долги по кредиткам только растут; понять какие расходы лучше сократить или как накопить денег на новую машину.
Многие финансовые системы предлагают нам завести целую уйму статей бюджета и записываться свои расходы в них, не задумываясь, а зачем нам все это. Я в самом начале пошел тем же путем и столкнулся с тем, что расходы почти невозможно анализировать, т.к. часть из них были явно не постоянными (покупка ноутбука или костюма — явно расходы «по необходимости/желанию») и планировать и анализировать их невозможно.
Сферический бюджет в вакууме — это две статьи: «приход» и «расход». Каждый день вписываете расходы и доходы и смотрите, что получается. Потом у вас появляются мысли, а что мы хотим анализировать? Кто-то хочет посмотреть, а сколько в итоге уходит денег на авто (бензин, страховка, налоги, ремонт, мойка), кому-то интересно понять, сколько он тратит на развлечения (походы в рестораны, кино, бары).
Я советую делить статьи расходов не более чем на 10-15 позиций исходя из того, что вы хотите анализировать в этом году/квартале.

Мои статьи расходов выглядят примерно так:
image

А самое интересное — как это сделать в Гуглодоксах с подробными инструкциями и формулами и примеров — под катом.
Читать дальше →
Total votes 118: ↑104 and ↓14 +90
Comments 90

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity