Pull to refresh
16
0
Pavel Korotkiy @outdead

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

Send message

Как подружиться с хаосом и осознанно управлять своим временем. Опыт продуктового дизайнера

Level of difficultyEasy
Reading time11 min
Views9.6K
image

Привет! Меня зовут Анна Большешапова, я продуктовый дизайнер СберМаркета — занимаюсь развитием программы СберСпасибо, подпиской СберПрайм, а еще — самыми разными задачами: от рассрочки до разработки карт лояльности магазинов. Я пришла в команду полгода назад и тогда же столкнулась с проблемой: мне стало не хватать времени на задачи.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments11

Проблема статус-кодов HTTP

Reading time6 min
Views29K

Ситуацию с использованием кодов ответов HTTP можно заносить в палату мер и весов: вот что происходит, когда благие намерения разработчиков спецификации сталкиваются с жестокой реальностью. Даже с двумя жестокими реальностями.


Как мы обсудили в Главе 10, одна из целей существования семантических ошибок — помочь клиенту понять, что стало причиной ошибки. При разработке спецификации HTTP (в частности, RFC 7231) эта цель очевидно была одной из главных. Более того, архитектурные ограничения REST, как их описал Фьелдинг в своей диссертации, предполагают, что не только клиенты должны понимать семантику ошибки, но и все сетевые агенты (прокси) между клиентом и сервером в «многослойной» архитектуре. И, в соответствии с этим, номенклатура статус-кодов HTTP действительно весьма подробно описывает почти любые проблемы, которые могут случиться с HTTP-запросом: недопустимые значения Accept-*-заголовков, отсутствующий Content-Length, неподдерживаемый HTTP-метод, слишком длинный URI и так далее.

Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments64

Как тимлиду достоверно знать срок выполнения задач, не отвлекая подчиненных

Reading time10 min
Views11K

Тимлиду постоянно приходится отвечать на вопрос «когда сделаете?» или «когда будет готово?». И часто для ответа на этот вопрос нужно отвлечь от работы своего сотрудника, обсудить с ним задачу и только после этого дать ответ.

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

Недовольными, как правило, оказываются все. Тем не менее все постоянно играют в эту игру, и никто никому не верит.

Однако, если использовать исторические данные по сделанным ранее проектам и задачам, то можно узнать с 80% вероятностью срок исполнения задачи любого типа. Никакой магии. Просто математика и немного теории вероятностей :)) В этом суть Канбан-метода.

Читать далее
Total votes 31: ↑23 and ↓8+15
Comments26

Использование bash completion в командной строке, собственных скриптах и приложениях. Часть 2

Reading time5 min
Views24K
Про bash completion на хабре я уже писал тут, и даже конце пообещал рассказать про настройку автодополнения для собственных скриптов.

Однако, прошло уже полтора года, а лично у меня до продолжения руки так и не дошли. Зато эту почетную обязанность взял на себя хабраюзер infthi, опубликую от его имени.

Читать дальше →
Total votes 54: ↑53 and ↓1+52
Comments20

Как мы себя обманываем, только бы продолжать пользоваться Golang

Reading time21 min
Views76K

За два года с тех пор, как я опубликовал статью I want off Mr Golang's Wild Ride, она вновь и вновь всплывала на Reddit, Lobste.rs, на HackerNews и в других местах.

Всякий раз дискуссия выходит к одним и тем же ответам:

Go!
Total votes 159: ↑151 and ↓8+143
Comments369

Дюк, вынеси мусор! — 1. Введение

Reading time13 min
Views210K


Наверняка вы уже читали не один обзор механизмов сборки мусора в Java и настройка таких опций, как Xmx и Xms, превратилась для вас в обычную рутину. Но действительно ли вы в деталях понимаете, что происходит под капотом вашей виртуальной машины в тот момент, когда приходит время избавиться от ненужных объектов в памяти и ваш идеально оптимизированный метод начинает выполняться в несколько раз дольше положенного? И знаете ли вы, какие возможности предоставляют вам последние версии Java для оптимизации ответственной работы по сборке мусора, зачастую сильно влияющей на производительность вашего приложения?

Попробуем в нескольких статьях пройти путь от описания базовых идей, лежащих в основе всех сборщиков мусора, до разбора алгоритмов работы и возможностей тонкой настройки различных сборщиков Java HotSpot VM (вы ведь знаете, что таких сборщиков четыре?). И самое главное, рассмотрим, каким образом эти знания можно использовать на практике.
Узнать
Total votes 36: ↑36 and ↓0+36
Comments7

3 бесплатных инструмента, которые сделают прототипирование игр еще проще

Reading time5 min
Views16K


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

Ведущий геймдизайнер Ustwo Games, создателей Monument Valley и недавней Assemble with Care для Apple Arcade, рассказал, как студия использует бесплатные инструменты для креативного прототипирования. Перевод под катом.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments0

Как написать квестовую RPG

Reading time6 min
Views16K

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

Читать далее
Total votes 32: ↑32 and ↓0+32
Comments4

Она могла стать Первой: история процессорной архитектуры Alpha (часть 1)

Reading time10 min
Views14K

Впервые об архитектуре Alpha я узнал вскоре после обретения своего первого ПК, осенью 2001 года. Это были не слишком свежие (примерно 1997-1998 года) страдания неизвестного автора о платформе AlphaPC, материнской плате удивительной производительности и поражающих возможностей в формате АТХ. С тех пор эта архитектура запала мне в душу, долгое время борясь за место в сердце с не менее прорывным Pentium Pro. Сейчас представители обоих направлений располагаются в коллекции «Digital Vintage» на расстоянии менее 1 см друг от друга.
Читать дальше →
Total votes 64: ↑63 and ↓1+62
Comments10

Пентест вебсайта с помощью Owasp Zap

Reading time7 min
Views45K


Сегодня защита веб-приложения имеет решающее значение, поэтому осваивать пентест инструменты приходится и самим разработчикам. О мощном фреймворке WPScan для пентеста WordPress мы уже писали, но сайты бывают и на других движках. Именно поэтому сегодня разберем более универсальный пентест-инструмент OWASP ZAP (Zed Attack Proxy).


Что такое OWASP ZAP?


OWASP (Open Web Application Security Project) — всемирная некоммерческая организация, деятельность которой направлена на повышение безопасности ПО.


OWASP ZAP (Zed Attack Proxy) — один из самых популярных в мире инструментов безопасности. Это часть сообщества OWASP, а значит, что этот инструмент абсолютно бесплатный.


Почему многие выбирают OWASP ZAP?


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


ZAP создает прокси-сервер между клиентом и вашим сайтом. Пока вы перемещаетесь по своему веб-сайту, он фиксирует все действия, а затем атакует сайт известными методами.


Открытый исходный код!


Проект был запущен в 2010 году, но до сих пор дорабатывается и регулярно обновляется.


Настройка среды ZAP


ZAP является кроссплатформенным и для своей работы требует только наличия JAVA 8+. Поэтому можно обойтись без Kali Linux или других ОС для белого хакинга.

Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments1

Зачем принтеры ставят невидимые точки на документах

Reading time4 min
Views129K
3 июня 2017 года агенты ФБР нагрянули в дом 25-летней Реалити Леи Уиннер, которая работала в компании Pluribus International Corporation, подрядчике АНБ в штате Джорджия. Девушку (на фото) арестовали по обвинению в разглашении секретной информации, предположительно просочившейся в прессу. И действительно, к тому времени документ уже был в распоряжении онлайн-издания The intercept, а 5 июня 2017 года его опубликовали в открытом доступе.

В этой истории есть интересный момент. Агенты ФБР утверждали, что для вычисления источника утечки они тщательно изучили копии документа, предоставленные The Intercept, и якобы «заметили складки, свидетельствующие о том, что страницы были напечатаны и вручную вынесены из защищённого пространства».

Но анализ независимых специалистов из компании Errata Security показал истинную картину. Дело в том, что документ PDF из утечки содержал отсканированные копии бумажных документов очень хорошего качества. Включая точки-маркеры, которые скрыто проставляют принтеры на каждую отпечатанную страницу. Судя по всему, по этим точкам и вычислили Уиннер.
Total votes 154: ↑153 and ↓1+152
Comments212

Что должен, но не знает про конкуренцию в PostgreSQL каждый разработчик?

Reading time13 min
Views21K

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

Читать далее
Total votes 44: ↑43 and ↓1+42
Comments6

Пример создания Makefile для Go-приложений

Reading time7 min
Views31K
В этом руководстве мы рассмотрим, как разработчик Go может использовать Makefile при разработке собственных приложений.

image

Что такое Makefile-ы?


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

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

Если вы используете Go для создания веб-сервисов, то Makefile поможет решить следующие задачи:

  • Автоматизация вызова простых команд, таких как: compile, start, stop, watch и т. д.
  • Управление специфичными для проекта переменными окружения. Он должен подключать файл .env.
  • Режим разработки, который автоматически компилируется при изменении.
  • Режим разработки, который показывает ошибки компиляции.
  • Определение GOPATH для конкретного проекта, чтобы мы могли хранить зависимости в папке vendor.
  • Упрощенный мониторинг файлов, например, make watch run = «go test. / ...»
Читать дальше →
Total votes 36: ↑31 and ↓5+26
Comments4

Как Discord стал нашим основным инструментом для сбора фидбека и позволил наладить систему саппорта почти без вложений

Reading time15 min
Views13K

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

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

Ниже расскажу про внутреннюю организацию Discord-сервера Pixel Gun 3D — в первую очередь материал будет полезен КМ и саппортам, которые не работали с этим инструментом (или работали, но не получали максимум профита), а также геймдизайнерам. Затронем роли участников, каналы, ботов и способы защиты, активности и конкурсы, повышающие вовлеченность, а также решение тикетов, когда игроки сами помогают друг другу.

Читать далее
Total votes 45: ↑44 and ↓1+43
Comments7

Что можно положить в тег <head>

Reading time14 min
Views30K

Рекомендуемый минимум

Ниже приведены основные элементы для любого веб-документа (веб-сайта/приложения):

meta charset — определяет кодировку веб-сайта, стандартом является utf-8.

meta name="viewport" — настройки viewport, связанные с мобильной отзывчивостью

width=device-width — физическая ширина устройства (отлично подходит для мобильных устройств!)

initial-scale=1 — начальный масштаб, 1 означает отсутствие масштабирования

Элементы

Допустимые элементы <head> включают meta, link, title, style, script, noscript и base.

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

Читать далее
Total votes 35: ↑35 and ↓0+35
Comments23

Киллер фича Vim

Reading time4 min
Views47K

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


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


Но в какой-нибудь из статей, рассказывающей, как провести 5 минут в виме и остаться в живых, обязательно будет написано, что вим — лучший текстовый редактор в мире. И ещё выяснится, что люди в нём программируют. То есть, натурально, пишут код. То есть, на дворе 21 век, в любой момент можно скачать Visual Studio, Intellij Idea или, прости господи, Eclipse, а они пишут код в виме. Добровольно.


Читать дальше →
Total votes 123: ↑82 and ↓41+41
Comments622

VPS на Linux с графическим интерфейсом: запускаем сервер VNC на Ubuntu 18.04

Reading time5 min
Views50K

Некоторые пользователи арендуют относительно недорогие VPS с Windows для запуска сервиса удаленных рабочих столов. То же самое можно сделать и на Linux без размещения в датацентре собственного железа или аренды выделенного сервера. Кому-то нужна привычная графическая среда для тестов и разработки или удаленный десктоп с широким каналом для работы с мобильных устройств. Есть масса вариантов применения основанной на протоколе Remote FrameBuffer (RFB) системы Virtual Network Computing (VNC). В небольшой статье мы расскажем, как настроить ее на виртуальной машине с любым гипервизором…
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments37

Продолжаем разбирать Caesar III© (Игровая механика)

Reading time15 min
Views96K
Алгоритмы получения текстур игры Caesar III© и отрисовки города разобраны, осталась самая «сладкая» часть, которая притягивает «древнеримских архитекторов» уже больше 15 лет — игровая логика. Используя различные подходы к анализу игры, выношу на ваш суд результат этого небольшого исследования. Я заранее прошу прощения за большую статью, но, как говорится, слов из песни не выкинешь. В заключении будет несколько слов о судьбе исходников, восстановленных из исполняемого файла оригинальной игры.


Все гениальное просто
Total votes 114: ↑113 and ↓1+112
Comments26

Отключение профиля DEP и MDM на Mac OS Big Sur

Reading time4 min
Views37K

Решение с обходом DEP и MDM блокировки на Mac OS Catalina достаточно простое и без труда находится в интернете. С Big Sur все намного сложнее. В новой операционной системе реализован новый механизм защиты целостности системы. Поэтому весь алгоритм действий усложнился.

Читать далее
Total votes 15: ↑13 and ↓2+11
Comments11

Хэш таблицы в Go. Детали реализации

Reading time8 min
Views89K
image


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

Детали под катом.
Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments16

Information

Rating
Does not participate
Registered
Activity