Pull to refresh
-3
0
Send message

Погружаемся в CSS: как использовать :where ()

Reading time6 min
Views12K

Функция :where() помогает писать меньше кода, применять стили ко всему списку и снимает головную боль при использовании CSS reset. В статье разберёмся, как это работает, и посмотрим на примеры использования.

Читать далее

Создание игр для NES на ассемблере 6502: заголовки и векторы прерываний

Reading time12 min
Views5.5K


6. Заголовки и векторы прерываний


Содержание:

  • Заголовки iNES
  • Выделение процедур с помощью .proc
  • Векторы прерываний

В предыдущей главе мы разобрали часть «main» тестового проекта, которая задаёт цвет фона, а затем входит в бесконечный цикл. Однако этот код составляет всего 13 из 44 строк исходного кода тестового проекта. В этой главе мы изучим оставшуюся часть кода тестового проекта и узнаем ещё несколько опкодов.
Читать дальше →

Как работает ИИ Super Mario 64

Reading time9 min
Views5.6K
image

Super Mario 64 — одна из самых важных и любимых игр в истории. Она задала стандарт для 3D-игр на критическом этапе развития отрасли и повлияла не только на игры для Nintendo 64, но и на проекты многих конкурирующих платформ.

Но как она работала? Происходило ли что-то интересное в головах Goomba, Koopa и и других врагов, которых мы встречаем на уровнях Bob-Omb mountain, Whomp’s Fortress и Tick Tock Clock? Давайте выясним это.

Открываем капот


Super Mario 64 уже исполнилось 25 лет, и хотя её искусственный интеллект может показаться довольно простым, нам важно понимать, что было в этой игре. Она является поворотным моментом в истории разработки игр. Это бестселлер платформы Nintendo 64, отражающий дух времени, когда разработчики игр переходили к 3D. Она сильнейшим образом повлияла на дизайн трёхмерных игр. Хоть она и не была первым 3D-платформером, да и первым 3D-проектом Nintendo, её наследие нельзя недооценивать. Такие дизайнеры, как Тим Шеффер и Майкл Джон подтверждают огромное влияние, оказанное игрой на их собственные проекты: Psychonauts и Spyro the Dragon. Некоторые аспекты, например, управление камерой, потребовали дальнейшей доработки, однако визуальный дизайн, анимация персонажей, движение игрока, структура уровней и миссий создали успешный шаблон для многих последующих игр.
Читать дальше →

Как правильно верстать в 2022 году. Часть 1

Reading time11 min
Views95K

Меня зовут Николай, я Frontend-разработчик IT-компании Relog. Хочу рассказать о самых распространённых ошибках в вёрстке современных проектов.

Дело в том, что лишь малая часть современных фронтендеров обращает внимание на работу с HTML и CSS, предпочитая готовые решения, вроде UI-библиотек и систем сеток. Но эти решения неидеальные и приходится дописывать обёртки вокруг них, видоизменять код, переписывать стили и совершать прочие действия для соответствия требованиям проекта. Тут-то и начинаются проблемы: вёрстка местами становится избыточной, стили переназначются через important и с каждым релизом проект всё сложней поддерживать. Я уже не говорю об удобстве использования и доступности. Об этом думают вообще в последнюю очередь.

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

Читать далее

Переход на полную удалёнку

Reading time7 min
Views9.5K

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

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

Читать далее

Про NFT и деньги

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


▍ Является ли NFT обманом?

Читать дальше →

Хитрая и мстительная прокрастинация: кому мстим и зачем?

Reading time5 min
Views9.5K

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

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

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

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

Читать далее

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

Reading time2 min
Views3.9K

Недавно мы рассказали о трех онлайн-секвенсорах, которые помогут написать трек для домашнего проекта. Сегодня поговорим о браузерной драм-машине для творчества в свободное время — The Infinite Drum Machine.

Читать далее

Паника на российской бирже: почему ETF продают по искаженной цене

Reading time9 min
Views50K

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

Читать далее

Nuxt.js app от UI-кита до деплоя

Reading time17 min
Views36K
Привет, Хабр!

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

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

  • создание и конфигурация проекта,
  • assets и static: стили, шрифты, изображения, посты,
  • создание компонентов,
  • создание страниц и layouts,
  • развертывание приложения (деплой).

Смотрите, что получилось!
Читать дальше →

Как мы отказались от JPEG, JSON, TCP и ускорили ВКонтакте в два раза

Reading time24 min
Views171K

На протяжении всей жизни мне приходится экономить вычислительные и сетевые ресурсы: сначала были компьютеры с 300 кГц (кило — не гига!) и 32 Кбайт RAM, интернет по dial-up. Потом я решал олимпиадные задачки. Теперь имею дело с терабайтами трафика и 50 млрд событий в сутки. И хотя современные телефоны в 1 000 раз мощнее любого оборудования двадцатилетней давности, я до сих пор оптимизирую. Думал даже, что это со мной что-то не так. Но потом понял, что все постоянно что-нибудь оптимизируют. 

Эта статья в меньшей степени о том, почему нужно бороться за производительность, и в большей о том, на что сейчас стоит заменить устаревший стек из JPEG, JSON, gzip и TCP — и как это сделать. 

Спойлер: у нас есть решение и мы его не только показываем — ссылки на open source в конце статьи.

Читать далее

Пишем NFT модульный синтезатор на javascript ?

Reading time8 min
Views12K


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


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

Читать дальше →

Пересядь с иглы WordPress на Static Site Generator и Headless CMS #нивкакиестэки

Reading time13 min
Views28K
Что делать, если WordPress (WP) уже не вставляет, а сайт пилить надо? Кейс авторского блога на Static Site Generator (SSG) и Headless CMS (HCMS).

Разбираем достоинства связки SSG + HCMS для программистов, диджитал номадов и современных контент-мейкеров.

I. Я устал, я ухожу


image

Меня зовут Давид. Вот уже шесть лет я каждый день пользуюсь WordPress. Я устал от такой жизни. Дал себе обещание найти новые решения для создания авторского контента.

Так я наткнулся на Static Site Generator (SSG) и Headless CMS (HCMS), потыкался и влюбился.

О причинах моей влюбленности сегодня и хочу рассказать.
Читать дальше →

Ящеры правят миром? Как рептилоиды из теории заговора стали мемом и феноменом массовой культуры

Reading time10 min
Views63K

Вряд ли сейчас есть в сети хоть кто-то, кто не слышал про рептилоидов. Они же reptilians, они же lizard people, они же saurians. YouTube забит видеороликами с разоблачением страшных тайн правящих человечеством глобальных элит.

Уже и детям известно, что они маскируются под людей, но на самом деле — злокозненные инопланетные ящеры с Нибиру. Которые, несмотря на всё коварство, постоянно «палятся», оказываясь близки к провалу, не хуже Штирлица из анекдотов. То забудут спрятать вертикальные зрачки, то красивые зелёные хвосты. И никак не могут удалить с «полностью подконтрольных ИМ» социальных сетей своих глобальных корпораций терабайты разоблачений.
Читать дальше →

Лурк, великий и ужасный: восход и закат энциклопедии рунета

Reading time6 min
Views139K

Шёл далёкий уже 2006 год: время мемной революции, удешевления доступа к сети и стремительного роста населения рунета. Из «сделанной из разного и палок пристройки к настоящей англоязычной сети» рунет на глазах превращался в самобытное информационное пространство. Медвед и Ктулху были повсюду, расцветали ЖЖ, дайри, бесконечные форумы на всевозможные темы. Имиджборды бурлили уходящими в небытие тредами, полными контркультурного андерграунда и всевозможной дичи, превращаясь в реакторы самого неожиданного и яркого контента.
Что же с ним стало?

Как написать эмулятор CHIP-8 на JS

Reading time18 min
Views8.2K
Chip-8

Автор провёл детство за играми в эмуляторах NES и SNES на своём компьютере, но никогда не думал, что однажды сам напишет эмулятор. Иван Сергеев поставил перед автором задачу написать интерпретатор Chip-8, чтобы изучить основные понятия низкоуровневых языков программирования и то, как работает процессор.

Результат — эмулятор Chip-8 на JavaScript, который автор написал под его руководством. Подробности рассказываем, пока у нас начинается курс по Fullstack-разработке на Python.
Читать дальше →

Node.js: шаблон сервера для аутентификации и авторизации

Reading time11 min
Views38K


Привет, друзья!


На досуге разработал шаблон Node.js-сервера для аутентификации/авторизации, которым хочу с вами поделиться. Надеюсь, кому-нибудь пригодится.


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


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


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


  • oidc-client — разработчик отказался от дальнейшей поддержки, новый мейнтейнер пока не нашелся
  • oidc-provider — рекомендация моих более опытных коллег

Если вас интересует полноценная платформа для аутентификации/авторизации "из коробки", рассмотрите возможность использования Auth0.


Репозиторий


Сервер реализован с помощью Express.js


В качестве базы данных используется MongoDB Atlas

Читать дальше →

Новые музыкальные инструменты — кто их делает и кто на них играет

Reading time3 min
Views7.6K

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

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

Читать далее

Как правильно верстать 2, или зачем я написал еще одну UI-библиотеку, мой первый npm-модуль?

Reading time26 min
Views11K

Это работа является логическим продолжением моего первого подробного текста для сообщества об актуальных подходах к верстке Как верстать веб-интерфейсы быстро, качественно и интересно. Но, если в первом трактате, внимание уделялось, прежде всего, стилю кода, его качеству и эффектным современным возможностям различных препроцессоров и фреймворков, что демонстрировалось на некоторых конкретных специфических задачах, теперь хочется сфокусироваться на архитектурных или даже организационных аспектах веб-производства. Если вы не читали мой первый текст, но собираетесь при этом прочесть этот — не поленитесь перейти по ссылке и пробежать глазами самые последние разделы каждой из двух частей первого пособия: «Готовые решения» и «Песочницы». Этот текст начинает прямо с этих мест и развивает именно эти идеи: и о пагубности применения раскрученных-популярных «на все готовых» UI-«дизайн-систем»-фреймворков для создания кастомизированных веб-морд любой сложности и, о, по сути, полезности использования хотя бы минимального документирования и явных соглашений при разработке веб-GUI на фронтенде. Но я не стану тратить время, доказывая, что «ни в коем случае нельзя использовать Vuetify или AntDesign» для создания крупных UI-систем с полностью кастомным оформлением. Вам не нужно прикручивать себе огромный геморрой непроницаемый слой плохо кастомизируемого готового GUI для того чтобы написать кнопку или поле ввода! Если вам нужен датапикер — найдите и допилите что-нибудь под себя. Это понимание может только прийти или так и не придти с годами тяжелого опыта, когда вы будете постоянно тратить непростительно много своего времени на то, чтобы написать очевидно отвратительный CSS — «кряки с !important`ами поверх стилей библиотеки», выдумывать чудные костыли на javascript чтобы изменить дефолтное поведение виджетов на кастомное и хитрое-нестандартное затребованное вашими дизайнерами... И при этом ваши шаблоны, стили и js-обвязки будут превращаться во все менее читаемые запутанные нагромождения разнообразно оформленного кода, с различным подходом к наименованию и прочими бедами… Этот текст и написанный для него проект призваны наглядно показать «а как надо?».

Читать далее

Frontend Security: о чем вы хотели бы забыть, но не сможете

Reading time15 min
Views31K

Какие атаки на клиентскую часть веб-ресурсов вы знаете? XSS, CSRF, HTTP Response Splitting, Clickjacking, CSHM, атаки на CORS, следствия других ошибок программистов? В среднем разработчик вспоминает не половину, и даже не треть. Разнообразие атак зависит только от фантазии и любопытства злоумышленников, и все они созданы, чтобы навредить вашим клиентам, а значит — и вам.

Татьяна Новикова — ex-пентестер с опытом в безопасности около четырех лет, а ныне Application Security Engineer. В команде ЦАРКА (Центр анализа и расследования кибератак) она занималась пентестом — полной проверкой веб-ресурсов  на безопасность. В том числе команда работала с white-box, то есть с исходными кодами, и разбирала безопасность не только бэкенда, но и фронтенда. Сейчас Татьяна перешла в Beeline Казахстан и занимается обеспечением процессов безопасной разработки.

На основе своего опыта она выступила на конференции Frontend Conf Live 2020. В одной статье, конечно, невозможно покрыть все уязвимости и потенциальные опасности, поэтому сегодня будет самое актуальное и страшное из доклада — то, что может нанести максимальный ущерб.

Читать далее

Information

Rating
Does not participate
Registered
Activity