Pull to refresh
179
0

Мыслитель

Send message

Исследуем RxJava 2 для Android

Reading time 25 min
Views 210K

enter image description here


Меня зовут Аркадий, я Android-разработчик в Badoo. В последнее время в нашем блоге много постов про Go, PHP, JS, QA, и я решил разбавить их темами по мобильной разработке. Как раз занимался портированием одного Android-проекта с RxJava 1 на RxJava 2 и читал всё, что можно найти на эту тему в интернете. В частности, доклад Джейка Вортона с конференции GOTO Copenhagen 2016. Мне показалось, что это достойный кандидат на перевод – думаю, многие Android-разработчики задумываются о переходе на RxJava 2, и им интересно, что изменилось по сравнению с первой версией.


Джейк сделал достаточно объёмное введение о реактивном программировании, так что знание RxJava 1 не требуется для понимания статьи. Доклад был подготовлен, когда RxJava2 ещё только готовилась к выпуску (на текущий момент уже выпущена версия 2.1.0).

Читать дальше →
Total votes 42: ↑41 and ↓1 +40
Comments 5

Java собеседование. Коллекции

Reading time 10 min
Views 888K
С недавнего времени у меня появилась настойчивая мысль, что профессиональное развитие сильно замедлилось и это хочется как-то исправить. Да, читаю книги, слушаю курсы, но в то же время приходит и понимание того, что возможно пришло время сменить работу, здесь вроде как все изучено, плавно уходим в рутину. Данная мысль сподвигла меня на рассылку своего резюме в несколько компаний — лидеров рынка. После прохождения собеседования в 3 из них, я решил, как водится внести свои 5 копеек в освещение обширной темы собеседования, а именно технических вопросов по Java коллекциям, с которыми приходится сталкиваться. Да, знаю, читатель скажет: «коллекции — избитая тема, сколько можно», но часть из приведенных ниже вопросов, я задавал своим знакомым разработчикам, которые занимают именно позиции разработчиков («крепких середнячков», по меркам недалекой от Москвы глубинки, которые уверенно справляются со своей работой на практике, а вот в теории скажем так есть пробелы, потому, что работа не требует решения каких-то нетривиальных задач, да и потому что не всем это интересно — изучать как внутри работает структура данных), вызывало растерянность. Думаю, что рассмотренный материал будет не очень интересен разработчикам выше уровня Junior (я попрошу их комментировать, дополнять и критиковать изложенный здесь материал), а вот Junior`ы уверен, найдут в этой статье интересное для себя.
Читать дальше →
Total votes 97: ↑86 and ↓11 +75
Comments 306

Учебник по контекстной рекламе (Бабаев, Евдокимов, Иванов)

Reading time 1 min
Views 1.3K
imageВсем привет. Мне тут на рецензию дали книжку по контекстной рекламе.

До этого на рынке видел только два материала на эту тему — от Бегуна и от Яковлева. Тема была раскрыта не полностью.

Ну что, давайте по плюсам:
— Нормальный дизайн (что редкость в нашей среде), качественная бумага (приятно в руках держать), низкая цена
— Ребята собрали под одной обложкой лучших практиков Рунета. Я, правда, не всех знаю. Но квалификация того же Довжикова, Бабаева, Амилющенко, Веселова, Кучумова и еще 2-3 человек не вызывает сомнений
Читать дальше →
Total votes 31: ↑24 and ↓7 +17
Comments 24

На пороге дополненной реальности: к чему готовиться разработчикам (часть 2 из 3)

Reading time 9 min
Views 82K

Это продолжение (см. часть 1) стенограммы одноименного доклада с конференции ADD-2010.

В этой части речь пойдет о том, как обрабатывать данные с сенсоров, а именно: акселерометров, гироскопов и магнитных компасов. И зачем в современных устройствах ставят все три вида датчиков.
Читать дальше →
Total votes 64: ↑62 and ↓2 +60
Comments 15

«Memory Component Issue», или масштабный брак сетевого оборудования

Reading time 2 min
Views 58K
Подтвердилось существование проблемы, о которой многие догадывались.

Cisco объявили, что неназванный производитель памяти в течение пяти лет (с 2005 по 2010) поставлял им брак. Характер брака: оборудование с этой памятью может годами копить аптайм, не вызывая никаких нареканий к своей работе, но стоит перезагрузить его (по питанию или даже простым reload) — память перестает корректно работать, само устройство либо не загружается, либо загружается и периодически падает. Связано это с деградацией чипов памяти. По заявлению вендора, основные проблемы начинаются после двух лет эксплуатации.

Прежде чем в Cisco полетят тухлые помидоры, спешу предупредить: память стандартная, многие вендоры ее закупали, потому затронуто может быть великое множество единиц оборудования. Есть подтверждение об аналогичных проблемах у Juniper. Но только Cisco сознались, несмотря на неизбежный репутационный ущерб. Их финансовые потери из-за этой катастрофы составляют около 655 миллионов долларов.
Читать дальше →
Total votes 75: ↑74 and ↓1 +73
Comments 73

Как это сделано: парсинг статей

Reading time 4 min
Views 81K


Для меня всегда было некоей магией то, как Getpocket, Readability и Вконтакте парсят ссылки на страницы и предлагают готовые статьи к просмотру без рекламы, сайдбаров и меню. При этом они практически никогда не ошибаются. А недавно подобная задача назрела и в нашем проекте, и я решил копнуть поглубже. Сразу скажу, что это «белый» парсинг, вебмастеры сами добровольно пользуются нашим сервисом.
Читать дальше →
Total votes 123: ↑112 and ↓11 +101
Comments 36

Самодельный тепловизор на базе Arduino менее чем за 100$

Reading time 4 min
Views 317K

Не секрет что каждый из нас хоть раз но мечтал получить в свои руки настоящий тепловизор. Ведь это уникальный шанс взглянуть на мир вокруг совершенно «другими глазами», увидеть скрытое и возможно даже глубже познать суть некоторых явлений. И единственной преградой к этой мечте служит цена подобных устройств. Несмотря на весь прогресс, она остается непомерно высокой для простого смертного.
Однако подобно лучу света в непроглядном мраке безысходности на свет появилась разработка двух студентов из Германии. Их устройство на базе микроконтроллера Arduino является довольно простым в изготовлении и существует аж с 2010 года.
Читать далее
Total votes 89: ↑84 and ↓5 +79
Comments 51

Плейн- и радарспоттинг, или я болен авиацией

Reading time 7 min
Views 78K
Я болен авиацией. Да, именно так и никак иначе. На моем ноутбуке хранится куча мануалов к различным самолётам от Boeing и Airbus, пособия по радиообмену, фильмы по авиационной тематике. Помимо всего этого я слушаю авиадиапазон с помощью портативной радиостанции (которая, кстати, не имеет возможности передавать на этих частотах, только слушать!). И плюс ко всему я регулярно, раз или два в месяц выбираюсь к аэропорту Шереметьево и фотографирую самолёты, заходящие на посадку. В этом посте я расскажу, как докатился до такой жизни. Может быть кто-то из вас, уважаемые читатели, тоже заболеет авиацией.
Кому интересно — прошу под кат.
Читать дальше →
Total votes 201: ↑193 and ↓8 +185
Comments 84

Фильтр Калмана

Reading time 10 min
Views 414K


В интернете, в том числе и на хабре, можно найти много информации про фильтр Калмана. Но тяжело найти легкоперевариваемый вывод самих формул. Без вывода вся эта наука воспринимается как некое шаманство, формулы выглядят как безликий набор символов, а главное, многие простые утверждения, лежащие на поверхности теории, оказываются за пределами понимания. Целью этой статьи будет рассказать об этом фильтре на как можно более доступном языке.
Фильтр Калмана — это мощнейший инструмент фильтрации данных. Основной его принцип состоит в том, что при фильтрации используется информация о физике самого явления. Скажем, если вы фильтруете данные со спидометра машины, то инерционность машины дает вам право воспринимать слишком быстрые скачки скорости как ошибку измерения. Фильтр Калмана интересен тем, что в каком-то смысле, это самый лучший фильтр. Подробнее обсудим ниже, что конкретно означают слова «самый лучший». В конце статьи я покажу, что во многих случаях формулы можно до такой степени упростить, что от них почти ничего и не останется.
Читать дальше →
Total votes 178: ↑173 and ↓5 +168
Comments 84

Nginx+php-fpm+perl под Debian Squeeze

Reading time 10 min
Views 124K

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

В качестве теста решил перевести все свои сайты на nginx, до этого все работало на Apache из состава ZendServerCE. Интересно было пробовать насколько сложно будет полностью переехать на новый для себя веб-сервер, ведь используется несколько CMS (DLE, Wordpress, самописныеCMS).

Задачи:
  • базовая работа web сервера — обработка html;
  • запуск php скриптов;
  • корректная работа phpmyadmin для всех сайтов на сервере;
  • запуск cgi и pl скриптов;
  • использование кеширования и подбор оптимальных параметров для увеличения производительности.


Имеем свежеустановленный сервер Debian 6 в минимальной установке из netinstall. И так поехали.
Читать дальше →
Total votes 75: ↑50 and ↓25 +25
Comments 66

Курс лекций «Стартап». Питер Тиль. Стенфорд 2012. Занятие 4

Reading time 23 min
Views 150K

Этой весной, Питер Тиль (Peter Thiel), один из основателей PayPal и первый инвестор FaceBook, провел курс в Стенфорде — «Стартап». Перед началом Тиль заявил: «Если я сделаю свою работу правильно, это будет последний предмет, который вам придется изучать».

Один из студентов лекции записывал и выложил транскипт. В данном хабратопике я перевожу четвертое занятие. Редактор Astropilot.

Занятие 1: Вызов будущего
Занятие 2: Снова как в 1999?
Занятие 3: Системы ценностей
Занятие 4: Преимущество последнего хода
Занятие 5: Механика мафии
Занятие 6: Закон Тиля
Занятие 7: Следуйте за деньгами
Занятие 8: Презентация идеи (питч)
Занятие 9: Все готово, а придут ли они?
Занятие 10: После Web 2.0
Занятие 11: Секреты
Занятие 12: Война и мир
Занятие 13: Вы — не лотерейный билет
Занятие 14: Экология как мировоззрение
Занятие 15: Назад в будущее
Занятие 16: Разбираясь в себе
Занятие 17: Глубокие мысли
Занятие 18: Основатель — жертва или бог
Занятие 19: Стагнация или сингулярность?
Читать дальше →
Total votes 48: ↑47 and ↓1 +46
Comments 13

Прекратите скручивать (восклицательный знак)

Reading time 6 min
Views 1.7M
Ну действительно, прекратите. Есть куча прикольных штук для соединения самых разнообразных проводов, а все равно технология «откусить зубами изоляцию, скрутить, замотать изолентой» жива до сих пор.

Дальше много текста, фотографий, разборок. Ну все как обычно
Total votes 682: ↑667 and ↓15 +652
Comments 360

Wi-Fi: неочевидные нюансы (на примере домашней сети)

Reading time 14 min
Views 1.4M
Сейчас многие покупают точки доступа 802.11n, но хороших скоростей достичь удается не всем. В этом посте поговорим о не очень очевидных мелких нюансах, которые могут ощутимо улучшить (или ухудшить) работу Wi-Fi. Всё описанное ниже применимо как к домашним Wi-Fi-роутерам со стандартными и продвинутыми (DD-WRT & Co.) прошивками, так и к корпоративным железкам и сетям. Поэтому, в качестве примера возьмем «домашнюю» тему, как более родную и близкую к телу. Ибо даже самые администые из админов и инженеристые из инженеров живут в многоквартирных домах (или поселках с достаточной плотностью соседей), и всем хочется быстрого и надежного Wi-Fi.
[!!]: после замечаний касательно публикации первой части привожу текст целиком. Если вы читали первую часть — продолжайте отсюда.
Читать дальше →
Total votes 234: ↑231 and ↓3 +228
Comments 138

Как распознать кракозябры?

Reading time 1 min
Views 424K
В комментариях к предыдущему посту про иероглифы сказали, что хорошо бы иметь такую же блок-схему для кракозябр.

Итак, вуаля!


За источник информации была взята статья из вики. В блок-схеме «UTF-16 → CP 866» означает, что исходная кодировка была «UTF-16», а распозналась она как «CP 866».

Как всегда — кликабельно. Исходник в .docx: здесь.
Total votes 429: ↑418 and ↓11 +407
Comments 64

Как правильно сортировать контент на основе оценок пользователей

Reading time 5 min
Views 91K


В оригинале название звучит как «How Not To Sort By Average Rating». Я подумал, что дословный перевод «Как не сортировать по усреднённому рейтингу» будет малопонятен и хуже отражает содержание статьи.

Постановка проблемы


Вы занимаетесь веб программированием. У вас есть пользователи, которые оценивают контент на вашем сайте. Вы хотите разместить высоко оцененный контент наверху, а низко оцененный — внизу. Для этого на основе пользовательских оценок вам нужно вычислить некий «рейтинг».

Неправильное решение №1

Рейтинг= (Число положительных оценок) - (Число отрицательных оценок)

Читать дальше →
Total votes 458: ↑423 and ↓35 +388
Comments 134

Запрос номера из реестра «Россвязи»

Reading time 2 min
Views 24K
Доброго времени суток!
Давно искал инструмент, чтобы быстро можно было узнать принадлежность того или иного телефонного номера к тому или иному оператору связи и/или региону.

Всегда использовал для этих задач МТТ, чего, в принципе всегда хватало.
Но хотелось чего-то ещё более простого и быстрого.

Если Вас также как и меня интересовало что-то подобное, прошу под кат.
Читать дальше →
Total votes 53: ↑51 and ↓2 +49
Comments 47

Равномерное выравнивание блоков по ширине

Reading time 4 min
Views 18K
Продолжая свои «css-раскопки» возникла новая идея, разобрать по косточкам ещё одну актуальную тему, которая касается равномерного выравнивания блоков по ширине. В принципе мои доскональные исследования я уже запостил у себя в блоге, но так как прошлая моя работа очень понравились Хабра-сообществу, то я решил сделать здесь небольшой краткий обзорчик этой статьи, чтобы ни одна хабра-душа не пропустили её наверняка. Так что, как говорил Гагарин: «Поехали».

В общем в задачах вёрстки периодически возникают моменты, когда появляется необходимость выровнять какой-нибудь список по ширине экрана. При этом пункты этого списка должны выравниваться равномерно, прижимаясь своими крайними элементами к границам контейнера, а расстояние между ними должно быть одинаковым.
image
Читать дальше →
Total votes 172: ↑163 and ↓9 +154
Comments 87

Уязвимость связки PHP+nginx с кривым конфигом

Reading time 1 min
Views 60K

Summary


Announced: 2010-05-20
Credits: 80sec
Affects: сайты на ngnix+php с возможностью загрузки файлов в директории с fastcgi_pass




Background


Зачастую How-To по настройке связки nginx с php-fpm / php-cgi есть подобные строчки:

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    include fastcgi_params;
}

Читать дальше →
Total votes 163: ↑146 and ↓17 +129
Comments 109

Генерация уникального идентификатора пользователя средствами Nginx

Reading time 5 min
Views 14K
Приветствую Вас, хабрачитатели!

Расскажу об одной задачке, которая встала передо мной, и как я ее решил.

Сразу оговорюсь — часовой поиск в G и в Я удовлетворяющего результата не принес, но за следующий час было реализовано собственное решение.

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


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

В качестве веб-сервера и первичного балансировщика нагрузки у меня имеется Nginx.

В моей системе для php используетcя php-fpm через fastcgi, так же через fastcgi работает c++ сервер бизнес логики.

Читать дальше →
Total votes 38: ↑36 and ↓2 +34
Comments 33

HOWTO: свой бизнес в США из России

Reading time 6 min
Views 157K
    Наверняка многие из нас хоть раз думали про себя: «Черт побери, и везет же этим американцам!». Это касается многого, от магазинов с доставкой «только в пределах 48 континентальных штатов» до вполне серьезных контрактов, которые срываются только потому, что потенциальный заказчик в США категорически не желает иметь дело с иностранцами.

    В этой статье я попробую осветить процесс создания и администрирования американской корпорации для резидента РФ. Наверняка многие из фактов для самих американцев покажутся тривиальными, однако для жителя России все куда сложнее — увы, это данность. Чтоб не сказать — это Родина, сынок. Оговорюсь сразу — я все это проделал более 2 лет назад, так что, некоторые детали могут быть не совсем актуальны. Но вряд ли что-то поменялось принципиально.
Читать дальше →
Total votes 402: ↑398 and ↓4 +394
Comments 184

Information

Rating
Does not participate
Date of birth
Registered
Activity