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

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

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

Как вернуть самооценку в норму

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

Психотерапия помогла стать успешнее и обрести счастье

Много лет у меня была депрессия, в том числе — из-за низкой самооценки. 

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

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

Читать далее
Всего голосов 43: ↑35 и ↓8+37
Комментарии43

Вопросы о левел-дизайне: о чем молчат дизайнеры локаций

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

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

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

Предыдущие статьи из цикла:

1. Левел-дизайн 101: язык разработки локаций
2. К ориентиру по хлебным крошкам, или базовые приемы левел-дизайна
3. Продвинутый левел-дизайн: киноприемы в играх, кор-луп и силуэты

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

Неравенства Белла — физика и математика

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

Эта статья - очередная попытка популярно изложить суть неравенства Белла и парадокса Эйнштейна-Подольского-Розена. Статьи, которые мне попадались ранее, либо сходу начинали с физических формул. и содержали кучу бра-кетов, тензорных произведений и прочих эрмитовых операторов. Что не способствовало пониманию среди широкой аудитории (вроде меня). Либо содержали довольно простые математические рассуждения, но непонятно как соотносящиеся с реальными физическими экспериментами. Либо были недостаточно подробными (в стиле «видите 2 линии на графике? Что и требовалось доказать»). Либо вообще неверными! Когда автор берет три независимых квантовых параметра и из-за ошибки в рассуждениях приходит к выводу, что это будет чем-то принципиально отличаться от трёх самых обычных случайных величин-«монеток».

Последнюю статью я сам считал неплохой иллюстрацией ЭПР-парадокса, пока до меня не дошло что в ней ошибка. После чего я решил наконец разобраться с «парадоксом» раз и навсегда.

Разбираться будем вместе под катом
Всего голосов 16: ↑15 и ↓1+23
Комментарии44

HackTheBox. Прохождение RopeTwo, часть 1. Chromium v8

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров3.5K

Пора выложить первый райтап для машинки с площадки HackTheBox.

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

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

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

Дайджест интересных материалов для мобильного разработчика #363 (21 — 27 сентября)

Время на прочтение4 мин
Количество просмотров3.7K
В новой подборке создание собственной GTA, заработки виджетов, Swift и Flutter для Windows, приложения из таблиц и подписные приложения в Китае, коалиция против Apple, новые устройства “Сбера” и многое другое.

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

«Резни не будет» — рассказ о переводе «Червя»

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

В конце прошлого года случилось давно ожидаемое литературное событие — группа переводчиков, которая в течении пяти лет переводила роман «Червь» известного канадского писателя Джона МакКрэя, пишущего под псевдонимом «Wildbow», наконец-то завершила работу.

Если вы не слышали об этом романе, или не брались за него по причине незавершенности перевода, то я вам даже немного завидую — вас ожидает пара месяцев (а то и полгода — роман чудовищно, невообразимо огромен) отличного чтения. «Червь» сложный, многоплановый НФ триллер со сложным рациональным сюжетом. (Немного больше здесь:)
Внимание: Опасайтесь спойлеров — роман к ним чувствителен. Поэтому, если вы не прочли роман — лучше всего отложить чтение статьи и скачать книгу. Помните: несмотря на то, что текст распространяется свободно, автору очень нужны ваши пожертвования — это основной источник его доходов.
Ну, а тех из читателей, что уже прочли роман, я приглашаю познакомиться с «Клубом любителей попереводить Червя» — с командой, подарившей нам русский перевод. Уверен, что даже далеким от литературы читателям Хабра будет интересно ознакомиться с опытом организации успешного проекта, связавшего воедино множество творческих личностей.
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии152

Батавские слёзки, легковые машины и Gorilla Glass: о некоторых видах укрепленного стекла

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

Батавские слезы


Привет, Хабр!


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


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

Читать дальше →
Всего голосов 77: ↑75 и ↓2+73
Комментарии109

Как делать сайты в 2019 году

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

Веб стремительно меняется, не отставай и ты!



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


Давайте-ка шаг за шагом разберём важнейшие принципы веб-дизайна в 2019 году.


Обязательно дайте пользователю знать, что у сайта есть мобильное приложение


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


Ну а кратчайший путь к этому — показать здоровенное модальное окно:



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


Совет: Если у вас нет мобильного приложения, не беда! Просто запихните весь сайт в  webview с отключенной безопасностью и пишите, что это мобильное приложение!

Читать дальше →
Всего голосов 244: ↑233 и ↓11+222
Комментарии278

Генератор подземелий на основе узлов графа

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

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

Введение


Алгоритм был написан как часть работы на получение степени бакалавра и основан на статье Ma et al (2014). Целью работы было ускорение алгоритма и дополнение его новыми функциями. Я вполне доволен результатом, потому что мы сделали алгоритм достаточно быстрым, чтобы использовать его во время выполнения игры. После завершения бакалаврской работы мы решили превратить её в статью и отправить на конференцию Game-ON 2018.

Алгоритм


Для создания уровня игры алгоритм получает в качестве входных данных набор полигональных строительных блоков и граф связности уровня (топологию уровня). Узлы графа обозначают комнаты, а рёбра определяют связи между ними. Цель алгоритма — назначить каждому узлу графа форму и расположение комнаты таким образом, чтобы никакие две формы комнат не пересекались, и каждая пара соседних комнат могла соединяться дверьми.
Всего голосов 51: ↑51 и ↓0+51
Комментарии11

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

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


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

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

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

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

Методы наименьших квадратов без слёз и боли

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


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

Итак, начнём. Давайте представим, что у меня есть триангулированная поверхность со сканом моего лица (на картинке слева). Что мне нужно сделать, чтобы усилить характерные черты, превратив эту поверхность в гротескную маску?



В данном конкретном случае я решаю эллиптическое дифференциальное уравнение, носящее имя Симеона Деми Пуассона. Товарищи программисты, давайте сыграем в игру: прикиньте, сколько строк в C++ коде, его решающем? Сторонние библиотеки вызывать нельзя, у нас в распоряжении только голый компилятор. Ответ под катом.
Читать дальше →
Всего голосов 54: ↑54 и ↓0+54
Комментарии58

Как создать Roguelike

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

Я всегда хотел написать подробное руководство для начинающих о том, как создать roguelike, содержащее как общие, так и более специфические советы. Проведённый в этом году очередной праздник Roguelike Celebration показался мне отличной возможностью наконец-то заставить себя это сделать, поэтому я подготовил получасовой доклад по этой теме.

У меня есть довольно большой опыт — в течение последних семи лет я работал только в этом жанре (Cogmind, Cogmind 7DRL, POLYBOT-7, REXPaint, X@COM), и в течение последних пяти эта работа была моей основной. К тому же, все эти годы я помогал превращению r/RoguelikeDev в крупнейшее сетевое сообщество разработчиков roguelike.
Всего голосов 58: ↑58 и ↓0+58
Комментарии24

Загубить производительность

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

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


Предмет доклада:


  • как смотреть на код, чтобы найти в нём узкие места
  • распространённые антипаттерны
  • неочевидные грабли
  • обход граблей

В кулуарах мне указали на некоторые неточности/упущения в докладе, они здесь отмечены. Замечания также приветствуются.

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

Как подготовиться к собеседованию в Google и не пройти его. Дважды

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


Заголовок статьи звучит как epic fail, но на самом деле все не так однозначно. Да и в общем и целом эта история закончилась весьма позитивно, хоть и не в Google. Но это уже тема для другой статьи. В этой же статье я расскажу о трех вещах: каким образом проходил мой процесс подготовки, каким образом проходили интервью в Google и почему же на мой взгляд все не так однозначно, как может показаться.
Кому интересно, прошу под кат.
Всего голосов 178: ↑174 и ↓4+170
Комментарии457

Обзор задач по алгоритмам для собеседований — генерация множеств

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

Привет, Хабр!


Этим постом начинается разбор задачек по алгоритмам, которые крупные IT-компании (Mail.Ru Group, Google и т.п.) так любят давать кандидатам на собеседованиях (если плохо пройти собеседование по алгоритмам, то шансы устроиться на работу в компанию мечты, увы, стремятся к нулю). В первую очередь этот пост полезен для тех, кто не имеет опыта олимпиадного программирования или тяжеловесных курсов по типу ШАДа или ЛКШ, в которых тематика алгоритмов разобрана достаточно серьезно, или же для тех, кто хочет освежить свои знания в какой-то определенной области.


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



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

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

Internal DSL & Expression Trees — динамическое создание функций serialize, copy, clone, equals (Часть I)

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


Статья посвящена двойному применению API Expression Trees — для разбора выражений и для генерации кода. Разбор выражений помогает построить структуры представления (они же структуры представления проблемно-ориентированного языка Internal DSL), а кодогенерация позволяет динамически создавать эффективные функции — наборы инструкций задаваемые структурами представления.


Демонстрировать буду динамическое создание итераторов свойств: serialize, copy, clone, equals. На примере serialize покажу как можно оптимизировать сериализацию (по сравнению с потоковыми сериализаторами) в классической ситуации, когда "предварительное" знание используется для улучшения производительности. Идея в том, что вызов потокового сериалайзера всегда проиграет "непотоковой" функции точно знающей какие узлы дерева надо обойти. При этом такой сериализатор создается "не руками" а динамически, но по заранее заданным правилам обхода. Предложенный Inernal DSL решает задачу компактного описания правил обхода древовидных структур объектов по их свойствам/properties (а в общем случае: обхода дерева вычислений c проименованием узлов) . Бенчмарк сериализатора скромный, но он важен тем, что добавляет подходу, построенному вокруг применения конкретного Internal DSL Includes (диалект того Include/ThenInclude что из EF Core) и применению Internal DSL в целом, необходимой убедительности.

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

Git happens! 6 типичных ошибок Git и как их исправить

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


Прим. перев.: На днях в блоге для инженеров любимого нами проекта GitLab появилась небольшая, но весьма полезная заметка с инструкциями, которые помогают сохранить время и нервы в случае различных проблем, случающихся по мере работы с Git. Вряд ли они будут новы для опытных пользователей, но обязательно найдутся и те, кому они пригодятся. А в конец этого материала мы добавили небольшой бонус от себя. Хорошей всем пятницы!

Все мы делаем ошибки, особенно при работе с такими сложными системами, как Git. Но помните: Git happens!
Читать дальше →
Всего голосов 63: ↑62 и ↓1+61
Комментарии62

Как в России пропустили мировой расцвет DVD, но догнали запад с появлением широкополосного интернета

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

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


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

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

За 13 лет я прошёл от full pirate до almost full legit, но, что удивительно, даже полностью обленившись, согласный платить, лишь бы ничего решать — я до сих, порой, ощущаю иногда давление, словно выталкивающее на «вон, бесплатно возьми». И это, кстати, одна из причин, по которой я совершенно не согласен с обобщениями русских и пираторов, пиратов и халявщиков — и т.д.
Читать дальше →
Всего голосов 95: ↑65 и ↓30+35
Комментарии459

Как звучит сердцебиение: перевод бумажной кардиограммы в WAV-формат

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

Многим неоднократно приходилось сталкиваться с обследованием сердца в медицинских учреждениях с помощью кардиографа. Данный аппарат измеряет биоэлектрическую активность сердца, регистрируя результат на бумажной ленте. Современные кардиографы записывают результат измерения не на бумагу, а в цифровую память. Однако в качестве конечного носителя записанной информации зачастую применятся бумажная лента. Визуально она представляет собой длинную миллиметровую бумагу небольшой ширины, которая скручена в рулон. На бумаге, помимо миллиметровой сетки, нарисован во всю длину некий график, который отражает закон изменения измеряемой величины во времени. Измеряемая величина, как я понимаю, это есть разность потенциалов между отведениями. Чаще всего на одной ленте представлено сразу несколько графиков, так как регистрируются разности потенциалов между множеством отведений. Однако, не вдаваясь в подробности медицины, в дальнейшем будем рассматривать один из первых основных графиков. Кроме графиков, на ленте имеется дополнительная текстовая информация: масштаб по горизонтали (мм/сек), по вертикали (мм/мВ), измеренная частота сердцебиения (уд/мин) и прочее.

Возникла идея преобразовать данный график в звуковой формат, воспроизвести результат и послушать, как это будет звучать.
Читать дальше →
Всего голосов 28: ↑24 и ↓4+20
Комментарии38

RabbitMQ против Kafka: два разных подхода к обмену сообщениями

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

В прошлых двух статьях мы рассказывали об IIoT — индустриальном интернете вещей — строили архитектуру, чтобы принимать данные от сенсоров, паяли сами сенсоры. Краеугольным камнем архитектур IIoT да и вообще любых архитектур работающих с BigData является потоковая обработка данных. В ее основе лежит концепция передачи сообщений и очередей. Стандартом работы с рассылкой сообщений сейчас стала Apache Kafka. Однако, для того, чтобы разобраться в ее преимуществах (и понять ее недостатки) было бы хорошо разобраться в основах работы систем очередей в целом, механизмах их работы, шаблонах использования и основной функциональности.



Мы нашли отличную серию статей, которая сравнивает функциональность Apache Kafka и другого (незаслуженно игнорируемого) гиганта среди систем очередей — RabbitMQ. Эту серию статей мы перевели, снабдили своими комментариями и дополнили. Хотя серия и написана в декабре 2017 года, мир систем обмена сообщениями (и особенно Apache Kafka) меняется так быстро, что уже к лету 2018-го года некоторые вещи изменились.

Читать дальше →
Всего голосов 87: ↑82 и ↓5+77
Комментарии42
1
23 ...

Информация

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