Как стать автором
Обновить
10
0

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

Отправить сообщение

Профилирование и оптимизация программ на Go

Время на прочтение25 мин
Количество просмотров84K

Введение


В этой статье я расскажу, как профилировать и оптимизировать приложения на языке Go с использованием встроенных и общих инструментов, доступных в ОС Linux.

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

Я привел такое определение, чтобы сразу отсечь вопросы некорректной работы приложения. В этой статье мы не будем говорить о проблемах мультитредового программирования, о дата-рейсах (англ. data race), о поиске ошибок (англ. debugging). Для всего этого в Go есть свои утилиты и подходы, но оставим эту тему на будущее.



Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии18

Свой облачный хостинг за 5 минут. Часть 1: Ansible, Docker, Docker Swarm

Время на прочтение11 мин
Количество просмотров137K
Cloud hosting

Привет Хабр! Последние 1.5 года я работал над своим проектом, которому был необходим надежный облачный хостинг. До этого момента я больше 10 лет занимался веб-программированием и когда я решил построить свой хостинг у меня были относительно поверхностные знания в этой области, я и сейчас не являюсь системным администратором. Все что я буду рассказывать может выполнить обычный программист в течение 5 минут, просто запустив набор сценариев для Ansible, которые я подготовил специально для вас и выложил на GitHub.
Читать дальше →
Всего голосов 64: ↑63 и ↓1+62
Комментарии42

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

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

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

О чем говорят 100 млн писем: Полная инструкция по работе с email-рассылками

Время на прочтение14 мин
Количество просмотров16K
Примечание переводчика: Ранее в нашем блоге мы публиковали материал с советами по дизайну email-рассылок, созданными на основе анализа 22 млн писем, а также рассказывали о том, как те или иные параметры письма влияют на его эффективность согласно статистике (в том числе по Рунету). Сегодня мы представляем вашему вниманию обширную инструкцию по email-маркетингу, которую создали аналитики маркетинговой компании Vero на основе анализа 100 млн электронных писем.



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

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

Готовы узнать, использование какого типа электронных писем наиболее эффективно, в какие дни недели можно получить больше переходов по ссылкам на вашем сайте, как часто следует присылать электронные сообщения, а также изучить прочую информацию, связанную с пересылкой данных, и приемы, которые можно будет испытать на практике?
Читать дальше →
Всего голосов 17: ↑13 и ↓4+9
Комментарии2

Тренды и статистика: Как интернет-компании создать эффективную рассылку

Время на прочтение3 мин
Количество просмотров11K
image

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

В сегодняшнем топике мы поговорим об общих трендах в области почтовых рассылок и подкрепим эту информацию статистическими данными, которые помогут ИТ-компаниям создавать эффективные рассылки.
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии0

RESTful API для сервера – делаем правильно (Часть 1)

Время на прочтение13 мин
Количество просмотров332K
В 2007-м Стив Джобс представил iPhone, который произвел революцию в высокотехнологичной индустрии и изменил наш подход к работе и ведению бизнеса. Сейчас 2012-й и все больше и больше сайтов предлагают нативные iOS и Android клиенты для своих сервисов. Между тем не все стартапы обладают финансами для разработки приложений в дополнение к основному продукту. Для увеличения популярности своего продукта эти компании предлагают открытые API, которыми могут воспользоваться сторонние разработчики. Пожалуй Twitter был первым в этой сфере и теперь число компаний, последовавших этой стратегии, растет стремительно. Это действительно отличный способ создать привлекательную экосистему вокруг своего продукта.

Читать дальше →
Всего голосов 73: ↑70 и ↓3+67
Комментарии57

Подготовка и публикация приложений в Marketplace

Время на прочтение7 мин
Количество просмотров11K
Недавно мне невероятно повезло участвовать в вебинаре Microsoft Стаса Павлова и Юлии Щегловой "Windows Phone для стартапов. Ответы на ваши вопросы" (запись доступна на techdays).

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

Читать дальше →
Всего голосов 37: ↑30 и ↓7+23
Комментарии8

Выразительный JavaScript: Структура программ

Время на прочтение15 мин
Количество просмотров140K

Содержание




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

_why, Why's (Poignant) Guide to Ruby


