Pull to refresh
86
0
Alex Oleskevich @mariner

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

Send message

Сравнительное тестирование девяти ORM для Android

Reading time7 min
Views33K
На просторах интернета много отрывочной информации о той или иной ORM для Андроид. Пока что мне не попадалось качественное сравнение ведущих ORM. Существующие статьи попахивают пиаром той или иной системы и ставят в невыгодное положение своих конкурентов либо некорректной постановкой тестирования, либо вообще использованием заведомо неверных настроек, либо не включением в тестирование сильных соперников.

Данное тестирование проведено было скорее для собственного интереса. Т.к. ORM много, все они разные, и хотелось бы иметь объективное представление о существующих системах.
Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments11

webpack: 7 бед — один ответ

Reading time12 min
Views179K
После моего недавнего выступления на MoscowJS #17 с одноимённым докладом у многих возник интерес к этому инструменту. В рамках 11-го выпуска RadioJS, Миша Башкиров bashmish рассказал, что решился попробовать его в своём новом проекте, об успешном опыте и множестве положительных эмоций. Но были озвучены вопросы и возникла дискуссия, в результате которой я решил написать эту статью, чтобы раскрыть основные тезисы с доклада и рассказать о том, что тогда не успел.
Статья ориентирована, как на профессионалов, так и на тех, кто с похожими технологиями ещё не сталкивался.
Итак, начнём.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments13

Как покрасить вкладку Chrome

Reading time1 min
Views89K
image

Если вы заходили с мобильного хрома в фейсбук, то наверняка видели, что интерфейс браузера красится в фирменный синий цвет соцсети. Но зачем и как?
Читать дальше →
Total votes 42: ↑29 and ↓13+16
Comments20

Пишем модуль для авторизации в VK API

Reading time5 min
Views94K
На днях возникла необходимость сохранить все фотографии из своего фотоальбома ВКонтакте на жесткий диск. Естественно, вариант, с сохранением фотографий по одной, меня не устроил. Тут вспомнилось, что у ВКонтакте есть API. Пять минут чтения мануалов, и все нужные функции найдены. Единственная проблема – не существует нормального способа, для получения доступа к API. В документации сказано следующее:
Процесс авторизации приложения состоит из 3-х шагов:
  1. Открытие окна браузера для аутентификации пользователя на сайте ВКонтакте.
  2. Разрешение пользователем доступа к своим данным.
  3. Передача в приложение ключа access_token для доступа к API.


На первый взгляд, набросать простенький портабельный скрипт не получится. Хотя, что мешает нам притвориться браузером?
Читать дальше →
Total votes 44: ↑35 and ↓9+26
Comments24

Рецепты под Android: Как вкусно приготовить LayoutManager

Reading time16 min
Views48K
Привет хабр!

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


Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments4

Android Data Binding in RecyclerView

Reading time6 min
Views51K


На Google IO 2015 анонсировали новую библиотеку Data Binding Library. Основная ее задача — вынесения взаимодействия модели и View в xml-файлы. Она значительно упрощает написание кода и избавляет от необходимости использования методов findByViewId(), добавления ссылок на view-элементы внутри Activity/Fragment’ов. Также она позволяет использовать кастомные атрибуты, привязывая их к статическим методам. Поскольку статьей просто по Data Binding уже достаточно, но по его использованию в RecycleView всего ничего, восполним этот пробел.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments10

Как работает реляционная БД

Reading time51 min
Views534K
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
Читать дальше →
Total votes 232: ↑229 and ↓3+226
Comments134

Провайдер режет p2p, что с этим делать?

Reading time7 min
Views113K
Привет хабр!
Уже год московский интернет-провайдер image замыкающий пятерку крупнейших провайдеров Москвы (по оценкам AC&M-Consulting, ему принадлежит примерно 6% московского рынка ШПД),
зарезает исходящий — upload трафик по протоколу p2p.

Я как абонент, у которого рейтинг на внешних торрент-трекерах всё падал и падал, так как восполнять скачанное я уже не мог, испытал все возможные способы обхода данного ограничения. Что из этого вышло,
читайте под катом.
Total votes 156: ↑107 and ↓49+58
Comments325

15 тривиальных фактов о правильной работе с протоколом HTTP

Reading time7 min
Views232K
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

Однако на практике оказывается, что великое множество веб-разработчиков эти азы таки не усвоило. Читаешь документацию к иным API и рыдаешь. Уверен, что каждый читатель таки найдёт в этом списке что-то новое для себя.
Читать дальше →
Total votes 191: ↑186 and ↓5+181
Comments120

