Как стать автором
Обновить
2
0
Юрий Ромась @georgeneversleep

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

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

Что будет, если от разработчиков не отстать: умирающая команда

Время на прочтение11 мин
Количество просмотров61K
Мне досталась команда, которая болела. Все понимали, что происходит, никому не нравилось, что творится в команде, и традиционно менеджеры такие команды сильно режут. Но здесь были шансы вылечить и без ампутаций.


Источник

15 человек, из них — один руководитель проекта, три фронта, два бэка, три аналитика, девопс. Симптомы обычные: процессы всем не нравятся, соседи — козлы, потому что не то и не так делают, а как нужно — не знают, ответственности ни на ком толком нет ни за что.

Вроде бы когда-то это был настроенный конвейер, но теперь его куски — как будто в разных зданиях. Особо не заботятся о том, что было «до» и что будет «после». А если всё падает, то люди поднимают руки: «Я не виноват. Я не знаю, как поднять».

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

Почему процессы разваливались? На первый взгляд, потому, что была куча ненужных совещаний и встреч с теми, кого разработчики вообще не должны были видеть. Плюс местами странноватые KPI. Как это ни странно, но если психологически давить на разработчика пару лет, то ничем хорошим это не закончится. Руководство подразделения дало мне карт-бланш на исправления, и я начал разбираться, что же случилось.
Читать дальше →
Всего голосов 171: ↑167 и ↓4+205
Комментарии74

Как вырастить тупого ребёнка (научно обоснованные вредные советы)

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

Brain of someone described as an «idiot»

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

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

Что мы подразумеваем под умственным развитием


Интеллект (ум) – это способность учиться, делать выводы и решать проблемы. Эти способности закладываются генетически, но развиваются благодаря внешним факторам с момента зачатия до конца жизни.

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

Итак, начнём растить не очень умного ребёнка, пользуясь достижениями современной науки.
Читать дальше →
Всего голосов 166: ↑143 и ↓23+155
Комментарии480

Стажёр Вася и его истории об идемпотентности API

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

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


Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси. Сегодня я поделюсь с читателями Хабра описанием проблем, которые могут возникнуть, если не учитывать идемпотентность распределенных систем в своем проекте. Для этого я выбрал формат вымышленных историй о стажёре Васе, который только-только учится работать с API. Так будет нагляднее и полезнее. Поехали.


image

Читать дальше →
Всего голосов 219: ↑216 и ↓3+213
Комментарии163

Рисуем мультяшный взрыв за 180 строчек голого C++

Время на прочтение6 мин
Количество просмотров70K
Неделю назад я опубликовал очередную главу из моего курса лекций по компьютерной графике; сегодня опять возвращаемся к трассировке лучей, но на сей раз пойдём самую чуточку дальше отрисовки тривиальных сфер. Фотореалистичность мне не нужна, для мультяшных целей подобный взрыв, как мне кажется, сойдёт.

Как всегда, в нашем распоряжении только голый компилятор, никаких сторонних библитек использовать нельзя. Я не хочу заморачиваться с оконными менеджерами, обработкой мыши/клавиатуры и тому подобным. Результатом работы нашей программы будет простая картинка, сохранённая на диск. Я совершенно не гонюсь за скоростью/оптимизацией, моя цель — показать основные принципы.

Итого, как в таких условиях нарисовать вот такую картинку за 180 строчек кода?


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

Трехмерный движок внутри запроса SQL

Время на прочтение8 мин
Количество просмотров41K
Несколько лет назад на форуме SQL.ru решили провести сравнение реализаций трассировщиков лучей на разных языках программирования. К сожалению, моя заявка не может участвовать т.к. она не выводит надпись «PIXAR», поэтому публикую ее здесь.

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

WITH RECURSIVE numbers AS (SELECT 0 AS n UNION ALL SELECT n+1 FROM numbers WHERE n<89),
pixels AS (SELECT rows.n as row, cols.n as col FROM numbers as rows CROSS JOIN
numbers as cols WHERE rows.n > 4 AND rows.n < 38 AND cols.n > 9 AND cols.n < 89),
rawRays AS (SELECT row, col, -0.9049 + col * 0.0065 + row * 0.0057 as x,
-0.1487 + row * -0.0171 as y, 0.6713 + col * 0.0045 + row * -0.0081 as z FROM pixels),
norms AS (SELECT row, col, x, y, z, (1 + x * x + y * y + z * z) / 2 as n FROM rawRays),
rays AS (SELECT row, col, x / n AS x, y / n AS y, z / n AS z FROM norms),
iters AS (SELECT row, col, 0 as it, 0 as v FROM rays UNION ALL
SELECT rays.row, rays.col, it + 1 AS it, v + MAX(ABS(0.7+v*x) - 0.3,
ABS(0.7+v*y) - 0.3, ABS(-1.1+v*z) - 0.3, -((0.7+v*x) * (0.7+v*x) +
(0.7+v*y) * (0.7+v*y) + (-1.1+v*z) * (-1.1+v*z)) * 1.78 + 0.28) AS v
FROM iters JOIN rays ON rays.row = iters.row AND rays.col = iters.col WHERE it < 15),
lastIters AS (SELECT it0.row, it0.col, it0.v AS v0, it1.v AS v1, it2.v AS v2
FROM iters as it0 JOIN iters AS it1 ON it0.col = it1.col AND it0.row = it1.row
JOIN iters AS it2 ON it0.col = it2.col AND it0.row = it2.row
WHERE it0.it = 15 AND it1.it = 14 AND it2.it = 13),
res AS (SELECT col, (v0 - v1) / (v1 - v2) as v FROM lastIters)
SELECT group_concat(
substr('$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,"^. ',
round(1 + max(0, min(66, v * 67))), 1) || CASE WHEN col=88 THEN X'0A' ELSE '' END, '')
FROM res;



Здесь можно покрутить кубик

Под катом построчный разбор запроса. Как обычно, достаточно знания основ SQL и школьной математики.
Читать дальше →
Всего голосов 169: ↑168 и ↓1+167
Комментарии24

Трехмерный движок на формулах Excel для чайников

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


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

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

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

Осторожно: 19 картинок и 3 анимации под катом.
Читать дальше →
Всего голосов 211: ↑209 и ↓2+207
Комментарии54

Принтер для футболок: от домашней поделки до серийной модели текстильного принтера

Время на прочтение6 мин
Количество просмотров261K
Летом 2011 года я опубликовал на хабре пару статей (вот и вот) о том, как из подручных материалов практически «на коленке» собрать текстильный принтер. Как оказалось — тема эта весьма интересная многим людям, и с момента публикации этих статей любителями поиздеваться над принтерами было собрано много самодельных аппаратов, которые успешно печатают и даже приносят прибыль.

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

Так что если вам все это интересно, то добро пожаловать под кат.

image

Читать дальше →
Всего голосов 162: ↑161 и ↓1+160
Комментарии58

Литье пластмасс в силикон — доступное мелкосерийное производство в домашних условиях

Время на прочтение8 мин
Количество просмотров345K
Многие из тех, кто печатает на 3D-принтере сталкиваются или с необходимостью получить партию моделей в короткие сроки, или скопировать удачно получившуюся деталь, или получить изделия с прочностными характеристиками, превосходящими таковые у пластиков для домашней 3d-печати.

3D-принтер далеко не всегда способен выполнить такие задачи, но отлично подойдет для создания единственного образца, или мастер-модели. А дальше на помощь нам приходят материалы производства компании Smooth-On, наверное, самого популярного производителя материалов холодного отверждения.

image

В этом обзоре мы сравним самые основные и популярные силиконы, полиуретаны и добавки к ним, кратко посмотрим на основные способы создания форм и изделий, подумаем, где это может найти применение и, наконец, создадим свою силиконовую форму и модель.
Перед написанием этого поста мы прошли трехдневный тренинг у официального дилера Smooth-On в России, чтобы разобраться во всех тонкостях литья в силикон.
Читать дальше →
Всего голосов 45: ↑44 и ↓1+43
Комментарии26

Обзор вакуумного формовщика Mayku FormBox: пусть детали размножаются

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


3D-печать всем хороша, но есть одно “но” — это занятие для терпеливых. А что, если вы сможете быстро тиражировать однажды напечатанную модель многократно?

Сегодня мы рассказываем про Mayku FormBox — настольный вакуумный формовщик, который поможет выпускать небольшие тиражи ваших 3D-принтов значительно быстрее.
Всего голосов 28: ↑27 и ↓1+26
Комментарии23

Сколько математики нужно, чтобы подписать многоугольник в JS API Яндекс.Карт

Время на прочтение7 мин
Количество просмотров20K
В JS API Яндекс.Карт существует возможность создавать различные объекты на карте. Один из их них – многоугольник, с помощью которого можно улучшить интерактивность пользовательской карты: выделить отдельные области или отобразить местоположение неточечного объекта. К примеру, так можно показать план строительства нового квартала или зоны доставки пиццы.

У пользователей API Яндекс.Карт давно появился вопрос о добавлении подписей поверх многоугольников. Люди предлагали хитрые решения, чтобы добавить подпись на объект в нужном месте, скрыть ее, перекрасить и т.п., но такие решения получались сложными и негибкими.

К примеру, к нам пришел отдел исследований Яндекса с просьбой написать удобный инструмент для подписи многоугольников после того, как они сделали несколько исследований на карте мира.


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

В действительно задача оказалась нетривиальной. Только представьте, для каждого многоугольника нужно определить хорошо подходящий центр для отображения подписи, на каждом масштабе определить вмещается ли подпись, нужно ли ее скрывать на выбранном зуме, менять стили на каждом зуме, опять все перерассчитывать. То есть, чтобы сделать не особо сложную инфографику, нужно сильно попотеть и подготовить много дополнительных данных.
Читать дальше →
Всего голосов 68: ↑67 и ↓1+66
Комментарии15

Что почитать программисту на досуге

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

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

Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии24

Шпаргалка для технического собеседования

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


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

Читать дальше →
Всего голосов 81: ↑68 и ↓13+55
Комментарии85

Ловкость рук и никакого мошенничества: практические советы по ускоренному обучению дизайну для разработчиков

Время на прочтение6 мин
Количество просмотров52K
Улучшаем дизайн проекта с помощью тактически грамотных действий, а не таланта.

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

Возможно, в компании, в которой вы работаете, нет штатного дизайнера, и вам необходимо реализовать интерфейс для нового функционала. Или, может быть, вы решили подработать на побочном проекте, и хотели бы, чтобы он выглядел лучше, чем «ещё один bootstrap-сайт».

Легко опустить руки и сказать: «Я никогда не смогу сделать это должным образом, я не художник!», Но, оказывается, есть уйма ловких приёмов, которые вы сможете использовать, чтобы поднять свою работу на другой уровень, не имея опыта в графическом дизайне.

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

1. Для создания иерархии используем цвет и вес вместо размера



Читать дальше →
Всего голосов 68: ↑67 и ↓1+66
Комментарии28

Как лучше разбираться в людях

Время на прочтение31 мин
Количество просмотров103K
Рассказывать айтишникам про психологию то еще дело, некоторые читатели скажут: «Bullshit!», и вообще не поверят, потому что психологию, даже прикладную, нельзя назвать точной наукой. Тем не менее, задача этой статьи — показать и доказать вам, что некоторые модели действительно работают. В основе доклад Сергея Котырева из UMI на РИТ++ 2017, от его лица дальше и пойдет повествование.



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

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

Мне кажется, о поведении и предсказании поведения спиральных галактик мы знаем больше, чем о том, как поведет себя человек, например, моя жена, сотрудник, или особенно сотрудница моего отдела маркетинга, не говоря уже о пиарщицах. О том, что ближайшая к нам Галактика летит, и через сколько-то миллиардов лет столкнется с нашей, мы уже знаем точно.
Всего голосов 127: ↑113 и ↓14+99
Комментарии63

За пять дней я прошел собеседования в пяти компаниях Силиконовой долины и получил пять предложений о работе

Время на прочтение12 мин
Количество просмотров118K
За пять дней, с 24 по 28 июля 2017 года, я прошел собеседования в LinkedIn, Salesforce Einstein, Google, Airbnb и Facebook; все пять компаний предложили мне работу. Это был замечательный опыт и я понимаю, как мне повезло, что мои усилия оправдали себя, поэтому решил написать об этом. Здесь я расскажу о том, как готовился к собеседованиям, как они проходили и какое впечатление произвели на меня компании.



Как все началось


Я отработал в Groupon почти три года. Это моя первая работа, там были и прекрасные люди, и отличные проекты. Мы делали всякие интересные штуки, вводили перемены внутри компании, публиковали материалы и все в таком духе. Но со временем я стал ощущать, что темп моего самообразования стал затухать (попросту говоря, замедляться), мне не хватало пищи для ума. К тому же, как и всякого разработчика ПО из Чикаго, меня тянуло в Область залива Сан-Франциско — ведь там столько известных компаний.

Жизнь коротка, а профессиональная жизнь еще короче. Обговорив все с женой и заручившись ее полной поддержкой, я решил сделать решительный шаг и в первый раз в жизни поменять работу.
Читать дальше →
Всего голосов 95: ↑88 и ↓7+81
Комментарии98

Игры, в которых нужно писать код: Grid Garden, Elevator Saga и другие

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

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

Всего голосов 72: ↑72 и ↓0+72
Комментарии46

Аналог std::vector из C++11 на чистом C89, и как я его писал

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

image
Жилой массив людей. Нет, серьёзно.


Холивары между ценителями Си и приверженцами его ублюдка сына в лице C++ начались ещё до моего рождения и прекратятся разве что после смерти обоих этих языков и меня заодно.


Адепты великого творения Кернигана-Ритчи до последней секунды рабочего дня готовы доказывать приспешникам Страуструпа аксиомы про вечность Си и его невероятную гибкость.
Те в ответ по-свойски советуют им лучше порадоваться рабочему дню, ведь он вот-вот окажется последним – двадцать первому веку кроссплатформенный ассемблер не нужен.
Распаляясь, сторонники Си приводят миллионы давно прошедших через голову навылет тезисов "почему Си лучше C++", при этом каждый раз подчёркивая, что второй все достоинства первого растерял ещё будучи в отцовской утробе, попутно утратив лик человеческий.
Обвиняемая сторона в обиде не остаётся и...


а хотя постойте, о чём это я.


Я люблю Си, уважаю C++ и не переношу холивары (честно). При этом я осознаю, что в Си действительно не хватает многого, и яркий тому пример – отсутствие удобной работы с данными. В C++ эту проблему во многом решает STL и свойства самого языка. На мой студенческий взгляд, здесь особо отличается всем знакомый std::vector. Если стало интересно, как я реализовал его аналог средствами C89 – прошу под кат.

Читать дальше →
Всего голосов 58: ↑56 и ↓2+54
Комментарии67

Создание истории карточным методом: упрощаем жизнь сценаристам

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

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


ultra_outliner — это бесплатный инструмент для оптимизации разработки художественных историй карточным методом. Он выполнен в форме графического приложения и адресован сценаристам и писателям, а также игровым дизайнерам и разработчикам квестов. Инструмент позволяет работать с виртуальными карточками, персонажами, их характеристиками (и измерениями), локациями и специальными объектами. В составе ultra_outliner присутствует несколько редакторов, которые позволяют выстроить структуру истории, сюжетные линии, черты персонажей и др.


Lead

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

Мошенничество при покупке б/у MacBook: «А номер то, говорят, не настоящий!»

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

Все компьютеры Apple имеют похожий дизайн. Многие модели одной серии невозможно отличить по внешним признакам. Этим пользуются мошенники, которые завышают год выпуска или технические характеристики, с целью продать дороже Мак. Я много лет работаю мастером по ремонту компьютеров Apple, встречал и случаи такого мошенничества. Всех кому интересно, как не дать себя обмануть при покупке б/у Мака, приглашаю под кат.
Читать дальше →
Всего голосов 85: ↑85 и ↓0+85
Комментарии88

Ремастеринг текстур для BioShock: The Collection

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

[Все картинки кликабельны, потому что Хабр сжимает изображения разрешением больше 1920]

Введение


Меня зовут Ана Родригес (Ana M. Rodriguez), я занимаюсь компьютерной графикой и специализируюсь на текстурах и шейдерах, В настоящее время я работаю фрилансером компании Blind Squirrel Games, последним моим проектом был сборник игр Bioshock: The Collection. До него я работала над Castlevania: Lords of Shadows 1 и 2. Также мне удалось поучаствовать в проекте Castlevania: Mirror of Fate для Nintendo 3DS.
Читать дальше →
Всего голосов 60: ↑59 и ↓1+58
Комментарии7
1
23 ...

Информация

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