Pull to refresh
3
0
Андрей @uxgen

разработчик

Send message

Как работает интернет

Level of difficultyEasy
Reading time30 min
Views90K

Если вы полный ноль в интернет-технологиях, и хотите получить общее понимание Интернета, прочитав всего одну статью, то эта статья - для вас.

Здесь вы узнаете о 4 уровнях модели TCP/IP. О том, что такое MAC-адрес и IP-адрес, и зачем нам 2 типа цифровых адресов. Как работает DNS. Зачем нужны коммутаторы и роутеры. Как работает NAT. Как устанавливается защищённое соединение. Что такое инфраструктура открытых ключей, и зачем нужны TLS-сертификаты. Чем отличаются три версии протокола HTTP. Как происходит HTTP-аутентификация. И в конце будет несколько слов о VPN.

Читать далее
Total votes 106: ↑99 and ↓7+112
Comments61

Современным самолётом невозможно управлять

Reading time5 min
Views62K

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

Читать далее
Total votes 214: ↑197 and ↓17+232
Comments111

Ловись игрок, платящий и не очень…

Reading time18 min
Views9.8K

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

Хорошо, когда игра сделана с душой, удивляет сюжетом и механиками, и удерживает органичными способами. Как и везде, в играх есть грязные трюки — которые заставляют людей тратить больше времени или денег, чем они бы хотели. Аудитория игр, игровых сервисов, комьюнити и околоигровых форумов по разным подсчетам достигает 3.5млрд человек, т.е. почти каждый второй на планете, играет, играл или будет играть. Большая часть этих людей порядка 70% от общего числа, были привлечены мобильными проектами в последние 10 лет, которые, чего уж тут отнекиваться стали диктовать шаблоны и дизайны разработки всем остальным. Это не хорошо, и не плохо, это уже есть - когда у тебя есть настолько большая аудитория, то можно проверять самые различные идеи, механики и теории, в очень короткие сроки на разных возрастных группах, социальных слоях и вообще разных культурах. И это позволяет находить хорошие и отличные сочетания, двигая индустрию вперед, а высокая конкуренция не дает застояться отдельным студиям или жанрам. Но у любой медали две стороны, и вместе с положительными моментами и прогрессом идей мы получаем развитие различных темных и серых механик и практик. Зачем тратить сотни часов дизайнера, рисовать уникальный арт, оттачивать баланс и придумывать интересные активности, если можно сыграть на особенностях психологии человека?

Монеты сами себя не купят
Total votes 46: ↑43 and ↓3+54
Comments48

Нейроэкономика — как люди принимают решения о покупках, инвестициях, смене работы

Reading time8 min
Views5.2K

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

• Почему математические модели не работают в полной мере в отношении поведения людей?
• Как устроен процесс принятия решений и какую роль в этом занимают эгоистические побуждения?
• Какую дополнительную валюту нужно учитывать при создании или оценке экономических моделей?

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

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

Любой может получить доступ к удалённым и приватным данным репозиториев GitHub

Level of difficultyMedium
Reading time6 min
Views49K

Кто угодно может получать доступ к данным из удалённых форков, удалённых репозиториев и даже приватных репозиториев GitHub. И эти данные доступны всегда. Это известно разработчикам GitHub, и они намеренно спроектировали систему таким образом.

Это настолько огромный вектор атак для всех организаций, использующих GitHub, что мы решили ввести новый термин: Cross Fork Object Reference (CFOR). Уязвимость CFOR возникает, когда форк одного репозитория может получить доступ к требующим защиты данным из другого форка (в том числе и к данным из приватных и удалённых форков). Аналогично Insecure Direct Object Reference, при CFOR пользователи передают хэши коммитов, чтобы напрямую получать доступ к данным коммитов, которые иначе были бы для них невидимыми.

Давайте рассмотрим несколько примеров.
Читать дальше →
Total votes 114: ↑106 and ↓8+127
Comments42

Тысяча и одна библиотека С++

Reading time65 min
Views28K

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

Столкнувшись много раз подряд с тем, что найти что-то толковое довольно непросто, я решил попробовать распутать это узел и предложить для русскоязычных читателей свой справочник классных библиотек на С++. Я исходил из этого источника. Это очень многогранный и объемный список библиотек языка С++, но, скажем так, у меня были к нему вопросы. Потому я сделал перевод, затем значительно улучшил его в плане содержания (далее объясню, как, почему и зачем). На выходе получилось около 1000 библиотек. Как в сказке). Они, конечно, не покрывают все возможные задачи и предметные области, но поверьте, они затрагивают действительно многое.

Прикоснуться к сокровищнице языка С++
Total votes 82: ↑81 and ↓1+92
Comments23

И целых 20 ядер мало

Level of difficultyEasy
Reading time27 min
Views19K

Если вы посмотрите на общую раздутость современного софта, загружаемые 100 гигабайтные игры, ежегодную Nvidia X090 дающую +20% год от года, и 20-ядерные процессоры, то со стороны может показаться, что оптимизация производительности неважно чего, будь то игры или другой софт, казалось бы, утратила свою актуальность. В эпоху безнаказанной производительности аппаратной части можно расплескивать хоть половину этой мощи, и пользователь этого даже не заметит. Это все может и верно, если вы не делаете игру. Почему же тогда на этих двадцати ядрах, фризит и тормозит (хорошо что не вылетает часто) игра выпущенная два года назад?

Почему тормозит я вам не скажу: возможно разработчики, которые делали её (на не самом новом движке, надо сказать) просто делали игру и не задумывались о рядовых игроках, которые сидят на пятилетнем железе, хотя даже пятилетнее железо уделывает приставки текущего поколения. Возможно это другая причина - когда твоя рабочая машина с 64 гибайтами оперативки и 4080 на борту тянет редактор, то беспокоиться об игроках можно начинать после патча первого дня.

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

Налево пойдешь проца не хватит...
Total votes 58: ↑58 and ↓0+76
Comments53

4 года холакратии — честный отзыв о работе без руководителей

Reading time10 min
Views29K

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

Читать далее
Total votes 85: ↑78 and ↓7+88
Comments98

ТРИЗ глазами продакта и/или предпринимателя

Level of difficultyMedium
Reading time37 min
Views5.4K

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

Впервые прочитав книгу Генриха Сауловича Альтшуллера «Найти идею. Введение в ТРИЗ — теорию решения изобретательских задач», мне не давала покоя история о том, как он консультировал представителей стекольного производства:

Читать далее
Total votes 36: ↑30 and ↓6+26
Comments18

FUSE: как написать свою файловую систему

Level of difficultyHard
Reading time21 min
Views14K

Меня зовут Максим, я ведущий разработчик в VK. Занимаюсь инфраструктурой доставки электронной почты в проекте Mail.ru. Наша команда разработала и довела до эксплуатации файловую систему (ФС) на FUSE в рамках проекта распределённой почтовой очереди. В проекте требовалось реализовать сетевую ФС, которая сохраняет данные в трёх копиях, в разных ЦОДах. Цель — повысить отказоустойчивость, чтобы даже полный выход из строя одного ЦОДа не приводил к нарушениям SLA. Эта статья для всех, кто интересуется файловыми системами и хранением данных. Мы обсудим:

- зачем писать свою ФС;

- как написать свою ФС с помощью фреймворка FUSE;

- какие подводные камни есть у эксплуатации FUSE в production.

Эта статья — результат трёх лет разработки ФС. Сейчас самое время заварить чай, рассказ будет долгим. 

Заварить чай и читать
Total votes 64: ↑64 and ↓0+79
Comments15

Визуальный генератор регулярных выражений

Reading time6 min
Views236K
Все разработчики рано или поздно сталкиваются с регулярными выражениями. Практически в 100% случаев нам совершенно не нравится их составлять, считая это побочной работой, не связанной с программированием.

Большинство из нас, впервые столкнувшись с данной проблемой, начинают забивать в поисковых системах что-то типа: «regexp online generator» и к своему великому сожалению осознают что гугл сломался все результаты в поиске являются сервисами для проверки корректности уже составленного регулярного выражения (или я плохо гуглил).

А как же составить это самое регулярное выражение?


image

До недавнего времени существовало 2 ответа на этот вопрос:

  1. Изучить документацию по регулярным выражениям и составить регулярку самому
  2. Попросить кого-то более опытного сделать это за вас

Теперь, после нескольких месяцев разработки, рад представить и 3-й ответ:

» Генератор регулярных выражений

История


Давным давно, в одном проекте пришел довольно интересный и сложный запрос от внутренних пользователей. Персоналу технической поддержки нужно было самим задавать правила валидации для определенных полей, разным пользователям. Правила должны были часто и очень оперативно изменяться.
Читать дальше →
Total votes 70: ↑63 and ↓7+56
Comments66

Ваш язык программирования — отстой

Reading time54 min
Views139K
1 Почему JavaScript отстой
• 1.1 Плохая конструкция
• 1.2 Система типов
• 1.3 Плохие функции
• 1.4 Отсутствующие функции
• 1.5 DOM
2 Почему Lua отстой
3 Почему PHP отстой
• 3.1 Исправлено в поддерживаемых в настоящее время версиях
4 Почему Perl 5 отстой
5 Почему Python отстой
• 5.1 Исправлено в Python 3
6 Почему Ruby отстой
7 Почему Flex/ActionScript отстой
8 Почему скриптовые языки отстой
9 Почему C отстой
10 Почему C++ отстой
11 Почему .NET отстой
12 Почему C# отстой
13 Почему VB.NET отстой
15 Почему Objective-C отстой
16 Почему Java отстой
• 16.1 Синтаксис
• 16.2 Исправлено в Java 7 (2011)
• 16.3 Модель
• 16.4 Библиотека
• 16.5 Обсуждение
17 Почему Backbase отстой
18 Почему XML отстой
19 Почему отстой XSLT/XPath
20 Почему CSS отстой
• 20.1 Исправлено в CSS3
21 Почему Scala отстой
22 Почему Haskell отстой
23 Почему Closure отстой
24 Почему Go отстой
• 24.1 Базовые средства программирования (базовый язык)
• 24.2 Взаимосовместимость
• 24.3 Стандартная библиотека
• 24.4 Набор инструментальных средств
• 24.5 Сообщество
25 Почему Rust отстой
• 25.1 Безопасность
• 25.2 Синтаксис
• 25.3 Конструкция API и система типов
• 25.4 Сообщество
• 25.5 Набор инструментальных средств

Почему JavaScript отстой


Учтите, что некоторые положения относятся не к самому JavaScript, а к программным интерфейсам веб-приложений (https://developer.mozilla.org/en/docs/Web/API).

Плохая конструкция

• Каждый скрипт исполняется в едином глобальном пространстве имён, доступ в которое возможен в браузерах с оконным объектом.
• Camel-регистр никуда не годится:

XMLHttpRequest
HTMLHRElement

Читать дальше →
Total votes 314: ↑167 and ↓147+20
Comments353

Измененная теория гравитации по-своему объясняет структуру Вселенной

Reading time4 min
Views37K


Профессор Эрик Верлинде (Erik Verlinde) из Амстердамского университета разработал новую гипотезу гравитации. Свои выкладки ученый опубликовал на днях в нескольких научных изданиях. Основную часть гипотезы он предложил еще в 2010 году. Главный ее посыл в том, что гравитация не является фундаментальной силой природы, скорее, это случайный феномен.

По словам Верлинде, гравитация появляется в результате изменения в главных битах информации, сохраненных в самой структуре пространства и времени. Он утверждает, что гравитация объясняется определенным различием в плотности энтропии в пространстве между двумя телами и в окружающем пространстве. Так, притяжение двух макроскопических тел он объясняет ростом полной энтропии с уменьшением расстояния между телами. Другими словами, система просто переходит в более вероятное макросостояние.
Читать дальше →
Total votes 35: ↑28 and ↓7+21
Comments83

Построение диаграммы Вороного методом 'разделяй и властвуй'. Релаксация Ллойда

Reading time5 min
Views25K
image

Недавно, на хабрахабре была опубликована статья, целиком и полностью посвященная диаграммам Вороного. В статье автор подробно описывает алгоритм Форчуна, применяемый для построения Диаграммы Вороного за O(n*log(n)). Стоит отметить, что описание этого алгоритма не раз появлялось в рунете, в то время как о других алгоритмах (с той же асимптотикой) рассказано ровным счетом ничего. Данная статья исправляет это недоразумение, а также является отличным дополнением к уже опубликованному ранее материалу.

Ниже я расскажу о алгоритме 'разделяй и властвуй' построения диаграммы Вороного за O(n*log(n)), а также, основываясь на своем практическом опыте, о по-настоящему крутых штуках, в которых это применимо. Вообще, алгоритмы типа 'разделяй и властвуй' являются своего рода классикой программирования (думаю, про сортировку данным методом слышал каждый программист), хорошо параллелятся и легко читаются (если, конечно, знать основную идею алгоритма).
Total votes 34: ↑34 and ↓0+34
Comments5

Учёные готовят фундаментальное обновление единиц измерения

Reading time10 min
Views49K
image

Если и есть у учёных священные объекты, то это один из них: единственный, тщательно охраняемый 137-летний металлический цилиндр, расположенный в подвале близ Парижа. Этот прототип точно определяет значение килограмма массы во всём мире.

У килограмма говядины в продуктовом магазине та же масса, что и у этого особого куска металла, сплава платины и иридия. У 60-килограммовой женщины масса в 60 раз больше, чем у него. Даже далёкие астрономические объекты, например кометы, измеряются относительно этого цилиндра. У кометы Чурюмова-Герасименко, которую недавно посещал европейский космический аппарат Розетта, масса составляет 10 триллионов таких цилиндров.
Читать дальше →
Total votes 51: ↑47 and ↓4+43
Comments142

Процедурная растительность на OpenGL и GLSL

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



Повествование будет вестись на примере небольшой демки, которая генерирует сцену как на картинке выше. Мы пройдём увлекательное путешествие от подготовки данных на CPU до записи значений цвета на выход фрагментного шейдера.
Читать дальше →
Total votes 52: ↑51 and ↓1+50
Comments14

Спросите Итана №100: почему тёмная материя не образует чёрные дыры?

Reading time4 min
Views22K

Если тёмной материи во Вселенной больше всего по массе, и у неё есть гравитация, где же структуры, состоящие из неё?



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

Не могу поверить, что вышло уже 100 выпусков «Спросите Итана». На каждой неделе вы присылаете свои вопросы, и я выбираю наиболее понравившийся мне, чтобы публично ответить на него. На этой неделе были довольно сложные вопросы, но я не могу сказать «нет» одному из них, от Джерри Мейсона:

Если у тёмной материи есть гравитация, почему она не формирует чёрные дыры или другие структуры?

У тёмной материи (ТМ) действительно есть гравитация, и она действительно не формирует чёрные дыры (ЧД), «тёмные» звёзды, планеты или атомы. Почему же?
Total votes 23: ↑18 and ↓5+13
Comments124

Шестиугольный шторм на Сатурне поменял свой цвет — и никто не знает, почему

Reading time3 min
Views38K

Реальный цвет урагана. Фото получено 26 июня в 2013 году (Источник: NASA/JPL-Caltech/Space Science Institute/Val Klavans)

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

Сейчас оказалось, что этот атмосферный вихрь с течением времени еще и меняет свой цвет. За четыре года наблюдений цвет шестиугольника изменился от голубого до золотистого. Причем специалисты пока не могут дать ответ на вопрос «почему?». Есть лишь несколько предположений. Одно из них — цвет меняется из-за сезонных изменений атмосферы газового гиганта.
Total votes 27: ↑26 and ↓1+25
Comments62

Реверс-инжиниринг процедурной генерации в No Man's Sky

Reading time20 min
Views44K


No Man’s Sky — это игра про исследование космоса, в которой используется технология процедурной генерации игрового окружения и ресурсов (текстур, моделей, рельефа и т.д.). Я был в восторге, когда объявили о её разработке в 2013 году, не только из-за самой игры, но в основном из-за возможности изучить игровые файлы и узнать, как она работает. После выпуска игра получила самые противоречивые отзывы, но мне всё равно интересно, что же происходит у неё внутри.

Если вы установите игру, то увидите, что по объёму она очень невелика, и это действительно так. Основная причина этого в том, что игра работает с очень ограниченным набором ресурсов и с помощью процедурной генерации создаёт на их основе буквально сотни вариантов. Я сосредоточусь на контенте, связанном с 3D-моделями игры, потому что для меня они всегда наиболее интересны. Статья будет разделена на три основные категории: геометрия, текстуры и анимации.
Total votes 92: ↑91 and ↓1+90
Comments39

Симулятор нервной системы. Часть 3. Ассоциативный нейроэлемент

Reading time9 min
Views11K


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

Простая идея алгоритма работы нейрона позволила решить эту проблему.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments10
1
23 ...

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity