Как стать автором
Обновить
0
0
Даниил @danku13

Технический владелец продукта

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

Искусство реиграбельности

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

С хорошей игрой расставаться тяжело: вы покидаете мир, в который были погружены в течение последних десяти, двадцати или даже сорока часов, и после финального аккорда любимые персонажи и запомнившиеся места начинают превращаться в блеклые воспоминания. А вам хочется играть дальше, и поэтому искусственное завершение игры лишь портит впечатление. Когда вы доходите до финала, в эмоциональную кульминацию примешивается оттенок печали: только что закончилось что-то восхитительное, что может никогда не повториться. Через несколько дней вы снова садитесь за игру, чтобы пережить знакомые ощущения… но что-то не так. Игровой процесс уже не кажется увлекательным — даже утомляет, дизайн уровней и толпы врагов не соответствуют навыкам, развитым вами за часы игры. Персонажи кажутся плоскими, а сюжет — предсказуемым. Вы разочаровываетесь и начинаете искать другие игры, которые — быть может — затронут те же струны в душе. Приключение подошло к концу, и не осталось ничего — лишь воспоминания: они будут радовать, но заново пережить эти впечатления уже не получится.

Игры по своей сути — это способ рассказывать истории, а неотъемлемая особенность историй состоит в том, что они заканчиваются.

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

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии14

Принципы онбординга новых пользователей

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

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

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

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии1

Крадущийся тигр, затаившийся SQLAlchemy. Основы

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


Доброго дня.


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


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

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

Пакет валидации mobx form validation kit 2.0 (TypeScript / Flutter)

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

Предисловие


Почти полтора года назад мы выпустили первую версию библиотеки "Новый пакет валидаций для React на Mobx @quantumart/mobx-form-validation-kit"
Время шло, и библиотека корректировалась и не стояла на месте, да собственно, как и наше развитие в целом. Мы перешли на flutter, по пути попинав ReactNative, сделали еще несколько проектов. И новые задачи потребовали от нас новых и современных решений, в том числе и переработки mobx-form-validation-kit.
Сегодня я рад представить вам новую версию пакета mobx-form-validation-kit.
Для строго типизированного TypeScript
mobx-form-validation-kit 2.0
И переписанный вариант библиотеки под Flutter
flutter_mobx_form_validation_kit 2.0


Читать дальше →
Всего голосов 6: ↑4 и ↓2+5
Комментарии0

Интерактивная визуализация данных при помощи Plotly: строим красивые графики с Express и Cufflinks

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


Если Вы все еще используете Matplotlib для создания графиков в Python, самое время взглянуть на мир с высоты альтернативной библиотеки интерактивной визуализации.

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

Вот камни преткновения, которые могут появиться на пути авантюристов, решивших покорить эту гору:

  • непонятная начальная настройка для работы оффлайн без аккаунта;
  • неимоверное количество строк кода;
  • устаревшая документация;
  • множество различных инструментов Plotly, в которых можно заблудиться (Dash, Express, Chart Studio и Cufflinks).

Несколько раз попытавшись вскарабкаться на эту гору, я все же нашел карту, снаряжение и короткую тропинку к вершине. В этой статье я укажу вам путь, рассказав как начать работу в оффлайн-режиме, как создавать графики, а потом их корректировать, куда обратиться за помощью и какими инструментами пользоваться.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Что тимлиду спросить о компании на собеседовании

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

По мотивам своих собеседований, а также собеседований коллег и mentee, составил список вопросов от тимлида к компании, что стоит прояснить на собеседовании — что спросить собеседующего.

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

Каковы финансовые показатели компании?

Является ли компания прибыльной или тратит деньги инвесторов? Или даже до инвесторов ещё не дошло, и основатели пока платят из своего кармана? Как выглядит бизнесовый план развития?

Если компания имеет представительство в РФ, официальное ли (по ТК РФ) трудоустройство и полностью ли "белая" зарплата?

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

Расскажите про ваше понимание «хорошего тимлида»

У собеседника должно быть четкое и непротиворечивое понимание, что он вкладывает в понятие «тимлид» и какие критерии используются для оценки работы тимлида.

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

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

Читать далее
Всего голосов 32: ↑28 и ↓4+36
Комментарии87

Сравниваем грейды IT-инженеров крупных зарубежных компаний: Google, Facebook, Uber и Booking

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

Бывают компании, где нет четкой линейки карьерного роста. Разработчиков максимум делят на джунов, мидлов и сеньоров, но требования к каждому уровню разнятся даже в отделах одной фирмы.