Обзор систем сборок для Raspberry Pi

Reading time9 min
Views47K
В прошлом мой выбор пал на OpenEmbedded (OE) и по заслугам, она одна из лучших систем сборок. К выбору на тот момент не подходил осознанно и захотел исправить это, поэтому решил посмотреть на текущие решения.

Мысль бы не пришла в голову, если под руками не оказалась плата Raspberry Pi (RPi), популярность которой зашкаливает — это означает одно, что попробовать новые системы сборки должно быть как никогда просто.

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

Читать дальше →
Total votes 37: ↑30 and ↓7+23
Comments22

Про соль с точки зрения химика

Reading time10 min
Views176K
На самом деле этот пост был подготовлен еще в апреле 2014 года, я не смог тогда его опубликовать. Являлся вторым в ожидавшейся серии. Можете глянуть первый. На эту тему писать меня сподвигло желание внести немного ясности в представления о некоторых химических аспектах нашего бытия. Пользуясь тем, что химия — наука, не слишком популярная в массах, нам иногда рекламщики и пресса выдают такие перлы, что у меня не хватает слов для описания эмоций. Так что попробуем слегка рассеять туман, ну и чтоб это было интересно и актуально для наших условий. Недавно встретил похожую переводную публикацию, тоже про соль. Серьёзную и хорошо сделанную, правда, слегка не о нашей действительности.

Итак — про соль


Так в Африке ею и торгуют. Толщина кусков, вероятно определяется толщиной пласта. Слабенькие пласты.

Солить или не солить. А зачем вообще соль, может лучше без неё? Заменитель соли? Ценная соль с минералами и розового цвета — а зачем козе баян? Рекламные посты — хороший способ приготовить лапшу на уши.
Читать дальше →
Total votes 200: ↑190 and ↓10+180
Comments327

Best practices от Google по разработке Android приложений

Reading time8 min
Views45K
В данной статье я хотел бы вкратце рассказать про самые последние best practices от Google. Я постарался выделить самые основные моменты, чтобы читатель сразу мог понять, что именно какая-либо фича дает разработчику. Не удивляйтесь, если где-то повторяюсь. Конспектировал + добавлял от себя по ходу просмотров видео в www.youtube.com/channel/UCVHFbqXqoYvEWM1Ddxl0QDg

Также к каждому пункту приводятся все необходимые ссылки для более подробного ознакомления с конкретной best practice.
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments18

Грязные секреты экспресс-курсов по программированию

Reading time8 min
Views79K
Привет, Хабр!

Цель нашего образовательного проекта Хекслет — обучать программированию. Мы постоянно стараемся обратить внимание на то, что основы программирования, анализ и решение задач, понимание фундамента — это важно. Важнее, чем просто модный стек или технология. Поэтому наши курсы по PHP или Ruby основаны на SICP, а курс по базам данных на самом деле посвящен стандарту SQL-92, а не особенностям какого-нибудь MySQL.

В СНГ все активнее распространяется идея образовательных центров, где "можно стать программистом и устроиться на работу за 8 недель". На западе же — их сотни! Каждый обещает светлое будущее, многие твердят, что «любой может стать программистом». Обещают трудоустройство. На волне «coding is the new literacy» («кодинг это новая грамотность») тысячи людей записываются в так называемые «буткемпы». Это огромный бизнес, но, к сожалению, большинство таких буткемпов не готовит настоящих программистов.

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

Читать дальше →
Total votes 45: ↑27 and ↓18+9
Comments34

Искусство командной строки

Reading time15 min
Views249K


Вот уже как неделю английская версия the art of command line висит в секции trending на Github. Для себя я нашел этот материал невероятно полезным и решил помочь сообществу его переводом на русский язык. В переводе наверняка есть несколько недоработок, поэтому милости прошу слать пулл-реквесты мне сюда или автору оригинальной работы Joshua Levy вот сюда. (Если PR отправите мне, то я после того, как пересмотрю изменения отправлю их в мастер-бранч Джоша). Отдельное спасибо jtraub за помощь и исправление опечаток.

Enjoy!
Total votes 127: ↑122 and ↓5+117
Comments143

36 млн запросов в час, 10000+ постоянно работающих клиентов, на одном сервере, nginx+mysql

Reading time5 min
Views114K
Сложилась ситуация, что участвую в проекте, который работает с достаточно большой нагрузкой. Как уже написал — 36 млн запросов в час. Я много чего прочитал и перепробовал за последний месяц, настраивая сервер; хотелось бы просто сжато и компактно выдать тезисно то, что работает хорошо в такой конфигурации.

Первое, что я заметил — множество советов как все настроить под большую нагрузку. Читайте их внимательно, обычно в тексте найдете, что речь про «высокую нагрузку» в 15-20 тысяч клиентов в сутки. У нас клиентов примерно миллион, активных, ежедневных.

У нас нет денег и мы все делаем за свой счет, поэтому экономим. Итог — весь миллион клиентов обслуживается на одном сервере, вот на таком — EX-60 на hetzner.
Читать дальше →
Total votes 111: ↑96 and ↓15+81
Comments102

Как отличить день от ночи, если ты Android

Reading time8 min
Views26K

Привет, Хабр.


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


Читать дальше →
Total votes 29: ↑25 and ↓4+21
Comments9

Как заставить дженкинс сделать вашу жизнь проще и стать счастливым

Reading time7 min
Views34K
Когда разработка мобильных приложений в компании переходит на промышленные рельсы, неизменно всплывает вопрос об автоматической сборке. Continuous Integration — это то, что является неотъемлемой частью процесса. Итог этого процесса — сборки для тестирования на устройствах компании для OTA распространения заказчикам и удаленным тестировщикам.

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

Итак, эта статья о том, как реализовать копирование сертификатов и профилей для iOS сборок и свойств, и ключей для Android сборок на все слейвы дженкинса в рамках Continuous Integration. Такая автоматизация экономит время и помогает избежать ошибок. Статья будет интересна разработчикам мобильных приложений и тем, кто администрирует Jenkins.

Поехали!


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

Перевод документации RivetsJS

Reading time12 min
Views12K

Немного о мотивах


Доброго времени суток, уважаемые хабровчане. Некоторое время назад, я познакомился с библиотекой RivetsJS. Она мне пришлась по вкусу, хотя содержит в себе только инструменты для data-binding. Сразу хочу сказать, что даже не собираюсь спорить, для этих вещей есть замечательные AngularJS и др. фреймворки, но лично я не вижу смысла подключать такой мощный инструмент, как Angular, если мне требуется только малая толика его возможности. Поэтому, для этих целей, я выбрал именно RivetsJS. И вот, воодушевленный идеей перевести его документацию на русский, я пишу эту статью. Мотив простой — рассказать об этой библиотеке, и я не нашел ничего лучше, чем просто перевести её документацию, которая, возможно только на мой взгляд, написана на немного «ломаном» английском. Итак, поехали.

P.S. Сразу попрошу прощения, это мой первый перевод, возможно я не супер-пупер переводчик. Если вам что-то покажется нелепым или вы найдете ошибку — прошу сообщить об этом мне, я сразу же её исправлю. Заранее, спасибо.

Документация RivetsJS



Гайд



  • Установка
  • Использование
  • Биндинг
  • Форматеры
  • Компоненты
  • Адаптер
  • Свойства
  • Итерации биндинга


Справочник



  • text
  • html
  • show
  • hide
  • enabled
  • disabled
  • if
  • unless
  • value
  • checked
  • unchecked
  • on-[event]
  • each-[item]

Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments6

Подробная анатомия простого плагина для XBMC

Reading time20 min
Views33K

Предисловие


Похожая статья на Хабре уже публиковалась, но в ней основное внимание было уделено парсингу сайта с видео — так сказать, бизнес-логике плагина, а вопросы взаимодействия с XBMC затронуты вскользь. Я же хочу рассказать о том, что превращает скрипт на языке Python (далее — Питон) в плагин XBMC.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments10

Безумный PHP. Фьюри код

Reading time7 min
Views64K

Сборник PHP ненормальностей или что надо знать чтобы не сойти с ума и не прострелить себе что-нибудь


Прочитал статью mnv: "Приведение типов в PHP == табурет о двух ножках?" и захотелось в комментариях добавить немного дополнений, но… Но потом увидел комментарий и понял, что лучше дополню статью тем, про что мало кто пишет и мало где это имеется в централизованном виде. Вроде бы всем известная тема, а все же кому-то в новинку. Это не совсем про приведение типов, но они тоже есть. Это про особенности, зная которые можно делать меньше ошибок. Если интересно, го под кат, я создал!
Читать дальше →
Total votes 91: ↑82 and ↓9+73
Comments74

Information

Rating
Does not participate
Location
Филиппины
Registered
Activity