Pull to refresh
0
0

User

Send message

Как не стать Python-разработчиком

Reading time 2 min
Views 104K
Как выглядит трек обучения программированию на Python с нуля? С чего стоит начать? На чем сделать акцент? Как не потерять интерес?

Полгода я искал ответы на эти вопросы, тщательно исследуя предметную область. Я обнаружил много полезных советов. Особенно в заметке Василия Большакова и на Хекслете. Но мне не хватало структуры. Знания нарастали со всех сторон и превращались в кучу. Чтобы структурировать процесс обучения и оценить его масштаб, я собрал план.
Читать дальше →
Total votes 39: ↑29 and ↓10 +19
Comments 42

Что такое SaaS-бизнес

Reading time 19 min
Views 30K


Принципы работы и механизмы роста SaaS-компаний


Программное обеспечение как услуга (SaaS) — это модель оплаты и поставки программного обеспечения, которая настолько превосходит традиционный способ — продажу лицензий на ПО, что перестраивает компанию согласно своим потребностям. Благодаря этому SaaS-компании получили совершенно особый практический опыт. К сожалению, многим этот путь дается с трудом: они повторяют уже известные ошибки — вместо того, чтобы старательно набивать шишки на новых местах.

Вряд ли кому-то захочется наступать на чужие грабли, поэтому мы бегло рассмотрим положение дел в SaaS-бизнесе. Чтобы добиться успеха в этом секторе, нужно научиться лучше понимать бизнес-модель SaaS, уметь предвидеть, по какой схеме следует продавать продукт («со слабым контактом» или «с сильным контактом»), и — если вы уже работаете в SaaS-бизнесе — уметь оценивать состояние компании и совершенствовать ее работу.

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

Переведено в Alconost
Читать дальше →
Total votes 9: ↑7 and ↓2 +5
Comments 0

SQL ключи во всех подробностях

Reading time 18 min
Views 237K
В Интернете полно догматических заповедей о том, как нужно выбирать и использовать ключи в реляционных базах данных. Иногда споры даже переходят в холивары: использовать естественные или искусственные ключи? Автоинкрементные целые или UUID?

Прочитав шестьдесят четыре статьи, пролистав разделы пяти книг и задав кучу вопросов в IRC и StackOverflow, я (автор оригинальной статьи Joe «begriffs» Nelson), как мне кажется, собрал куски паззла воедино и теперь смогу примирить противников. Многие споры относительно ключей возникают, на самом деле, из-за неправильного понимания чужой точки зрения.

Содержание



Давайте разделим проблему на части, а в конце соберём её снова. Для начала зададим вопрос – что же такое «ключ»?
Читать дальше →
Total votes 36: ↑33 and ↓3 +30
Comments 120

Эффективные структуры данных для PHP 7

Reading time 11 min
Views 51K
PHP имеет всего одну структуру данных для управления всем. array — сложный, гибкий, гибридный, сочетает в себе поведение list и linked map. Но мы используем его для всего, потому что PHP придерживается прагматичного подхода: иметь предельно правильный, здравый и реалистичный способ решения проблемы, исходящий из практических, а не теоретических рассуждений. array позволяет делать работу, хотя о нем и так много рассказывают на лекциях по информатике. Но, к сожалению, с гибкостью приходит и сложность.

Последний релиз PHP вызвал большое оживление в сообществе. Мы не могли дождаться того, чтобы начать использовать новые возможности и почувствовать вкус ~2х прироста производительности. Одна из причин, почему это случилось — структура array была переработана. Но массивы все также придерживаются принципа «оптимизировано для всего; оптимизировано для ничего», еще не все идеально, есть возможности для совершенствования.

А что насчет структур данных SPL?
К сожалению… они ужасны. Раньше, до PHP7, они предлагали _некоторые_ преимущества, но сейчас мы дошли до точки, когда использование SPL не имеет практического смысла.

Почему мы не можем просто поправить и улучшить их?
Да, мы могли бы, но я считаю, что их дизайн и реализация настолько бедны, что лучше бы найти более современную замену.
«SPL data structures are horribly designed.»
Anthony Ferrara


Введение: php-ds — расширение для PHP7, добавляющее структуры данных. Этот пост кратко охватывает поведение, производительность и преимущества каждой из них. Также в конце вы найдете список ответов на ожидаемые вопросы.

Github: https://github.com/php-ds
Пространство имен: Ds\
Интерфейсы: Collection, Sequence, Hashable
Классы: Vector, Deque, Stack, Queue, PriorityQueue, Map, Set
Читать дальше →
Total votes 43: ↑38 and ↓5 +33
Comments 27

DroidScript – простой и функциональный инструмент для разработки мобильных приложений под Android

Reading time 3 min
Views 24K

Некоторое время назад мне была поставлена следующая задача: разработать прототип приложения под Android для беспроводной связи с Arduino в реальном времени. Погружаться ради этого с головой в Java, Qt или C# было непрактично, поэтому решил искать готовое решение на скриптовом движке. PhoneGap? Интересно, но не для работы с Bluetooth. Что-то из мобильных сред разработки? Возможно, но хотелось работать в привычной десктопной среде, а не на планшете с небольшим экраном. Вскоре желаемое нашлось – мобильная среда разработки DroidScript с возможностью подключения к ней из браузерной WiFi IDE, которую можно установить на Windows, Mac и Linux.
Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Comments 22

Делимся информацией о работе своего сайта. Обзор сервиса ХостТрекер, часть 5

Reading time 2 min
Views 2.9K
Открытость и прозрачность — немало современных компаний упоминают эти понятия среди принципов своей работы. Сервис мониторинга ХостТрекер предоставляет возможность прозрачно и открыто делиться с миром информацией о житиях своих сайтов и сервисов. Честно признаваться клиентам, когда и что не работало — в ряде случаев очень неплохая идея. Если, конечно, это случается нечасто. С другой стороны, что может быть лучшим стимулом перестать откладывать накопившиеся задачи и заставить, наконец, сайт работать как следует?



Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Comments 2

Синдром хронической усталости: как разобраться со сном, если ты устал уставать

Reading time 6 min
Views 47K
image

Проблема хронической усталости близка каждому. Сегодняшняя статья по книге «Вечно уставший» Джейкоба Тейтельбаума посвящена нарушениям сна и способам их исправления.

Почему сон важен


Ежедневные восемь часов ночного сна — один из самых эффективных способов повысить жизненный тонус.

Сегодня среднее время сна — 6 часов 45 минут, а ста годами ранее это были 9 часов. Наши предки ложились спать с заходом солнца и просыпались с рассветом, поэтому иногда их сон достигал 11 часов.

Сегодня проспать 8 часов это уже большая редкость — электричество, интернет и телевидение делают свое дело.
Читать дальше →
Total votes 27: ↑21 and ↓6 +15
Comments 71

+500 бесплатных инструментов для запуска вашего стартапа в 2017 году

Reading time 40 min
Views 155K


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

С другой стороны, в начале пути важно минимизировать издержки и внимательно следить за своими платными подписками. В конце месяца они могут незаметно вылиться в огромные накладные расходы.

Итак, мы нашли в интернете бесплатные и условно-бесплатные инструменты для роста вашего бизнеса. Когда они дадут вам желаемый результат, вы можете оформить платную подписку.
Читать дальше →
Total votes 74: ↑60 and ↓14 +46
Comments 26

Редкий SQL

Reading time 6 min
Views 49K

Вводная


Когда часто сталкиваешься с какой-либо технологией, языком программирования, стандартом, формируется некая картина их возможностей, границы, в которых они используются. Так может продолжаться достаточно долго, пока на глаза не попадаются примеры, которые расширяют затвердевшие горизонты знания. Сегодня, я хотел бы рассказать о таких примерах и продемонстировать их для языка SQL. Интересные и редкие конструкции, забытые выражения, странные приемы ждут Вас в этой статье. Кого заинтересовал, добро пожаловать под кат.
Читать дальше →
Total votes 25: ↑19 and ↓6 +13
Comments 63

PaaS, DBaaS, SaaS… Что все это значит?

Reading time 5 min
Views 63K


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

Мы в своей работе эти термины часто употребляем, и сейчас предлагаем раз и навсегда разобраться с теми из них, что заканчиваются на *aaS. Кстати, на днях заметили, что некоторые наши партнеры и клиенты просто пропускают эти аббревиатуры в тексте, не зная, что это такое. Сокращения такого рода зачастую проходят мимо внимания людей. И совершенно напрасно. Для того, чтобы получить оптимальный сервис, подходящий для своих нужд, стоит разбираться в соответствующей терминологии.
Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Comments 6

Что такое шаблоны проектирования?

Reading time 11 min
Views 79K
Вы когда-либо задавались вопросом, что такое шаблоны проектирования? В этой статье будет разъяснено, почему шаблоны проектирования имеют существенное значение, и будет приведено несколько примеров на PHP, поясняющих, когда и где их следует использовать.

Шаблоны проектирования — это допускающие многократное использование оптимизированные решения проблем программирования, с которыми мы сталкиваемся каждый день. Шаблон проектирования — это не класс или библиотека, которые мы можем просто вставить в нашу систему. Он — много больше. Это — некоторый шаблон, который должен быть реализован в надлежащей ситуации. Он не зависит от языка. Хороший шаблон проектирования должен быть таким, чтобы его можно было использовать с большинством языков (если не со всеми) в зависимости от характеристик языка. Чрезвычайно важно то, что любой шаблон проектирования необходимо использовать очень осторожно — если он применён в ненадлежащем месте, то его действие может быть разрушительным и породить много проблем для вас. Однако применённый в нужном месте в нужное время он может стать вашим спасителем.
Читать дальше →
Total votes 35: ↑22 and ↓13 +9
Comments 75

Руководство по PHP7

Reading time 16 min
Views 73K

php7-tutorial.com


Цель этого сайта помочь вам обнаружить нововведения в PHP 7. Это руководство представляет из себя набор простых упражнений, в которых вам будет предложено что-либо решить, либо исправить ошибку. Каждое упражнение соответствует стандарту RFC (набор технической спецификации и стандартов) и сопровождается кратким пояснениями.

От переводчика


Всем привет, с вами Максим Иванов, и сегодня мы поговорим о нововведениях PHP 7, о которых более подробно поведает нам Гийом Девар (Guillaume Dievart) в своем руководстве, сделанном в форме упражнений. Но прежде чем начинать, я хочу отметить один момент. Я не буду приводить полное руководство по данному языку программирования в этом обзоре, просто оставлю здесь ссылку на самую свежую и достоверную информацию. Джош Локхарт (автор гайдлайна «PHP: правильный путь», разработчик Slim Framework), написал данную книгу с целью помочь новичкам, по его словам: «В последнее время существует много дискуссий о том, что PHP сообществу и, в целом, программистам не хватает достоверной информации по языку PHP, поэтому мое руководство призвано решить эту проблему». Чем именно? Вы знаете, что по интернету разбросано огромное количество материла по PHP, но многое уже устарело или не приводит к написанию качественного кода. В этой книге присутствуют основные актуальные сведения с ссылками на проверенные ресурсы. Если кому интересно, такое есть и по JavaScript. А теперь вернемся к упражнениям и приступим.
Читать дальше →
Total votes 33: ↑29 and ↓4 +25
Comments 55

Мониторинг сервисов с Prometheus

Reading time 10 min
Views 167K
Prometheus

В предыдущих публикациях мы уже затрагивали вопросы мониторинга и сбора метрик. В сегодняшней статье мы хотели бы вернуться к этой теме и рассказать об интересном инструменте под названием Prometheus. Он был создан в 2012 году в качестве внутренней системы мониторинга небезызвестного проекта SoundCloud, но впоследствии получил более широкое распространение.
Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Comments 13

Как покрыть мониторингом все слои инфраструктуры

Reading time 9 min
Views 31K
image

Как-то я посчитал, что 1 минута простоя hh.ru в будни днем затрагивает около 30 000 пользователей. Мы постоянно решаем задачу снижения количества инцидентов и их длительности. Снизить количество проблем мы можем правильной инфраструктурой, архитектурой приложения — это отдельная тема, ее мы пока не будем брать во внимание. Поговорим лучше о том, как быстро понять, что происходит в нашей инфраструктуре. Тут как раз нам и помогает мониторинг.

В этой статье на примере hh.ru я расскажу и покажу, как покрыть мониторингом все слои инфраструктуры:
  • client-side метрики
  • метрики с фронтендов (логи nginx)
  • сеть (что можно добыть из TCP)
  • приложение (логи)
  • метрики базы данных (postgresql в нашем случае)
  • операционная система (cpu usage тоже может пригодиться)

Читать дальше →
Total votes 45: ↑41 and ↓4 +37
Comments 15

Внедрение code style в разработку

Reading time 3 min
Views 13K
Добрый день, %username%

Хочу поделиться своим успешным опытом внедрения автоматической проверки стилей кода в проект и рассказать на какие грабли наступали. Опубликовать opensource сообществу инструменты, которые были созданы для решения задачи

Немного о нашем проекте: PHP сайт, лежит в git репозитории объемом 2Gb, состоит из 20k php файлов, возраст проекта- 10 лет, в данный момент у нас 15 разработчиков. Для code review используем atlassian stash. Всю разработку ведем в рамках отдельных веток, которые после прохождения code review вливаем в master и деплоим на прод
Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Comments 31

Давайте поговорим о пиратстве и свободной информации

Reading time 6 min
Views 31K


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

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

И кажется, довольно скоро это коснётся вообще всех отраслей, где возможна интеллектуальная собственность. Почему я так думаю? Сейчас объясню. Возможно, конечно, я не прав, но мои ощущения подсказывают, что привычные модели скоро отъедут, как в своё время отъехали многие физические носители информации.
Читать дальше →
Total votes 80: ↑74 and ↓6 +68
Comments 101

Обзор вариантов организации доступа к сервисам корпоративной сети из Интернет

Reading time 11 min
Views 159K

© Кившенко Алексей, 1880

Данная статья содержит обзор пяти вариантов решения задачи организации доступа к сервисам корпоративной сети из Интернет. В рамках обзора приводится анализ вариантов на предмет безопасности и реализуемости, что поможет разобраться в сути вопроса, освежить и систематизировать свои знания как начинающим специалистам, так и более опытным. Материалы статьи можно использовать для обоснования Ваших проектных решений.
Читать дальше →
Total votes 15: ↑13 and ↓2 +11
Comments 23

Установка связки Carbon + Graphite + Grafana + Nginx + MySQL для сбора и отображения метрик в Ubuntu

Reading time 5 min
Views 52K

Хочу поделиться опытом установки и настройки сервиса для сбора и отображения метрик Graphite + Grafana.
Искал долго, читал много, нашёл 2 статьи на английском, добавил своё, в итоге получилась данная статья.


Немного предыстории..


Graphite — система для отображения метрик (числовых значений) для любых свойств сервера или домашнего ПК.


Carbon — демон/бэкенд, в который пишутся метрики.


Grafana — более красивая и удобная Web-морда для Graphite.


И так, приступим.

Читать дальше →
Total votes 16: ↑13 and ↓3 +10
Comments 35

Книга «Алгоритмы: разработка и применение. Классика Computer Science»

Reading time 11 min
Views 42K
Привет, Хаброжители! У нас вышла новинка:

image Впервые на русском языке выходит одна из самых авторитетных книг по разработке и использованию алгоритмов. Алгоритмы — это основа программирования, определяющая, каким образом программное обеспечение будет использовать структуры данных.

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

Алгоритмический анализ состоит из двух фундаментальных компонентов: выделения математи-чески чистого ядра задачи и выявления методов проектирования подходящего алгоритма на осно-вании структуры задачи. И чем лучше аналитик владеет полным арсеналом возможных методов проектирования, тем быст-рее он начинает распознавать «чистые» формулировки, лежащие в основе запутанных задач реального мира.
Читать дальше →
Total votes 19: ↑17 and ↓2 +15
Comments 11

Тестирование мобильных приложений: tips & tricks

Reading time 12 min
Views 127K
Наша новая статья представляет собой список рекомендаций и советов. Из неё вы узнаете:

  • как облегчить процесс тестирования мобильных приложений в целом;
  • о специфике работы с сетью, внутренними и внешними сервисами, платформах iOS и Android;
  • какие процессные решения и изменения позволят вам развиваться быстрее и вводить культуру тестирования в отделе разработки;
  • какие существуют полезные инструменты и решения для тестирования, отладки, мониторинга и миграции пользователей.

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

Как облегчить процесс тестирования?


1. Используйте принципы эвристики и мнемоники — они помогают удержать в голове все аспекты, которые нужно учесть при тестировании фичи или приложения.

2. Скриншоты, логи и видео — лучшие аргументы тестировщика!
К сожалению, с логами «общения» с сервером зачастую не всё так гладко, как с клиентскими логами. Обычно они добавляются скорее для удобства разработчика при отладке работы с сервером, чем для работы тестировщика.
Читать дальше →
Total votes 27: ↑27 and ↓0 +27
Comments 12

Information

Rating
Does not participate
Date of birth
Registered
Activity