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

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

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

Российские стартаперы не достигают успеха из-за лени

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

Основатели выстреливших российских стартапов объясняют, что на самом деле мешает нашим молодым ИТ-предпринимателям.
Читать дальше →

Как спасти проект от закрытия, разобравшись с MySQL

Время на прочтение4 мин
Количество просмотров21K
Продолжаю повествование о разработке экономической онлайн игры. В этой части речь пойдет об истории 2016 года, когда во весь рост стал вопрос закрытия проекта.

Отправная точка


По мере развития игры игровых объектов становится все больше и больше, компании растут и обсчитывать игровую ситуацию становится все сложнее и сложнее. Транзакции повисали по таймауту и игровые объекты сохраняли свое состояние с ошибками, что приводило в свою очередь к другим ошибкам. В логах сервера с завидной регулярностью писалось о следующей проблеме: Lock wait timeout exceeded; try restarting transaction.

Google явного решения не давал, общая рекомендация заключалась в прочесывании бизнес-логики.

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

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

В общем — ситуацию надо было спасать. Засучив рукава, мы начали с чистого листа искать решение.
Читать дальше →

Telegram-бот, webhook и 50 строк кода

Время на прочтение5 мин
Количество просмотров176K
Как, опять? Ещё один туториал, пережёвывающий официальную документацию от Telegram, подумали вы? Да, но нет! Это скорее рассуждения на тему того, как построить функциональный бот-сервис используя Python3.5+, asyncio и aiohttp. Тем интереснее, что заголовок на самом деле лукавит…
Читать дальше →

Сравнение решений по балансировке высоконагруженных систем

Время на прочтение10 мин
Количество просмотров26K
И вновь мы публикуем расшифровки выступлений с конференции HighLoad++, которая прошла в подмосковном Сколково 7—8 ноября 2016 года. Сегодня Евгений Пивень знакомит нас с решениями балансировки в облаках.



Меня зовут Женя, я работаю в компании IPONWEB. Сегодня мы поговорим про развитие наших решений в балансировке высоконагруженных систем.

Сначала я пробегусь по понятиям, которыми буду оперировать. Начнём с того чем мы занимается: RTB, Real Time Bidding — показ рекламы с аукционом в реальном времени. Очень упрощенная схема того, что происходит, когда вы заходите на сайт:
Читать дальше →

JSON Web Token и sliding expiration в web-приложении

Время на прочтение5 мин
Количество просмотров65K
В web-приложениях наиболее распространенным методом аутентификации до настоящего времени являлось использование файлов cookies, которые хранят идентификатор серверной сессии и имеют свой срок годности (expiration date). При этом существует возможность эту дату автоматически продлевать при очередном обращении пользователя на сервер. Такой подход носит название sliding expiration.

Однако в последнее время разработчики стремятся отказаться от использования cookies и серверной сессии в виду ряда причин и ищут альтернативные способы аутентификации. Одним из них является использование JSON Web Token (JWT) — маркер, который содержит в зашифрованном виде всю минимально необходимую информацию для аутентификации и авторизации. При этом не требуется хранить в сессии данных о пользователе, так как маркер самодостаточный (self-contained). Однако это в свою очередь добавляет определенные сложности с контролем над JWT, что может свести на нет все его преимущества перед cookies. На просторах Интернет мною было найдено несколько решений этих проблем, и здесь я бы хотел предложить альтернативный вариант, который, как мне кажется, при своей простоте должен удовлетворить потребности многих проектов.
Читать дальше →

История из российского А(АА)-инди геймдева на одном примере

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


Под катом вас ждет большая и наполненная графикой история, как группа заинтересованных людей за 2 года создали инди-проект уровня ААА (по их мнению)

Как устроен GIL в Python

Время на прочтение6 мин
Количество просмотров128K
Почему после распараллеливания выполнение вашей программы может замедлиться вдвое?
Почему после создания потока перестает работать Ctrl-C?
Представляю вашему вниманию перевод статьи David Beazley «Inside the Python GIL». В ней рассматриваются некоторые тонкости работы потоков и обработки сигналов в Python.

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

Как оценивать большие задачи

Время на прочтение10 мин
Количество просмотров24K
Существует множество способов оценить пользовательские истории. Мы используем собственную методологию, чтобы оценить и проработать задачи перед тем, как писать код. Как мы до этого дошли и почему наш подход лучше, чем Planing Poker, читайте под катом.

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

Кого отправлять учиться PMBok

Время на прочтение2 мин
Количество просмотров94K
Некоторое время назад я менял работу, и занимался активным поиском работы менеджера — руководителя проектов в области IT. И я обратил внимание, на довольно частое требование знание методологии PMI, PMBok.

И вот на моей текущей работе есть довольно много менеджеров проекта, скажем так начального и среднего уровня. У руководства компании есть много претензий к тому, как проекты выполняются. Что же делать? Первая мысль — отправить всех учиться управлению проектами и лучше всего дать методологию PMI.
Читать дальше →

85% сотрудников забивает на системы управления проектами. Как мы делаем свою

Время на прочтение5 мин
Количество просмотров32K
Последние 10 лет для ведения проектов мы пользовались такими системами как YouTrack, Jira, Asana, Slack, SmartSheet, BaseCamp, Trello и даже белой доской, а также постоянно тестировали что-то новое. По нашему мнению, главная проблема всех систем управления в том, что люди в компании попросту забивают на её использование. А было бы здорово, если информация на все отделы распространялась из одной системы и вся команда сама активно постоянно ей пользовалась.

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

Для начала хотели реализовать 2 вещи:

  • Секундомеры на каждой задаче, потому что было ощущение, что это позволит точнее понимать как расходуется время в команде;
  • Универсальность. Предполагали, что отдел разработки, поддержки и все остальные отделы могут работать в одной системе.



Мы с головой ушли в это ответвление компании, разработка идёт уже 10 месяцев, а с нового года взяли ещё человека на мобильные версии. Сейчас открыто бета-тестирование, более 50 команд активно пользуется нашей системой. Под катом хотим поделиться тем, что у нас получилось и рассказать о том, какие кастомные подходы к управлению проектами оказались провальными.
Читать дальше →

Python: коллекции, часть 4/4: Все о выражениях-генераторах, генераторах списков, множеств и словарей

Время на прочтение17 мин
Количество просмотров199K
Часть 1 Часть 2 Часть 3 Часть 4
imageЗаключительная часть моего цикла, посещенного работе с коллекциями. Данная статья самостоятельная, может изучаться и без предварительного изучения предыдущих.

Эта статья глубже и детальней предыдущих и поэтому может быть интересна не только новичкам, но и достаточно опытным Python-разработчикам.

imageБудут рассмотрены: выражения-генераторы, генераторы списка, словаря и множества, вложенные генераторы (5 вариантов), работа с enumerate(), range().
А также: классификация и терминология, синтаксис, аналоги в виде циклов и примеры применения.

Я постарался рассмотреть тонкости и нюансы, которые освещаются далеко не во всех книгах и курсах, и, в том числе, отсутствуют в уже опубликованных на Habrahabr статьях на эту тему.

Оглавление:


1. Определения и классификация.
2. Синтаксис.
3. Аналоги в виде цикла for и в виде функций.
4. Выражения-генераторы.
5. Генерация стандартных коллекций.
6. Периодичность и частичный перебор.
7. Вложенные циклы и генераторы.
8. Использование range().
9. Приложение 1. Дополнительные примеры.
10. Приложение 2. Ссылки по теме.
Изучаем детали, иллюстрации и примеры

Pygest #2. Релизы, статьи, интересные проекты из мира Python [15 января 2017 — 29 января 2017]

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

Всем привет!

Второй выпуск дайджеста на Хабрахабр о новостях из мира Python. Присылайте свои актуальные материалы, а также любые замечания и предложения, которые будут добавлены в ближайший дайджест.

А теперь к делу!
Перейти к дайджесту

Зарплаты «топов» ИТ-компаний вновь попали в топ

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

Исследование рекрутингового агентства GlobalCareer свидетельствует, что зарплаты топ-менеджеров в ИТ-компаниях остаются одними из самых высоких в сравнении с другими отраслями. Исследователи проанализировали компенсационные пакеты топ-менеджеров и руководителей высшего звена в 60 крупнейших компаниях Москвы из секторов ИТ и телекоммуникаций.

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

Общая сумма вознаграждения гендиректора в расчете на один месяц составляет 1,14-2,66 миллиона рублей. Это объясняется размером годового бонуса
Читать дальше →

Семь отличных ускорителей сайтов для Linux и Unix

Время на прочтение4 мин
Количество просмотров26K
«Производительность веб-проектов» — это, с точки зрения пользователя, скорость, с которой страницы загружаются и отображаются браузером. Что даёт повышение скорости работы некоего сайта? На самом деле – много всего. Здесь и увеличение продаж, и повышение лояльности клиентов, и улучшение впечатлений пользователей от работы с ресурсом. Скорость, с которой веб-ресурс реагирует на запросы, особенно важна для тех пользователей, которые сидят на медленных каналах связи или занимаются веб-серфингом со смартфонов или планшетов.

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

Обзор Knime Analytics Platform — open source системы для анализа данных

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

О KNIME


Вашему вниманию представляется обзор Knime Analytics Platform – open source фреймворка для анализа данных. Данный фреймворк позволяет реализовывать полный цикл анализа данных включающий чтение данных из различных источников, преобразование и фильтрацию, собственно анализ, визуализацию и экспорт.

Скачать KNIME (eclipse-based десктоп приложение) можно отсюда: www.knime.org

Кому может быть интересна эта платформа:

  • Тем, кто хочет анализировать данные
  • Тем, кто хочет анализировать данные и не владеет навыками программирования
  • Тем, кто хочет покопаться в неплохой библиотеке реализованных алгоритмов и, возможно, узнать что-то новое
Читать дальше →

Так ли популярны боты и каналы в мессенджерах

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

— «Вы видели моего бота?»
— «А вы подписаны на мой канал в телеграме?»
— «100500 каналов в телеграме, о которых никто не знает, но о которых мы напишем так как нам нечего писать»

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

Везде пишут ботов и небольшие туториалы вида «Как написать бота за минуту, чтобы он вам гладил белье, искал девушек и мог делать это в суперчатике телеграма».

30 Июня 2015 года, через 3 дня после релиза Telegram Bot API мы сделали бота и писали об этом статью на хабр, тогда мы и не догадывались что все это выльется во всеобщее безумие.

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

Будущее мобайла — не приложения, а браузеры

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


В дискуссиях о будущем мобайла постоянно звучит тезис о том, что «в конце концов останутся только мобильные приложения под iOS или Android». Старший менеджер по продукту в Intercom Хью Даркин решил с этим поспорить. Он считает: у многих, кто говорит об этом, есть личная заинтересованность в выживании нативных мобильных приложений.

Статья переведена компанией-локализатором Alconost

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

Интернет-разведка в действии: who is Mr./Ms. Habraman?

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

Рассмотрим следующую ситуацию: новый пользователь Хабра, получив «минус в карму» еще до первого своего поста/комментария на ресурсе, решает узнать, а кто же скрывается за изощренно придуманными никами пользователей Хабра и задается вопросом: who is Mr./Ms. Habraman?
Читать дальше →

7 сервисов для поиска уязвимости мобильных приложений

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


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

Согласно последним исследованиям NowSecure более чем в 25% мобильных приложений есть хотя бы одна критически опасная уязвимость.

В 59% финансовых приложений для Android есть три уязвимости из списка OWASP Топ-10.

Чем больше используют мобильные телефоны, тем больше появляется мобильных приложений. В магазине приложений Apple App Store доступно более 2 миллионов приложений, а в Google Play Store — более 2,2 миллионов.
Читать дальше →

Async/await это шаг назад для JavaScript'a?

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


В конце 2015 года я услышал об этой паре ключевых слов, которые ворвались в мир JavaScript, чтобы спасти нас от promise chain hell, который, в свою очередь, должен был спасти нас от callback hell. Давайте посмотрим несколько примеров, чтобы понять, как мы дошли до async/await.
Читать дальше →

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность