Search
Write a publication
Pull to refresh
2
0
Алексей Клеандров @akass

Разработчик

Send message

10 Вещей с которыми сталкиваются начинающие Android-разработчики

Reading time3 min
Views11K

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




Я решил написать о некоторых типичных ошибках и проблемах, с которыми когда-то столкнулся сам, когда начинал разрабатывать Android-приложения три года назад, и нескольких других, с которыми сталкивались начинающие Андроид-разработчики. Итак, поехали!

Читать дальше →

Лучшие VPN-решения для пользователей Linux

Reading time10 min
Views213K
Если вы выходите в интернет со своего Linux-ноутбука, вам стоит знать об особенностях виртуальных частных сетей (Virtual Private Network, VPN). Эта технология особенно актуальна для тех, кто подключается к Сети через точки доступа, расположенные в общественных местах, однако, во многих ситуациях VPN не повредит и компьютеру, которым пользуются дома.



VPN позволяет защищать данные, передаваемые из точки «А» в точку «Б». Точка «А» — это ваш компьютер. Точка «Б» — это VPN-провайдер, или VPN-система, которую развернули вы сами, либо в облаке, либо где-то ещё, например — в офисе. С VPN-сервисами можно взаимодействовать, используя множество протоколов, но их суть остаётся одной и той же: трафик, который путешествует между компьютером и VPN-сервисом, шифруется. Благодаря этому обеспечивается защита данных от перехвата на пути от пункта отправления к пункту назначения.

В ходе работы с VPN применимо множество сценариев, касающихся маршрутизации. Типичный сценарий заключается в перенаправлении всего трафика по VPN-соединению, но, кроме того, можно применить концепцию «раздельного туннелирования». При таком подходе некоторые данные идут через VPN, а другие — по обычному интернет-соединению в соответствии с правилами маршрутизации.
Читать дальше →

10 приемов по созданию красивых бизнес презентаций из 2017 года

Reading time6 min
Views387K
Встречали ужасные PowerPoint презентации с разноцветными слайдами и безвкусными картинками? Тогда вы точно должны прочитать эту статью!

ВАЖНО: здесь я пишу только про бизнес презентации для чтения — не для публичных выступлений. Это важно понять, так как техники разные в этих двух форматах. Под форматом «бизнес презентаций для чтения» я подразумеваю такие документы как коммерческие предложения, спонсорские пакеты, инвестиционные презентации проектов, презентации продуктов, которые в большинстве случаев отправляются исключительно по электронной почте.

В этой статье я расскажу о наиболее распространенных ошибках в дизайне и поделюсь своими 10 приемами по созданию поистине крутых презентаций. Почти все примеры, которые я привожу ниже, — это выдержки из реальных кейсов, которые мы реализовали.
Здесь важно отметить, что 10 приемов актуальны на 2017 год (и ближайшие месяцы 2018).

Начнем с самого важного при создании презентации:
Читать дальше →

Налоги при продаже приложений и рекламы Google

Reading time7 min
Views35K
image

Продолжаем серию заметок о налогах при монетизации мобильных приложений на зарубежных площадках.

В прошлой статье Какие налоги нужно платить при выводе доходов от приложений в Apple iTunes мы кратко изложили алгоритм расчета налогов при получении дохода в iTunes Apple. Теперь предлагаем обсудить налоги с продаж приложений Google Play и рекламы Google AdSense.

Руководствоваться будем следующими договорами с Гугл, которые есть в официальном русском переводе на сайте корпорации:


Подробности под катом.
Читать дальше →

Объясняем современный JavaScript динозавру

Reading time15 min
Views267K


Если вы не изучали JavaScript с самого начала, то осваивать его современную версию сложно. Экосистема быстро растёт и меняется, так что трудно разобраться с проблемами, для решения которых придуманы разные инструменты. Я начал программировать в 1998-м, но начал понимать JavaScript только в 2014-м. Помню, как просматривал Browserify и смотрел на его слоган:


Browserify позволяет делать require («модули») в браузере, объединяя все ваши зависимости


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


Цель статьи — рассказать о контексте, в котором инструменты в JavaScript развивались вплоть до 2017-го. Начнём с самого начала и будем делать сайт, как это делали бы динозавры — безо всяких инструментов, на чистом HTML и JavaScript. Постепенно станем вводить разные инструменты, поочерёдно рассматривая решаемые ими проблемы. Благодаря историческому контексту вы сможете адаптироваться к постоянно меняющемуся ландшафту JavaScript и понять его.

Грабли mongoose

Reading time4 min
Views59K
Хакер — человек, который наступает на грабли, которые спрятаны в сарай и закрыты на замок

Mongoose — самый популярный модуль для работы с mongodb на javascript. Примеры на сайте позволяют достаточно быстро и успешно начать его использовать, однако mongoose имеет ряд неожиданных особенностей, которые могут заставить программиста начать выдирать волосы на голове. Именно об этих особенностях я и собираюсь рассказать.
Читать дальше →

Области видимости и замыкания в JavaScript

Reading time7 min
Views38K
Данная публикация представляет собой перевод материала «JavaScript Scope and Closures» под авторством Zell Liew, размещенного здесь.