В этой главе мы начнём заниматься тем, что уже можно назвать программированием. Мы расширим использование языка JavaScript за пределы существительных и фрагментов предложений к более-менее осмысленной прозе.
Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии20

Всё, что вы хотели знать об областях видимости в JavaScript (но боялись спросить)

Время на прочтение8 мин
Количество просмотров82K
У JS есть несколько концепций, связанных с областью видимости (scope), которые не всегда ясны начинающим разработчикам (и иногда даже опытным). Эта статья посвящена тем, кто стремится погрузиться в пучину областей видимости JS, услышав такие слова, как область видимости, замыкание, “this”, область имён, область видимости функции, глобальные переменные, лексическая область видимости, приватные и публичные области… Надеюсь, по прочтению материала вы сможете ответить на следующие вопросы:

— что такое область видимости?
— что есть глобальная/локальная ОВ?
— что есть пространство имён и чем оно отличается от ОВ?
— что обозначает ключевое слово this, и как оно относится с ОВ?
— что такое функциональная и лексическая ОВ?
— что такое замыкание?
— как мне всё это понять и сотворить?
Читать дальше →
Всего голосов 57: ↑47 и ↓10+37
Комментарии38

Работаем с уведомлениями в Windows Phone 8.1

Время на прочтение9 мин
Количество просмотров29K


Привет всем!

Сегодня поговорим о новых возможностях, касающихся уведомлений в Windows/Windows Phone 8.1. Обсудим какие типы уведомлений существуют, каким способом их организовать в своем приложении, а также отметим одну из главных новинок для Windows Phone устройств — Центр уведомлений (Action Center).
Читать дальше →
Всего голосов 43: ↑37 и ↓6+31
Комментарии4

mysqlnd — проводник между PHP и MySQL

Время на прочтение16 мин
Количество просмотров66K


Расширение mysqlnd появилось ещё в PHP 5.3, но до сих пор малоизвестно среди разработчиков. Однако оно незаменимо, если ваша система основана на MySQL. Если вы хотите узнать, почему это расширение так важно, что оно собой представляет, как его использовать и какие оно даёт преимущества — читайте статью.
Читать дальше →
Всего голосов 129: ↑116 и ↓13+103
Комментарии35

Продвижение приложений в AppStore (Google Play)

Время на прочтение9 мин
Количество просмотров53K

Прежде чем мы написали этот материал, наши приложения загрузили более 2 000 000 раз, мы провели порядка 50 больших промо кампаний, побывали в топах AppStore более, чем в 24-х странах пока наконец не собрали всё это в один большой work flow. В статье почти нет очевидных вещей про ключевые слова, красоту иконок, скриншотов и рекламные кампании. Мы попытались привести работу продуктовой компании к единой модели, ответив на вопросы: «что?», «когда?», «зачем?» и даже на вопрос «а дальше что?». Если вы разрабатываете собственное приложение, хотите начать это делать или у вас просто есть друг разработчик или маркетолог продуктовой компании — в этой статье вы найдёте много полезной информации.
Читать дальше →
Всего голосов 58: ↑41 и ↓17+24
Комментарии9

Дизайн мобильных приложений

Время на прочтение9 мин
Количество просмотров26K
Много статей написано о дизайне, даже очень много, как о его UX (user experience), так и UI (user interface) составляющих. Эта статья не для новичков, так что углубляться в основы мы здесь не будем.

Мы рассматриваем дизайн и формулировки не с точки зрения внешнего вида, хотя есть проекты, в которых именно внешний вид составляет основную ценность продукта, а с точки зрения конверсии. В статье, на примере наших приложений Photo and Video Transfer app и Image Transfer, мы расскажем о работе над следующими задачами, при помощи дизайна:
  • Увеличение количества email подписчиков.
  • Увеличение количество пользователей разрешивших push notifications.
  • Увеличение прибыли при работе по freemium модели.
  • Увеличение показателя возвращаемости пользователей.
  • Уменьшение показателей отказов.

Ниже вы сможете найти исходные данные и практические рекомендации. Так же крайне рекомендуем прочитать предыдущую статью о продвижении мобильных приложений, её вы cможете найти тут. Итак начнём.
Читать дальше →
Всего голосов 57: ↑39 и ↓18+21
Комментарии31

7 советов по продвижению приложений для Windows Store

Время на прочтение13 мин
Количество просмотров14K


Многие разработчики приложений приходят к нам с просьбой помочь им продвинуть их приложение, например, рассказать о нем в наших социальных каналах или поставить на продвижение в магазине приложений (например, в Windows Store).
Первый же вопрос, который задают наши маркетологи, звучит примерно так: «А что вы уже сделали?» Технические специалисты задаются тем же вопросом, но уже с другим прицелом. В данной статье мы постарались собрать некоторые советы и от тех, и от других.

Читать дальше →
Всего голосов 35: ↑27 и ↓8+19
Комментарии9

CPU Load: когда начинать волноваться?

Время на прочтение5 мин
Количество просмотров224K
Данная заметка является переводом статьи из блога компании Scout. В статье дается простое и наглядное объяснение такого понятия, как load average. Статья ориентирована на начинающих Linux-администраторов, но, возможно, будет полезна и более опытным админам. Заинтересовавшимся добро пожаловать под кат.
Читать дальше →
Всего голосов 152: ↑143 и ↓9+134
Комментарии87

In-app Billing Subscriptions со стороны сервера

Время на прочтение8 мин
Количество просмотров19K
In-app Billing Subscriptions (подписки) позволяют автоматизировать списание средств со счета пользователя для приложений, разработанных под Android. Данный инструмент — большой помощник в задаче повышения монетизации приложений. В общем виде схема работы с подписками выглядит следующим образом:

  1. Пользователь покупает подписку на некоторые плюшки приложения
  2. В случае успешной покупки, приложение получает данные заказа пользователя, в частности идентификатор транзакции и токен продажи подписки, и передает их на сервер
  3. Сервер осуществляет проверку подписи заказа в Google Play, контролирует уникальность транзакции, определяет время завершения подписки и начисляет положенные блага
  4. По завершении подписки, сервер может определить факт продления и, в случае успеха, продолжить начисление благ


В статье представлены шаги по обеспечению серверной поддержки инструмента монетизации для In-App Billing version 2.
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии8

iTunes In-App Purchases со стороны сервера

Время на прочтение13 мин
Количество просмотров36K
Платежи через iTunes фактические лидеры по монетизации контента, предоставляемого мобильными приложениями. В одном из известных мне приложений доход от них в 3 раза превышает доход от Google Play пользователей при том, что посещаемость последних в 1.5 раза выше. Таким образом, с одного пользователя iTunes можно получить вплоть до 5 раз больше денег, чем с одного пользователя Google Play. Данный аргумент достаточен для интеграции платежей iTunes в мобильные приложения.

В данной статье описываются некоторые особенности верификации платежей iTunes (в т.ч. и подписок) с серверной стороны, которые, как мне показалось, не достаточно освещены в существующих статьях.

Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Комментарии33

Раскрываем магию MySQL или о строгости и мягкости MySQL

Время на прочтение15 мин
Количество просмотров136K
Очень часто в интернете встречаюсь со статьями, в которых приводят кучу примеров с якобы странным поведением MySQL по сравнению с другими БД. Чтобы стало понятно, о чём я говорю, приведу несколько примеров:
1. Деление на ноль возвращает NULL вместо ошибки
2. Выход за диапазон допустимых значений неявно приводит число к допустимому значению, а не к ошибке и откату транзакции
3. Вставка неверного типа данных также приводит к неявному преобразованию и успешному выполнению операции
Таких примеров я могу привести огромное число, но цель статьи не сделать очередное собрание высосанных из пальца примеров, а объяснить, почему происходит то или иное действие. Вся эта мистика MySQL давно описана в документации и легко объяснима, в чём вы сможете убедиться сами, прочитав статью до конца.
Для меня эта первая статья на хабре, поэтому я старался писать дотошно подробно. Уверен, что она будет полезна всем, кто работает с MySQL. Большую помощь в написании статьи оказала подготовка к сдаче на сертификат разработчика MySQL, а точнее книга «MySQL Certification Study Guide».
Итак, мой друг, начнём!
Читать дальше →
Всего голосов 69: ↑66 и ↓3+63
Комментарии13

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность