Pull to refresh
6
0
Send message

История алгоритмов рандомизации «Тетриса»

Reading time5 min
Views24K
image
В 1985 году Алексей Пажитнов и Вадим Герасимов выпустили в свет Tetris. Эта увлекательная и вызывающая сильное привыкание игра требовала от игроков соединять фигуры, появлявшиеся в случайном порядке. С того времени было выпущено более 150 лицензионных версий «Тетриса». Отличаясь игровыми режимами, правилами и реализацией, все они игрались слегка (или очень) по-разному. Рандомизатор «Тетриса» — это функция, возвращающая случайно выбранную фигуру. На протяжении многих лет правила выбора фигур эволюционировали, оказывая влияние на геймплей и саму случайность. Некоторые из этих алгоритмов были подвергнуты реверс-инжинирингу и задокументированы. Я составил список рандомизаторов, которые считаю важными, и покажу в статье, как с годами менялось внутреннее устройство «Тетриса».
Читать дальше →
Total votes 75: ↑74 and ↓1+73
Comments33

Fooocus v2 — бесплатный Midjourney у вас на компьютере. Подробная инструкция по установке и использованию нейросети

Level of difficultyEasy
Reading time10 min
Views206K

Друзья, всем привет! Сегодня я хочу рассказать вам про самую простую и доступную для понимания нейросеть, которая создает изображения по вашему текстовому описанию. Она называется Fooocus и основана на знаменитой Stable Diffusion XL. Это идеальное решение в качестве вашей первой нейросети, и необходимый инструмент для любого дизайнера или контент мейкера.

Внутри много тяжелых изображений.

Читать далее
Total votes 120: ↑117 and ↓3+114
Comments216

Стань героем мемов! Делаем гифки со своим лицом с помощью нейросетей

Level of difficultyMedium
Reading time5 min
Views16K

Друзья, всем привет, сегодня я научу вас как создавать шикарные мемные гифки с вашим лицом с помощью дипфейк нейросети FaceFusion.

Читать далее
Total votes 32: ↑29 and ↓3+26
Comments6

Ортографическая проекция в фотографии и прочие интересные фокусы с объективами

Level of difficultyMedium
Reading time30 min
Views22K

С тем как работает фотоаппарат мы знакомимся еще со школьной программы. Однако привычное нам из школьного курса сведение объектива к "тонкой линзе" на самом деле не отвечает на массу практических вопросов. Например как удается создавать объективы с ортографической проекцией применяемые в системах технического зрения?

Да-да, такие тоже бывают не только в компьютерной графике, но и в фотографии: попробуйте-ка это объяснить оперируя исключительно в терминах "тонкой линзы". Размер изображения предмета в таких системах (почти) не зависит от того на каком расстоянии от объектива они находятся и это весьма удобно для измерения размеров предмета. В этой статье мы поговорим о том как этого удается добиться, как работает автофокус и пленоптические камеры и о многих других интересных вещах

Так как же работает объектив?
Total votes 162: ↑161 and ↓1+160
Comments38

Разбираем HTTP/2 по байтам

Level of difficultyMedium
Reading time24 min
Views26K

image


Откройте любую статью с обзором HTTP/1.1. Скорее всего, там найдётся хотя бы один пример запроса и ответа, допустим, такие:


GET / HTTP/1.1
Host: localhost

HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Content-Length: 38
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<h1>Привет!</h1>

Теперь откройте статью с обзором HTTP/2 или HTTP/3. Вы узнаете о мультиплексировании запросов, о сжатии заголовков, о поддержке push-технологий, но вряд ли увидите хоть одно конкретное сообщение. Ясно, почему так: HTTP/1.1 — текстовый протокол, тогда как сиквелы к нему бинарные. Это очевидное изменение открывает дорогу ко множеству оптимизаций, но упраздняет возможность просто и доступно записать сообщения.


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

Читать дальше →
Total votes 115: ↑115 and ↓0+115
Comments45

Кто все вот эти на полках: краткое руководство по новым брендам ноутбуков

Level of difficultyEasy
Reading time6 min
Views33K

Когда-то, лет 10–15 назад, далёким от хай-тека приятелям было стыдновато показать шильдик Huawei на своём телефоне. Когда свыклись с Huawei, пришла очередь Oppo. Характеристики «топа за свои деньги» (нет, мы не только о Xiaomi) всё время оказывались сильнее каких-то фонетических неудобств. А за последний год в пользу китайских ноунеймов добавился ещё один существенный аргумент. Мобильные телефоны с непривычными названиями уже не пугают, но сегмент ноутбуков более консервативен, и обилие новых имён здесь может поставить в тупик.

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

Читать далее
Total votes 33: ↑24 and ↓9+15
Comments63

Запуск аналогов ChatGPT на домашнем ПК в пару кликов и с интерфейсом

Level of difficultyEasy
Reading time6 min
Views189K

--- Обновление статьи 9 Августа 2023 ---

В течении последнего полугода в сфере текстовых нейронок всё кипит - после слитой в сеть модели Llama, aka "ChatGPT у себя на пекарне" люди ощутили, что никакой зацензуренный OpenAI по сути им и не нужен, а хорошие по мощности нейронки можно запускать локально.

Основная проблема в том, что всё это требует глубоких технических знаний.

Но в этой статье я расскажу, как запустить добротную нейросеть на домашнем ПК с 16ГБ ОЗУ в несколько кликов. Буквально в несколько кликов - копаться в консоли не придётся.

Читать далее
Total votes 144: ↑143 and ↓1+142
Comments180

Разработка небольшого солнечного трекера

Level of difficultyMedium
Reading time6 min
Views11K

Всем привет. Решил немного отдохнуть от гексапода и пощупать проекты с солнечными панелями. Первое, что пришло в голову — установка для автоматического позиционирования солнечных панелей (солнечный трекер). Его главная задача — выставить солнечные панели под максимально эффективным углом для получения наибольшего КПД. В этой статье мы посмотрим, как на коленке можно собрать датчик положения источника света и на его основе создать систему позиционирования. Этот проект никогда не окупится, но и не для этого он делается — мы просто развлекаемся!
Читать дальше →
Total votes 65: ↑65 and ↓0+65
Comments71

Создаём планер для своего самодельного самолёта. Ч.2

Level of difficultyMedium
Reading time9 min
Views10K

Итак, на улице становится всё теплее и теплее и настало время подумать о продолжении эпопеи с самодельным самолётом…

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

Предыдущая статья про электронную начинку и её программирование — тут.
Читать дальше →
Total votes 54: ↑53 and ↓1+52
Comments32

Как работает ChatGPT: объясняем на простом русском эволюцию языковых моделей с T9 до чуда

Level of difficultyEasy
Reading time30 min
Views366K

В последнее время нам почти каждый день рассказывают в новостях, какие очередные вершины покорили языковые нейросетки, и почему они уже через месяц совершенно точно оставят лично вас без работы. При этом мало кто понимает — а как вообще нейросети вроде ChatGPT работают внутри? Так вот, устраивайтесь поудобнее: в этой статье мы наконец объясним всё так, чтобы понял даже шестилетний гуманитарий!

Погнали →
Total votes 357: ↑350 and ↓7+343
Comments283

Сколько стоит умный дом? Рассказываю, как строил свой и что получилось за 1000 руб./м²

Level of difficultyEasy
Reading time25 min
Views94K

Подробный рассказ о том, как я свой дом и сад сделал умными. С фото, техническими деталями, стоимостями и выводами на будущее.

Читать
Total votes 300: ↑298 and ↓2+296
Comments296

Технология VoWiFi с точки зрения Wi-Fi

Reading time11 min
Views24K

Мы привыкли к тому, что сотовая связь и Wi‑Fi существуют отдельно друг от друга. Но иногда бывает так — мы попадаем внутрь помещения, где точно нет сотовой связи, но есть Wi‑Fi. При этом сохраняется возможность звонить по телефону. Как это работает?

VoWiFi (Voice over Wi‑Fi) — технология, позволяющая пользователям сотовой связи совершать голосовые вызовы в зонах, где сотового покрытия нет, но есть покрытие Wi‑Fi. С ее помощью можно звонить привычным способом в помещении с отсутствием сотовой связи, а также сэкономить деньги в роуминге. В статье расскажем, как настроить свои беспроводные сети правильно, и тогда VoWiFi будет стабильной и удобной альтернативой сотовой сети.

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments45

«Чёта мне тревожно!» Как избавиться от тревоги: лучшие методы и практики самопомощи

Level of difficultyEasy
Reading time6 min
Views8.5K

Многим людям, как и мне, тревога усложняет жизнь. Какие способы помогают избавиться от тревоги, помимо коньяка? Поговорим о том, как помочь себе самостоятельно, если вас достали тревожные мысли и переживания о будущем.

Читать далее
Total votes 26: ↑17 and ↓9+8
Comments6

Основы веба, которые должен знать начинающий разработчик

Level of difficultyEasy
Reading time8 min
Views34K

В этом посте я объясню, как работает Интернет. Мы ответим на вопросы наподобие «Как браузер находит файл HTML для запрошенной веб-страницы?», «Как файл HTML превращается в интерфейс пользователя?», «Что можно сделать, чтобы ускорить этот процесс?», «Как устанавливается и поддерживается связь с сервером?», а также рассмотрим следующие концепции:

  • Клиент-серверную модель
  • Жизненный цикл запроса веб-страницы
  • Hypertext Transfer Protocol
  • Как браузеры рендерят контент
Читать дальше →
Total votes 50: ↑41 and ↓9+32
Comments16

Пишем GPT в 60 строк NumPy (часть 1 из 2)

Level of difficultyMedium
Reading time16 min
Views71K

В этом посте мы начнём реализацию с нуля GPT всего в 60 строках numpy. Во второй части статьи мы загрузим в нашу реализацию опубликованные OpenAI веса обученной модели GPT-2 и сгенерируем текст.
Читать дальше →
Total votes 96: ↑94 and ↓2+92
Comments33

Kotlin-сервер без JVM — реальность?

Level of difficultyEasy
Reading time4 min
Views4.7K

Не секрет, что Kotlin может использоваться для создания всех компонентов FullStack-приложения - от мобильных приложения для Android/iOS и веб-сайтов на Kotlin JS до бэкэнда (например, с использованием Ktor, http4k и micronaut). Но все же многих останавливает от использования Kotlin для создания API тот факт, что код запускается в хоть и оптимизированной, но все же Java виртуальной машине. Есть ли решение у этой проблемы? Да, и в этой статье мы обсудим способы компиляции приложения на Kotlin для создания API в нативный код и подводные камни, которые нас ожидают на этом пути.

Читать далее
Total votes 15: ↑14 and ↓1+13
Comments4

TVGuardian. Задача: заменить ругательства в реальном времени

Reading time12 min
Views7.4K

«Он похож на зануду?» Реплика также может быть оценена, будто Уоллеса сравнивают с клячей, старой лошадью. Видеоролик Джерри Ноулза

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

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

Даже сегодня умные колонки не транскрибируют речь пользователя, а отсылают её в облако. Очевидно, что четверь века назад точное машинное распознавание речи было в лучшем случае мечтой. Принцип работы приставки куда проще, но также он поражает остроумием и скромностью задействованных ресурсов: вся логика занимает меньше 4 КиБ.
Читать дальше →
Total votes 49: ↑48 and ↓1+47
Comments26

Как программы общаются между собой

Level of difficultyMedium
Reading time9 min
Views15K

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

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

Давайте совершим экскурс в историю и узнаем, как много было сделано и как мало изменилось.

Предупреждение: в статье я буду упрощать и жертвовать точностью ради понятности.
Читать дальше →
Total votes 54: ↑49 and ↓5+44
Comments8

Устранение неисправностей в приложении Java под Kubernetes

Reading time7 min
Views3.4K
image

Когда взаимодействуют разработчики и операторы


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

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

В Kubernetes всё устроено немного иначе. Вам наверняка рекомендовали добавить отдельную конечную точку для проверки работоспособности, поэтому k8s уже успеет перезапустить под до вашего вмешательства. После этого под выглядит свежим, и в нём потеряна вся информация, которая вам требовалась. В этом посте будет показан очень простой способ, позволяющий снять информацию в такой ситуации.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments1

Простейшая нейросеть: еще раз и подробнее

Reading time10 min
Views53K

Машинное обучение это незаменимый инструмент для решения задач, которые легко решаются людьми, но не классическими программами. Ребенок легко поймет, что перед ним буква А, а не Д, однако программы без помощи машинного обучения справляются с этим весьма средне. И едва ли вообще справляются при минимальных помехах. Нейросети же уже сейчас решают многие задачи (включая эту) намного лучше людей. Их способность обучаться на примерах и выдавать верный результат поистине очаровывает, однако за ней лежит простая математика. Рассмотрим это на примере простого перцептрона.
Данная статья представляет собой пересказ-конспект первой части книги Тарика Рашида "Создай свою нейросеть" для тех, кто начал изучать тему, не понял отдельные детали или с трудом охватывает общую картину.

Читать далее
Total votes 97: ↑96 and ↓1+95
Comments26
1
23 ...

Information

Rating
Does not participate
Location
Казань, Татарстан, Россия
Registered
Activity