Области видимости и замыкания важны в JavaScript, однако они сбивали меня с толку, когда я только начинал их изучать. Ниже приведены объяснения этих терминов, которые помогут вам разобраться в них.


Начнем с областей видимости


Область видимости


Область видимости в JavaScript определяет, какие переменные доступны вам. Существуют два типа областей видимости: глобальная и локальная.


Читать дальше →

Непрерывная интеграция с помощью Drone CI, Docker и Ansible

Reading time13 min
Views54K

image


Можете представить, что Вам больше никогда не придется устанавливать зависимости и настраивать конфигурации вручную на вашем сервере непрерывной интеграции? А вы верите в то, что каждый шаг вашего билда может быть по-настоящему изолированным и работать исключительно в Docker контейнерах? В конце концов, хотели бы вы попробовать инструмент, который входит в топ 20 всех открытых проектов, написанных на Golang, и имеет 9k+ звездочек на Github?


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


Читать дальше →

Вы не знаете Node: краткий обзор основных возможностей

Reading time20 min
Views87K


Ремарка от автора
Это статья новая, но она не о новых возможностях. Она о core, то есть о платформе и о том что многие кто просто используют grunt, или webpack могут не подозревать, так скзать about fundamentals.

Более подробно читайте:

комментарии rumkin:
habrahabr.ru/company/mailru/blog/283228/#comment_8890604

комментарии Aiditz:
habrahabr.ru/company/mailru/blog/283228/#comment_8890476

комментарии Suvitruf:
habrahabr.ru/company/mailru/blog/283228/#comment_8890430


Идея этой публикации была навеяна серией книг Кайла Симпсона «Вы не знаете JavaScript». Они являются хорошим началом для изучения основ этого языка. А Node — это практически тот же JavaScript, за исключением небольших отличий, о которых я расскажу в этой статье. Весь код, приведённый ниже, вы можете скачать из репозитория, из папки code.

Зачем вообще переживать насчёт Node? Node — это JavaScript, а JavaScript используется почти везде! Мир был бы лучше, если бы большинство разработчиков в совершенстве владели Node. Чем лучше приложения, тем лучше жизнь!

Эта статья представляет собой реалистичный взгляд на наиболее интересные основные возможности Node. Ключевые моменты статьи:

  1. Цикл событий: освежаем ключевую концепцию, позволяющую реализовать неблокирующие операции ввода/вывода.
  2. Глобальный объект и процесс: как получить больше информации.
  3. Эмиттеры событий: интенсивное введение в событийную модель (event-based pattern)
  4. Stream’ы и буферы: эффективный способ работы с данными
  5. Кластеры: форкай процессы как профессионал
  6. Обработка асинхронный ошибок: AsyncWrap, Domain и uncaughtException
  7. Аддоны на C++: внесение своих наработок в ядро и написание собственных аддонов на С++
Читать дальше →

У нас проблемы с промисами

Reading time16 min
Views245K
Разрешите представить вам перевод статьи Нолана Лоусона «У нас проблемы с промисами», одной из лучших по теме из тех, что мне доводилось читать.

У нас проблемы с промисами


Дорогие JavaScript разработчики, настал момент признать это — у нас проблемы с промисами.

Нет, не с самими промисами. Их реализация по спецификации A+ превосходна. Основная проблема, которая сама предстала передо мной за годы наблюдений за тем, как многие программисты борются с богатыми на промисы API, заключается в следующем:

— Многие из нас используют промисы без действительного их понимания.

Если вы мне не верите, решите такую задачку:

Вопрос: В чем разница между этими четырьмя вариантами использования промисов?

doSomething().then(function () {
  return doSomethingElse();
});

doSomething().then(function () {
  doSomethingElse();
});

doSomething().then(doSomethingElse());

doSomething().then(doSomethingElse);

Узнайте решение задачи

Как я использую git

Reading time6 min
Views91K

Intro


Основам git мне пришлось научиться на своем первом месте работы (около трех лет назад).
С тех пор я считал, что для полноценной работы нужно запомнить всего-лишь несколько команд:


  • git add <path>
  • git commit
  • git checkout <path/branch>
  • git checkout -b <new branch>

И дополнительно:


  • git push/pull
  • git merge <branch>
  • git rebase master (а что, можно еще и на другие ветки ребейзить? О_о)

В принципе, я и сейчас во многом так считаю, но со временем волей-неволей начинаешь узнавать интересные трюки.

Читать дальше →

Изучаем App Shortcuts в Android Nougat 7.1

Reading time8 min
Views15K

image


Привет Хабр! Предлагаю вашему вниманию свободный перевод статьи «Exploring Android Nougat 7.1 App Shortcuts» от Andrei Catinean.


Google выпустил Android Nougat с версией 7.1 (API 25). Появились некоторые интересные функции под капотом. Одна из этих дополнительных функций — app shortcuts. Эта статья расскажет, что они собой представляют, как они работают, и как вы можете их реализовать.

Читать дальше →

Учимся программировать под Андроид

Reading time2 min
Views75K
Привет Хабр! Предлагаю вашему вниманию свободный перевод статьи «How To Learn Android Development» от Amit Shekhar.