У гигантов IT-индустрии все не так — у них есть четкие грейды IT-специалистов со своими стандартами и прописанными «техническими требованиями». Мы пообщались с работниками компаний уровня FAANG, почитали требования самих компаний и составили списки с требованиями к каждому грейду IT-инженеров. Можете проверить, какому грейду соответствуете вы. А если вам пришлют оффер с конкретным грейдом — узнать, чего от вас будут ждать на работе.




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

Агрегаторы вакансий для разработчиков: сравниваю 10+ самых популярных

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

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

К рейтингу
Всего голосов 5: ↑4 и ↓1+4
Комментарии6

Виджеты на Android. Редкая фича, в которой придется разобраться

Время на прочтение11 мин
Количество просмотров32K
Привет, Хабр! Меня зовут Александр Хакимов, я android-разработчик в компании FINCH.

У вас бывало такое, что ваш дизайн был под iOS, а вам приходится адаптировать его под android? Если да, то часто ли ваши дизайнеры используют виджеты? К сожалению, виджет — редкий кейс для многих разработчиков, потому что с ним редко кто работает,

В статье я подробно расскажу как создать виджет, на что стоит обратить внимание и поделюсь своим кейсом.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Готовим DRP — не забудьте учесть метеорит

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

Даже во время катастрофы всегда есть время на чашку чая

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

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

В этом посте я хочу поделиться рекомендациями, как надо писать DRP и что он должен содержать. А еще мы рассмотрим следующие штуки:

  1. Научимся думать как злодей.
  2. Разберем пользу чашки чая во время апокалипсиса.
  3. Продумаем удобную структуру DRP
  4. Посмотрим, как нужно его тестировать
Читать дальше →
Всего голосов 23: ↑22 и ↓1+33
Комментарии16

Простые стейт-машины на службе у разработчика

Время на прочтение8 мин
Количество просмотров188K
Представьте на минутку обычного программиста. Допустим, его зовут Вася и ему нужно сделать анимированную менюшку на сайт/десктоп приложение/мобильный апп. Знаете, которые выезжают сверху вниз, как меню у окна Windows или меню с яблочком у OS X. Вот такое.

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

var opened = false;

Вроде, работает. Но, если быстро кликать по кнопке, меню начинает моргать, открываясь и закрываясь не успев доанимироваться в конечное состояние. Вася добавляет флаг animating. Теперь код у нас такой:

var opened = false;
var animating = false;

function onClick(event) {
  if (animating) return;
  if (opened) close();
  else open();
}

Через какое-то время Васе говорят, что меню может быть полностью выключено и неактивно. Не вопрос! Мы-то с вами тут программисты опытные, все понимаем, что… нужно добавить ЕЩЕ ОДИН ФЛАГ! И, всего-то через пару дней разработки, код меню уже пестрит двустрочными IF-ами типа вот такого:

if (enabled && opened && !animating && !selected && finishedTransition && !endOfTheWorld && ...) { ... }

Вася начинает задаваться вопросами: как вообще может быть, что animating == true и enabled == false; почему у него время от времени все глючит; как тут вообще поймешь в каком состоянии находится меню. Ага! Состояния... О них дальше и пойдет речь.

Знакомьтесь, это Вася.


Читать дальше →
Всего голосов 114: ↑92 и ↓22+70
Комментарии96

Кое-что об inode

Время на прочтение5 мин
Количество просмотров85K
Периодически, с целью переезда в ЦРС собеседуюсь в разных крупных компаниях, в основном Питера и Москвы на должность DevOps. Обратил внимание, что во многих компаниях (во многих хороших компаниях, например в яндексе) задают два сходных вопроса:

  • что такое inode;
  • по каким причинам можно получить ошибку записи на диск (или например: почему может закончиться место на диске, суть одна).

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

Начну «снизу», т.е. с жесткого диска (флешки, SSD и прочие современные штуки отбросим, для примера рассмотрим любой 20 или 80 гиговый старый диск, т.к. там размер блока 512 байт).

Жесткий диск не умеет адресовать свое пространство побайтно, условно оно разбито на блоки. Нумерация блоков начинается с 0. (называется это LBA, подробности тут: ru.wikipedia.org/wiki/LBA)


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

Маленькие тайны тестирования большой LMS

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


Редко получается найти проект, в который влюбляешься еще на собеседовании и которым гордишься, когда он завоевывает новые рынки. Тем более приятно, когда профессионализм коллег на высоте, а в своей команде чувствуешь себя как в кругу семьи. Мне повезло не только найти такой проект, но и некоторое время назад начать влиять на процесс тестирования в нём. Я расскажу, что входит в наше понимание оптимального процесса; как мы пришли к ежемесячным релизам и как они у нас работают; а также о том, как мы приспособились к условиям карантина.
Читать дальше →
Всего голосов 5: ↑4 и ↓1+5
Комментарии0

[Личный опыт] Как разработчик, который мечтал о Калифорнии, переехал в Новую Зеландию, а на ПМЖ остался в Швеции

Время на прочтение21 мин
Количество просмотров35K
Александр Любоженко из Петербурга поступил на факультет радиофизики и начинал, как junior QA. За 13 лет он несколько раз неудачно пытался переехать в Америку, но в итоге пожил в Окленде и стал бэкенд- и дата-инженером Spotify в Стокгольме. Рассказываем про его приключения, плюсы/минусы жизни в Новой Зеландии и Швеции и ещё немного — про музыку.


Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии51

Из пилотов в тестировщики: как бывший военный построил запасной аэродром в IT

Время на прочтение5 мин
Количество просмотров13K
Меня зовут Сергей, я специалист отдела тестирования «СёрчИнформ». До «СёрчИнформ» работал сисадмином, а еще раньше – был военным летчиком. Собственно, историю перехода из профессии в профессию, которую многие знакомые считают радикальной, я и хочу рассказать. Сразу оговорюсь, радикальным этот карьерный поворот кажется только со стороны. Для меня история вполне закономерная. Но начну сначала.

image

Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии21

Удачная модель ветвления для Git

Время на прочтение10 мин
Количество просмотров998K
Перевод статьи Vincent Driessen: A successful Git branching model

В этой статье я представляю модель разработки, которую использую для всех моих проектов (как рабочих, так и частных) уже в течение года, и которая показала себя с хорошей стороны. Я давно собирался написать о ней, но до сих пор не находил свободного времени. Не буду рассказывать обо всех деталях проекта, коснусь лишь стратегии ветвления и управления релизами.



В качестве инструмента управления версиями всего исходного кода она использует Git.

Читать дальше →
Всего голосов 180: ↑171 и ↓9+162
Комментарии105

Более мощный конкурент Raspberry Pi 3 стоит всего $10

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

Одноплатных компьютеров, хороших и разных, становится все больше. Недавно мы писали о сетевой альтернативе Raspberry Pi, а сейчас появился еще более интересный вариант. Речь пойдет об Iconikal Rockchip 3328.

Он более современный, чем Raspberry Pi 3, с ним поставляется сразу несколько аксессуаров, а цена этого одноплатника почти в четыре раза ниже. Девайс уже поступил в продажу на Amazon, правда, там его очень быстро раскупили.
Читать дальше →
Всего голосов 53: ↑44 и ↓9+53
Комментарии107

Grafana+Zabbix: Визуализация работы производственной линии

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

В этой статья я хочу поделиться опытом использования open source систем Zabbix и Grafana для визуализации работы производственных линий. Информация может быть полезна тем, кто ищет быстрый способ визуального отображения или аналитики собранных данных в проектах промышленной автоматизации или IoT. Статья не является подробным руководством, это скорее концепция системы мониторинга, основанная на открытом программном обеспечении для производственного предприятия.

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

39 аббревиатур на английском для начинающих маркетологов и сеошников

Время на прочтение11 мин
Количество просмотров17K
Практически все термины, которые используют специалисты в маркетинге и смежных сферах, крепко привязаны к английскому языку. Поэтому уже на этапе обучения профессии нужно их изучать.

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

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

Важно! Мы знаем, что многие аббревиатуры используются в оригинальном виде, на английском. Но сложность для новичка в том, что они все довольно похожи. Поэтому есть риск запомнить неправильно. Мы считаем, что оптимальный способ выучить их — сначала понять расшифровку и перевод, а затем вникать в смысл и нюансы.
Читать дальше →
Всего голосов 7: ↑4 и ↓3+3
Комментарии6

Год приключений с graphene-python

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

Год приключений с graphene-python


image


Всем привет, я python-разработчик. Последний год я работал с graphene-python + django ORM и за это время я пытался создать какой-то инструмент, чтобы сделать работу с graphene удобнее. В результате у меня получилась небольшая кодовая база graphene-framework и набор некоторых правил, чем я бы и хотел поделиться.

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

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Product Manager, Chief Product Officer (CPO)
От 400 000 ₽
Product development
Business analytics
Analytics of requirements