• Встраиваем локальные уведомления

      Что самое ужасное в случае удаления приложения? Правильно, потеря связи с аудиторией и невозможность проинформировать о том, что у приложения сменился адрес прописки и имя пакета. Задачу решают Push уведомления, но это довольно хлопотно и не всегда удобно. А иногда и дорого.



      Поэтому мы напишем свои, простые как барабан и надежные как танк — локальные push уведомления. Код получился универсальным, и в принципе, его можно использовать как альтернативу обычным «пушам», например для новостной рассылки о том, что вышла новая версия приложения или для клянчанья рейтинга, да для чего угодно.

      функционал под катом
    • Дюжина логических задач с собеседований

        image

        Не знаю, как у вас, но у меня любимая часть интервью — логические задачи.
        Довелось пройти немало собеседований на вакансию разработчика, поэтому набралась небольшая коллекция.
        Спешу поделиться с вами!

        Некоторые задачи проще и широкоизвестные, другие заставляют хорошенько задуматься.
        Ответы пока что публиковать не буду, надеюсь, вы сами сможете всё решить.
        Предлагаю размять свой мозг…
        Читать дальше →
      • Как мы строим авиатренажер: проекционный экран

          Привет!

          Чтобы не повторять собственных ошибок, я решил написать, как мы строим авиатренажер. Потом, когда все уже будет завершено, времени разгребать фотографии и видео не будет, многое будет забыто, да и вообще — лень.

          Мы почти закончили НИОКР с новой визуальной системой для тренажера, который появится в Питере в этом году, и я расскажу, как в процессе работы получился самостоятельный продукт.

          Картинка для привлечения внимания:



          Поехали (осторожно, трафик)
          Читать дальше →
        • Nvidia + Nexus 7 + две лупы + коробка = VR шлем

            Добрый день! В интернете уже накопилось достаточное количество статей по сборке DIY VR шлемов и хабр тому не исключение. Но в большинстве случаев при сборке используются смартфоны с относительно не большими дисплеями, что не позволяет получить широкий угол обзора. Сегодня же мы будем собирать шлем на основе Nexus 7, потратив всего 600 рублей в ближайшем гипермарките. Ну и т.к. главный лозунг этой статьи «Меньше теории, больше практики», хватит лишних слов, начинаем!



            Читать дальше →
          • Обзор наиболее интересных материалов по анализу данных и машинному обучению №3 (обзор онлайн курсов)


              Данный выпуск обзора наиболее интересных материалов по анализу данных и машинному обучению полностью посвящен онлайн-курсам по тематике Data Science. В прошлом выпуске был представлен список онлайн-курсов, стартующих в ближайшее время. В данном выпуске я постарался собрать наиболее интересные онлайн-курсы по теме анализа данных. Стоит отметить, что некоторые курсы уже закончились, но у большинства таких курсов можно посмотреть архив всех учебных материалов.
              Начинается обзор с набора курсов от Johns Hopkins University на Coursera, которые объединены в одной специализации «Data Science Specialization», поэтому имеет смысл рассмотреть их отдельно от остальных курсов. Это 9 официальных курсов специализации и два дополнительных Mathematical Biostatistics Boot Camp 1 и 2, которые официально не входят в специализацию. Важно отметить, что весь набор данных курсов регулярно начинается заново и в общем-то можно достаточно гибко построить свой график продвижения по специализации. Большинство курсов длятся 4 недели. Язык R является основным языком программирования в данном наборе курсов. Далее идет список курсов из специализации Data Science от Johns Hopkins University:
              Читать дальше →
              • +24
              • 25k
              • 5
            • SQLite теперь для мобильных приложений на С# под любую платформу

                image

                Совсем недавно вышла новая версия библиотеки, которая будет полезна С# разработчикам, разрабатывающим или планирующим разрабатывать кроссплатформенные мобильные приложения.

                SQLitePCL может быть использована для реализации локальной базы данных в приложениях для Windows, Windows Store, Windows Phone, Android (Xamarin) и iOS (Xamarin). Она бесплатна и ее код открыт для всех желающих.

                Я проверила ее в действии, чем и хочу с вами поделиться.
                Читать дальше →
              • Подробное сравнение популярных SMS/Voice сервисов для рассылок и авторизаций



                  Десятки мобильных стартапов встречают своего пользователя с экрана SMS-авторизации. Сегодня мы попытаемся разобраться какой сервис удобнее, выгоднее и надежнее всего использовать для регистрации в мобильных проектах, отправки SMS-уведомлений, рассылок и различных других действий.
                  Нажмите чтобы узнать о самых выгодных SMS-провайдерах
                • Wolfram Programming Cloud (Облако Программирования Wolfram) теперь доступно

                  • Translation

                  Перевод поста Стивена Вольфрама (Stephen Wolfram, CEO Wolfram Research).
                  Оригинал поста: Wolfram Programming Cloud Is Live!


                  Двадцать шесть лет назад в этот самый день мы выпустили Mathematica 1.0. И я очень рад, что сегодня тоже станет историческим днем: мы выпускаем Wolfram Programming Cloud (Облако программирования Wolfram) — первый объект в линейке продуктов, основанных на новом Wolfram Language (Языке программирования Wolfram).

                  Wolfram Programming Cloud
                  Читать дальше →
                • Wi-Fi сети: проникновение и защита. 3) WPA. OpenCL/CUDA. Статистика подбора



                    Баста карапузики, кончилися танцы.

                    В предыдущей части мы детально рассмотрели «читерские» приёмы обхода «защит» (скрытие SSID, MAC-фильтрация) и защит (WPS) беспроводных сетей. И хотя работает это в половине случаев, а иногда и чаще — когда-то игры заканчиваются и приходится браться за тяжёлую артиллерию. Вот тут-то между вашей личной жизнью и взломщиком и оказывается самое слабое звено: пароль от WPA-сети.

                    В статье будет показан перехват рукопожатия клиент-точка доступа, перебор паролей как с помощью ЦП, так и ГП, а кроме этого — сводная статистика по скоростям на обычных одиночных системах, кластерах EC2 и данные по разным типам современных GPU. Почти все они подкреплены моими собственным опытом.

                    К концу статьи вы поймёте, почему ленивый 20-значный пароль из букв a-z на пару солнц более стоек, чем зубодробительный 8-значный, даже использующий все 256 значений диапазона.

                    Оглавление:
                    1) Матчасть
                    2) Kali. Скрытие SSID. MAC-фильтрация. WPS
                    3) WPA. OpenCL/CUDA. Статистика подбора
                    По традиции, под катом ещё 15 страниц
                  • Китайский интернет: краткий обзор около-социальных сервисов



                      Пост является значительной переработкой статьи The Complete Guide to China’s Major Social Media Networks с моими правками, комментариями и некоторыми иллюстрациями. А ещё добавил правильное русское чтение китайских сервисов.

                      17 апреля 2014 г. китайский аналог Twitter'а — Sina Weibo – вышел на американскую биржу. Благодаря IPO компания привлекла меньше ожидаемого, однако это, безусловно, большой успех китайских социальных медиа-ресурсов. Поэтому стоит сделать небольшой обзор существующих на сегодняшний день китайских социальных интернет-ресурсов. Разумеется, он не претендует на абсолютною полноту и объективность, поэтому смело пишите свои дополнения и замечания.

                      Платформы и сервисы, о которых пойдёт речь, имеют как настольный, так и мобильный клиент, если прямо не указано другое.
                      Так же следует помнить, что многие иностранные ресурсы – такие, как Facebook, Twitter, YouTube, частично Википедия – заблокироавны в КНР, поэтому местные жители пользуются китайскими аналогами, зачастую не зная о существовании оригиналов. Кроме того, везде существуют списки «плохих слов» (в основном плохих политически), ввод которых блокируется, либо активность таких пользователей тщательно отслеживается. Под Китаем, разумеется, будем иметь в виду его материковую часть, не считая Гонконга, Макао и Тайваня, где цензура компартии не работает.

                      Категории социальных медиа


                      Существуют разные категоризации социальных сервисов. Здесь мы разберём их так, чтобы провести аналогию с западными сервисами.
                      Разумеется, каждый сервис, помимо основного функционала, обладает и многими побочными возможностями, поэтом для категоризации сфокусируемся только на основном назначении того или иного сайта\приложения.
                      Итак...
                    • Обзор компаний-лидеров в области оказания услуг 3D-печати

                        У меня сложилось впечатление, что в России есть стереотип, что зарабатывать на 3d-принтерах можно только двумя способами:
                        1) стать дилером международной компании/создать производство собственных 3d-принтеров
                        2) купить несколько 3d-принтеров и принимать заказы от архитекторов/врачей/военных

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

                        Под катом вас ждет краткий обзор трёх гигантов европейской и американской отрасли 3d-печати, которые не специализируются на выпуске собственных 3d-принтеров, а развивают сообщества, создают "marketplace", выступают площадками для стартапов, дизайнеров и тд. После обзора «большой тройки» следует обзор наиболее интересных проектов, созданных вокруг этих гигантов.

                        К некоторым проектам есть комментарии Константина Иванова (consst), который побывал на европейской(3DPrintShow) и американской(Inside 3D Printing) конференциях.

                        Читать дальше →
                      • Инверсная кинематика: простой и быстрый алгоритм

                        Что такое «Инверсная кинематика»?

                        Задачей инверсной кинематики является поиск такого набора конфигураций сочленений, который обеспечил бы максимально мягкое, быстрое и точное движение к заданным точкам. Однако, множество существующих ныне методов страдают от таких недостатков как высокая вычислительная сложность и неестественность результирующих поз. В этой статье описан новый (вероятно, на момент написания статьи — 2010 г.) эвристический метод под названием «Метод прямого и обратного следования» ( Forward and Backward Reaching Inverse Kinematics, далее просто FABRIK),
                        FABRIK избегает использования вращений и матриц в пользу непосредственного получения точки на прямой. Благораря этому, дело обходится всего несколькими итерациями, имеет низкую стоимость вычислений и визуально естественную позу в результате. FABRIK так-же без проблем справляется с наложением ограничений а так-же использованием нескольких цепей и/или конечных точек. Именно об этом методе этот пост.
                        Читать дальше →
                      • Как определить местоположение по сетям сотовой связи (Cell ID)


                          Карта Участники OpenStreetMap
                           
                          Существует множество способов определения местоположения, такие как спутниковая навигация (GPS), местоположение по беспроводным сетям WiFi и по сетям сотовой связи.
                           
                          В данном посте мы попытались проверить, насколько хорошо работает технология определения местоположения по вышкам сотовой связи в городе Минске (при условии использования только открытых баз данных координат передатчиков GSM).
                           
                          Принцип действия заключается в том, что сотовый телефон (или модуль сотовой связи) знает, каким приемопередатчиком базовой станции он обслуживается и имея базу данных координат передатчиков базовой станции можно приблизительно определить своё местоположение.
                          Читать дальше →
                        • Всё, что вы должны знать о прототипах, замыканиях и производительности

                          • Translation
                          • Tutorial

                          Не всё так просто


                          На первый взгляд, JavaScript может показаться достаточно простым языком. Возможно, это из-за достаточно гибкого синтаксиса. Или из-за схожести с другими известными языками, например, с Java. Ну или из-за достаточно малого количества типов данных, по сравнению с Java, Ruby, или .NET.

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

                          В JavaScript поиск данных зависит от двух вещей: прототипного наследования и цепочек областей видимости. Для разработчика понимание этих двух механизмов совершенно необходимо, ибо ведет к улучшению структуры, а, зачастую, ещё и производительности кода.
                          Читать дальше →
                        • Что общего у бала роботов и всемирной выставки 1889 года?



                            Выражение «Гвоздь программы» возникло после всемирной выставки 1889 года в Париже, на которой открытие Эйфелевой башни, которую быстро окрестили гвоздем, произвело мировую сенсацию. башня оказалась шедевром и следующие 40 лет в мире не могли построить ничего подобного.

                            Мало кто знает, но конструкция эйфелевой башни это не предел инженерной мысли 19 века, это просто прыжок выше головы — ничего подобного эйфелю инженеры не могли придумать ни до, ни 30 лет позже (до постройки шуховской башни в москве в 1922). А все потому, что Эйфель украл свое избретение у природы.


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

                            Читать дальше →
                          • Переходим от MongoDB Full Text к ElasticSearch

                              В своем прошлом посте, с анонсом Google Chrome расширения для Likeastore, я упомянул тот факт, что в качестве поискового индекса мы начали использовать ElasticSeach. Именно ElasticSeach дал достаточно хорошую производительность и качество поиска, после которого было принято решение, выпустить расширение к хрому.

                              В этом посте, я расскажу о том, что использование связки MongoDB + ElasticSeach, есть крайне эффективное NoSQL решение, и о том, как перейти на ElasticSearch, если у вас уже есть MongoDB.
                              Читать дальше →
                            • Перевод учебника по алгоритмам



                                Рад сообщить, что вышел перевод отличнейшего учебника Дасгупты, Пападимитриу, Вазирани «Алгоритмы», над которым я работал последние несколько лет. В книге многие алгоритмы объяснены гораздо короче и проще, чем в других учебниках: с одной стороны, без излишнего формализа, с другой — без потери математической строгости. Откройте книгу на каком-нибудь известном вам алгоритме и убедитесь в этом. =)

                                В общем, угощайтесь: печатный вариант перевода, электронный вариант перевода (PDF), печатный вариант оригинала, электронный вариант оригинала (PDF).
                                Читать дальше →
                              • Data Mining в Big Data: рейтинг цитируемости СМИ в социальных медиа

                                  «Какой же аналитик не любит Big Data!» — так можно перефразировать популярную пословицу про быструю езду. 650 миллионов сообщений соцмедиа от 35 миллионов авторов, 358 миллионов ссылок, из которых 110 миллионов «коротких» — такой объем данных был проанализирован за март 2014г, чтобы составить рейтинг цитируемости СМИ.
                                  В данном посте мы поговорим о методолого-технологических аспектах, а также предложим обсудить идеи «углубленного бурения» Data Mining соцмедиа. Заинтересовавшихся приглашаем под кат.
                                  image
                                  Читать дальше →
                                • Как устроена инфраструктура обработки данных Sports.ru и Tribuna.com?

                                    В первом посте об аналитической системе Sports.ru и Tribuna.com мы рассказали о том, как используем нашу инфраструктуру в повседневной жизни: наполняем контентом рекомендательную систему, наблюдаем за бизнес-метриками, ищем среди пользовательского контента бриллианты, находим ответы на вопросы “Как работает лучше?” и “Почему?”, нарезаем пользователей для почтовых рассылок и строим красивые отчеты о деятельности компании. Всю техническую часть повествования мы скромно спрятали за этой схемой:

                                    Бирюзовым обозначены компоненты в нашей собственной ИТ-инфраструктуре, оранжевым - все то, что мы используем как внешний сервис

                                    Читатели законно потребовали продолжить повествование со смешными котиками, а olegbunin пригласил рассказать о всем, что было скрыто, на РИТ++. Что ж, изложим некоторые технические детали – в продолжении веселого поста.
                                    Читать дальше →
                                    • +42
                                    • 19.4k
                                    • 3
                                  • Динамические деревья

                                      Перед прочтением статьи рекомендую посмотреть посты про splay-деревья (1) и деревья по неявному ключу (2, 3, 4)

                                      Динамические деревья (link/cut trees) мало освещены в русскоязычном интернете. Я нашел только краткое описание на алголисте. Тем не менее эта структура данных очень интересна. Она находится на стыке двух областей: потоки и динамические графы.

                                      В первом случае динамические деревья позволяют построить эффективные алгоритмы для задачи о поиске максимального потока. Улучшенные алгоритмы Диница и проталкивания предпотока работают за и соответственно. Если вы не знаете, что такое поток, и на лекциях у вас такого не было, спешите пополнить свои знания в Кормене.

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

                                      Перед тем, как нырнуть под кат, попробуйте решить следующую задачу. Дан взвешенный граф в виде последовательности ребер. По последовательности можно пройти только один раз. Требуется посчитать минимальное покрывающее дерево, используя памяти и времени. По прочтении статьи вы поймете, как легко и просто можно решить эту задачу, используя динамические деревья.
                                      Читать дальше →
                                      • +50
                                      • 32k
                                      • 5