image

Как изучить разработку приложений под Андроид?

Я видел много вопросов о том, как начать изучать программирование под Андроид и стать успешным разработчиком. Здесь я попытался охватить большинство важных аспектов в Android Development.
Читать дальше →

Грокаем RxJava, часть четвертая: Реактивный Android

Reading time6 min
Views86K
В первой, второй и третьей частях я объяснил в общих чертах устройство RxJava. Вы можете подумать: «Прекрасно, но как всё это сделать полезным для меня, как для разработчика под Android?» В заключительной части статьи я приведу некоторую информацию, практичную именно для вас.

RxAndroid


RxAndroid — это расширение RxJava, написанное специально для Android, которое включает в себя специальные обвязки вокруг RxJava, делающие вашу жизнь проще.

Во-первых, здесь есть класс AndroidSchedulers, предоставляющий готовые планировщики для потоков, специфичных для Android. Нужно запустить код на UI потоке? Без проблем — воспользуйтесь AndroidSchedulers.mainThread():

retrofitService.getImage(url)
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(bitmap -> myImageView.setImageBitmap(bitmap));
Читать дальше →

Изучаем Retrofit 2

Reading time8 min
Views218K


В мире Android разработки существует множество интересных библиотек, и сегодня мы рассмотрим детище компании SquareRetrofit. Что же это за зверь такой? Retrofit (согласно официальному сайту) — типобезопасный HTTP-клиент для Android и Java. Он является незаменимым инструментом для работы с API в клиент-серверных приложениях. Каких-то лет 5 назад Android-разработчикам для работы с сетью приходилось воротить горы кода с обратными вызовами, AsyncTask'ами и прочими «низкоуровневыми» вещами. И компания Square выпустила такую замечательную библиотеку — Retrofit.

В сети Интернет мне не удалось найти внятных туториалов по второй версии бибилиотеки, поэтому сегодня мы будем разбираться с ней на примере приложения, получающего посты с bash.im
Заходи, если интересно

Docker swarm mode (режим роя)

Reading time11 min
Views98K

На хабре уже писали про Docker swarm mode (режим роя), который является новой фичей версии 1.12. Данная опция внесла небольшую путаницу в головы тех, кто знаком с отдельно стоящей реализацией Docker Swarm имевшей распространение ранее и не отличавшейся удобством настройки и использования. Однако, после добавления Swarm в коробку с Docker все стало намного проще, очевиднее и функциональнее.

Подробнее о том, как устроен новый кластер Docker контейнеров с точки зрения пользователя, а также о простом и удобном способе разворачивания сервисов Docker на произвольной инфраструктуре далее под катом.
Читать дальше →

Пять Docker-утилит, о которых вам стоит узнать

Reading time5 min
Views39K

Источник изображения


На просторах сети Интернет можно найти немало полезных утилит для Docker. Многие из них принадлежат к разряду Open Source и доступны на Github. В последние два года я достаточно активно использую Docker в большинстве своих проектов по разработке программного обеспечения. Однажды начав работать с Docker, вы осознаете, что он оказывается полезен для гораздо более широкого круга задач, нежели вы изначально предполагали. Вам захочется сделать с Docker еще больше, и он не разочарует!


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


Давайте посмотрим на утилиты, которые помогают мне в процессе докеризации всего и вся.

Читать дальше →

5 приемов в помощь разработке на vue.js + vuex

Reading time5 min
Views53K
Недавно решил разобраться с vue.js. Лучший способ изучить технологию — что-нибудь на ней написать. С этой целью был переписан мой старый планировщик маршрутов, и получился вот такой проект. Код получился достаточно большим для того, чтобы столкнуться с задачей масштабирования.

В этой статье приведу ряд приемов, которые, на мой взгляд, помогут в разработке любого крупного проекта. Этот материал для вас, если вы уже написали свой todo лист на vue.js+vuex, но еще не зарылись в крупное велосипедостроение.


Читать дальше →

Как мы суслика яблоками кормили или эффективный backend на Go для iOS

Reading time18 min
Views19K


Как и обещал, рассказываю о том, как мы мигрировали свой бэкенд на Go и смогли уменьшить объем бизнес логики на клиенте более, чем на треть.


Для кого: небольшим компаниям, Go и мобильным разработчикам, а также всем, кто в тренде или просто интересуется данной тематикой.
О чем: причины перехода на Go, с какими сложностями столкнулись, а также инструкции и советы по улучшению архитектуры мобильного приложения и его бэкенда.
Уровень: junior и middle.


Читать дальше →

Обзор анимации с codepen для страниц загрузки сайта

Reading time14 min
Views27K
Обзор анимации с codepen для страниц загрузки сайта

Программисты проверяют идеи для сайтов на площадках: codepen, jsbin, jsfiddle, cssdesk. Потому что там они мгновенно видят результат написанного кода и могут показать его другим.


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


Я решил делать подборки полезных решений с codepen. Первую уже выпускал на хабре «Обзор многоуровневых меню». Теперь вторая — «Обзор анимации для страниц загрузки сайта».


Подборку разделил на 3 статьи.


Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity