Pull to refresh
60
0

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

Send message

Игра: Спутник против мусора

Level of difficultyEasy
Reading time9 min
Views3.9K


Помните нашу игру «Атомный Графъ»? Если что, очень рекомендуем ознакомиться. А сейчас у нас новая больная фантазия разработка — игра «Спутник против мусора». Название говорящие: вы в виде своего альтерэго — спутника — летаете в околоземном пространстве и уворачиваетесь от всякой фигни, кружащейся вокруг Земли. Что-то даже можно будет испарить лазером, такой вот вы милитаристский аппарат. Хотя нет, конечно же, мы вдохновлялись совсем другим: 11 июля 2023 года наш пикоспутник с космическим сервером отделился от пускового контейнера и стал вольным птахом. И мы где-то в глубине души, совсем на донышке, волновались, не столкнётся ли спутник с каким-нибудь космическим мусором.
Читать дальше →

OpenAPI станет проще: готовится версия 4.0

Level of difficultyEasy
Reading time7 min
Views12K


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

До появления расширения OpenAPI DevTools проектировать схему OpenAPI приходилось вручную. Хотя это было непросто, оно того стоит в любом случае. Недавно мы в RUVDS переделали свой API под данный стандарт — и увидели, насколько это эффективно и полезно для всех пользователей и разработчиков, которые обращаются к серверным API.

Сейчас в разработке находится четвёртая версия OpenAPI. Она станет проще и универсальнее, то есть подойдёт даже для тех HTTP API, для которых не годится текущая версия 3.0 (3.1.0).
Читать дальше →

Графика древности: палитры, часть 2/2

Level of difficultyEasy
Reading time26 min
Views11K

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

HTML и CSS ошибки, влияющие на доступность. Мой опыт и моего незрячего знакомого Ильи. Часть 4

Level of difficultyMedium
Reading time6 min
Views5.2K

Хабр, я снова пришёл к вам с практическими советами про доступность вместе с Ильёй. Мы показываем, как HTML и CSS могут улучшить или ухудшить её. Напоминаю, что Илья — мой незрячий знакомый, который помогает мне найти наши косяки в вёрстке.


Сегодня мы рассмотрим следующие аспекты:

  • как сверстать поиск, чтобы им мог воспользоваться пользователь скринридера;
  • чем полезно свойство outline-offset;
  • зачем вам нужно использовать медиа-функцию prefers-color-scheme;
  • где должен находиться заголовок в разметке блока с новостью.

Давайте начнём!

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

Классическое программирование на грани вымирания

Level of difficultyEasy
Reading time6 min
Views96K
Все изображения в этой статье сгенерированы нейросетью DALL-E 2

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

Период моего юношества пришёлся на 80-е годы. Тогда я занимался программированием ПК вроде Commodore VIC-20 и Apple IIe дома. Во время обучения в Калифорнийском университете, где я в итоге получил свою докторскую степень, основная часть моей учебной программы была посвящена «классическим» компьютерным наукам: программирование, алгоритмы, структуры данных, системы и различные языки. В классической форме задача компьютерных наук заключается в представлении некой идеи в виде программы, написанной человеком на языке вроде Java, C++ или Python. Причём, какой бы сложной ни была эта идея — начиная от алгоритма объединения баз данных и заканчивая крайне сложным протоколом консенсуса Paxos — её можно выразить в виде понятной для человека программы.
Читать дальше →

Проект «Селенит». Часть 5: Контроллер, встроенное ПО и квадратурный модулятор

Level of difficultyMedium
Reading time8 min
Views7.7K

Аппаратура SDR (Software-defined Radio), как и следует из названия, представляет собой программно-аппаратный комплекс. В предыдущих частях цикла были рассмотрены преимущественно аппаратные решения радиотракта трансивера Selenite Lite. В большей части данной публикации будет рассмотрена та часть радиостанции, которая предназначена для управления «Radio» и его связи с «Software».

Речь пойдёт о контроллере, на котором реализовано составное устройство USB, включающее в себя звуковое устройство USB и виртуальный COM-порт. Данная конфигурация позволяет управлять трансивером извне по CAT-интерфейсу и производить обмен аудиопотоками с программой, которая производит обработку сигналов для работы в эфире.

Все части цикла статей о создании любительской радиостанции:

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

Мистер Твистер. Впечатления о Twister OS для Raspberry Pi

Level of difficultyEasy
Reading time8 min
Views12K

Когда я купил себе Raspberry Pi 400 и водрузил на него Dosbian, я заранее знал, что рано или поздно наиграюсь в «X-Com» и захочу попробовать что-нибудь ещё. Классическую Raspberry Pi OS я уже видел, поэтому душа требовала разнообразия, а пятая точка — приключений. И тут я совершенно случайно наткнулся в сети на упоминание Twister OS — альтернативной операционной системы для «малины» на базе той же Raspbian, но с настраиваемым графическим интерфейсом, который умеет мимикрировать под другие популярные операционки, что может быть важно для людей, непривычных к Linux. Разумеется, я решил попробовать Twister на своём Raspberry Pi и оценить его возможности. Сразу отмечу, что обзор не претендует на техническую глубину — скорее, это впечатления простого пользователя, пытающегося понять, стоит ли тратить время на установку Twister OS, или это баловство, и лучше Raspbian человечество ничего не придумало. Да, предупреждаю сразу: внутри будет много картинок!
Читать дальше →

Сканирующий переводчик: что это такое?

Level of difficultyEasy
Reading time10 min
Views5.9K

Сегодня мы поговорим о такой очень интересной штуке, которая мне досталась в своё время совершенно бесплатно в качестве подарка — электронном сканирующем переводчике Quicktionary TS.

Это весьма любопытный артефакт ушедшей эпохи. Тем не менее, свою работу он делает и делает её хорошо даже сейчас…
Читать дальше →

Сложный был год

Level of difficultyEasy
Reading time12 min
Views23K
image

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

Из-за этого мы сейчас переживаем крупнейший передел рынка хостинга в России.

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

Ещё в этом году в ЦОДы начало поступать полностью отечественное железо из отечественной компонентной базы и отечественных плат (на самом деле — нет), отвалилась страховка от киберрисков от AIG (вместе с AIG), и пришлось искать российский аналог. Были скандал и мир с Казахстаном при открытии двух новых площадок, мы взяли премию «Хостер года», запустили собственный бесплатный DNS (аналог Route53), перешли на OpenAPI в хостинге, открыли ещё две площадки: ЦОДы во Владивостоке и в Турции в Измире (это там, где было наводнение), запустили и сломали спутник (дважды), пережили крупную аварию и после неё ввели понятное SLA на доступность с денежной гарантией.

В общем, сложный был год. Налоги, катастрофы, проституция, бандитизм и недобор в армию. С последним мириться было нельзя… Простите, рассказываю по существу.
Читать дальше →

Что нас бесит в интерфейсах игр

Level of difficultyEasy
Reading time6 min
Views11K
image

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

10 тёмных паттернов в UX-дизайне и как их избежать

Level of difficultyEasy
Reading time12 min
Views15K

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

К типичным тёмным паттернам относятся давление на чувства, ложная срочность, заманивание, сбор личных данных, навязывание, подсовывание, маскировка рекламы, намеренное введение в заблуждение, паттерн «Roach Motel», предвыбор нежелательных опций, добавление лишних товаров в корзину, спам-рассылка по друзьям, автоматическое продлевание платной подписки после её окончания и не только.

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

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

Неизвестно полезный CSS

Level of difficultyMedium
Reading time6 min
Views24K

CSS не отстаёт от JavaScript. Постоянно развивается. Классно же. Мне особенно радостно видеть, как старые задачи, которые я решал при помощи костылей, теперь можно сделать при помощи одного свойства.


Только многие фишки неизвестны широкому кругу разработчиков. Честно говоря, некоторые я сам узнал недавно. В любом случае так дальше нельзя. Надо исправлять ситуацию!


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


Больше не буду затягивать. Давайте посмотрим, что я вам подготовил.

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

Мягкое знакомство с дополнительным кодом

Level of difficultyMedium
Reading time9 min
Views26K

Недавно, общаясь по видеосвязи с другом, я рассказывал ему о своих идеях по реализации нового продукта. В разговоре я упомянул добавление больших знаковых чисел в ассемблере с использованием дополнительного кода, на что получил от собеседника вопрос: «Что такое дополнительный код?» Меня немного удивила его неосведомлённость. Он уже больше 30 лет программирует на Java. Java и Python программисты (а также другие, работающие с языками *с придыханием* вроде Commodore / MicroSoft BASIC) не сталкиваются с нативным типом беззнакового целого числа. В этих языках подобные тонкости реализуются за них.

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

Плюс это всё же наука. Так что давайте разбираться.
Читать дальше →

Керниган и Пайк были правы: делай что-то одно и делай это хорошо

Level of difficultyEasy
Reading time11 min
Views29K
Роб Пайк и Брайан Керниган

В октябре 1984 года два идеолога опубликовали радикальный манифест… ну, или что-то вроде того.

Легенды computer science Брайан Керниган и Роб Пайк сформулировали в Program Design in the UNIX Environment паттерн архитектуры ПО, за сохранение которого оба боролись долгие годы.

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

Старые программы покрываются коркой сомнительных фич.

Суть статьи часто сводят к аббревиатуре DOTADIW, или «Do One Thing And Do It Well» («Делайте что-то одно и делайте это хорошо»). В Unix и его потомках есть множество программ, в которых воплощена эта мантра: ls просто создаёт список файлов, cat просто выводит содержимое файлов, grep просто фильтрует данные, wc просто подсчитывает слова и так далее. У каждой программы есть несколько опций, меняющих её поведение, но не слишком сильно. Например: wc можно сконфигурировать для подсчёта строк или слов, но не для подсчёта количества абзацев или вхождений какой-то фразы.

Мощь Unix, защищаемая Керниганом и Пайком, заключалась в возможности соединения этих простых программ в цепочку для создания сложных поведений. Зачем добавлять сопоставление регулярных выражений в wc, если с этим уже способна справиться grep?
Читать дальше →

Управление сервером для домохозяйки. Чего не умеет ispmanager

Level of difficultyEasy
Reading time7 min
Views9.4K
Настройки доменных имён в ispmanager

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

Cитуация идёт к тому, что личный сервер понадобится каждому человеку, который хочет попасть во внешний интернет. И тут на первый план выходит простота управления, то есть удобный и понятный интерфейс. Это дополнение к универсальной консоли, где всё, конечно, быстрее и эффективнее.

В общем, хотим сказать пару слов о ispmanager — коммерческой панели управления хостингом. Оказывается, некоторые вещи в графическом интерфейсе действительно можно сделать быстрее, чем из консоли. Хотя кое-что она не умеет (и никогда не научится).
Читать дальше →

Проект «Селенит». Часть 3: Диапазонный полосовой фильтр

Level of difficultyMedium
Reading time8 min
Views11K

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

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

Все части цикла статей о создании любительской радиостанции:
Читать дальше →

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

Level of difficultyEasy
Reading time16 min
Views4.7K
image

Видеоигры — это прекрасно. Они есть для любой возрастной категории, самых разных жанров. Однако далеко не все игры доступны каждому: слишком много преград для людей с ограниченными возможностями. Большинство из нас имеют нормальный слух, зрение и здоровую опорно-двигательную систему. Мы не отказываем себе в прохождении самых разных игр — от простых казуалок на экране смартфона до серьёзных стратегий с кучей текста или авто- и авиасимуляторов — лишь бы денег хватало на контроллеры. Но что, если я вам скажу, что в мире, по данным ВОЗ, живёт 1,3 миллиарда человек с инвалидностью?

Многие разработчики стремятся сделать графику более реалистичной. Современные движки и игры, разрабатываемые на них, требуют всё больше ресурсов. Однако людям, у которых есть проблемы со зрением, в целом без разницы, насколько красиво выглядит игра — главное, чтобы в неё было комфортно играть. И к сожалению, большинство разработчиков даже не пытается сделать свои проекты более доступными для людей с ОВЗ.
Читать дальше →

Четыре способа оптимизации ПО

Level of difficultyMedium
Reading time13 min
Views17K

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

Царьпанк с привкусом клюквы: как стереотипы о дореволюционной России стали отдельным жанром?

Level of difficultyEasy
Reading time11 min
Views13K

Одним из наиболее популярных фэнтезийных сеттингов начала двадцатых годов стал так называемый «Гришаверс»: мир романов американской писательницы Ли Бардуго, где события происходят внутри и вокруг государства Равка. В Равке и её персонажах легко угадываются русские черты, местами утрированные до клюквенности, но при этом в основном симпатичные. Свой жанр увлечённая российской историей и культурой Бардуго характеризует как «царьпанк» — и те же черты, что и в «Тени и кости», мы можем видеть во множестве других произведений, как современных, так и созданных давным-давно. Пляшущие с медведями казаки, тосты «наздороффье» водкой из самовара и прочая «развесистая клюква» — явление старинное и легко узнаваемое. Можно ли говорить о том, что американская писательница дала меткое имя жанру, существующему не первый век, или же не всё так просто? Попробуем разобраться.
Читать дальше →

Моя любимая задача для собеседований по программированию

Level of difficultyMedium
Reading time9 min
Views104K

В сети есть уйма постов и видео, где разбираются ответы на вопросы LeetCode. Но обычно рассмотрение в них происходит с позиции соискателя, а не работодателя. В этой же статье я приведу разбор собственной задачи по программированию, которую использовал при приёме людей на работу в Amazon, Google и Microsoft.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Works in
Registered
Activity