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

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

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

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

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

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

Читать далее
Всего голосов 84: ↑83 и ↓1+95
Комментарии27

Собираем самый дешевый ПК для игр меньше, чем за 30000 рублей

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

Привет, Хабр! Сегодня мы поднимаем тему недорогих ПК. Такие бывают очень даже нужны там, где нужен хоть какой-то компьютер, но бюджет сильно ограничен. Это может быть компьютер для школьника или для развлечений в офисе (пока никто не смотрит). Может быть даже компьютер для бабушки (сейчас есть очень продвинутые пенсионеры). И понятное дело, что любой читатель Хабра может сопоставить между собой сокет материнской платы и процессор, частоты памяти и разъем SSD-накопителя. Но вот вопрос как укомплектовать недорогой ПК, не переплатить за что-то в его составе и не потратить кучу времени — остается открытым. Ответ на него мы ищем под катом и обсуждаем в комментариях.

Читать далее
Всего голосов 30: ↑21 и ↓9+15
Комментарии78

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

Время на прочтение25 мин
Количество просмотров1.5M

Регулярные выражения в Python от простого к сложному




Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.
Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.

Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
Читать дальше →
Всего голосов 99: ↑98 и ↓1+97
Комментарии66

«Умная дача» реального человека, без рекламных интеграций

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

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

Зайти в Изнакурнож:
Всего голосов 60: ↑60 и ↓0+60
Комментарии44

Как вылечить зубы на год вперёд перед долгой поездкой

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

Таких запросов всё больше и больше. Раньше они были связаны с эмиграцией в Европу и США, где лечить зубы просто очень дорого. Теперь появилась потребность лечить зубы так, чтобы не обращаться к врачу вообще.


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

Классическая модель подразумевает кратность визитов: 2–4 раза в год нужно ходить к стоматологу на профессиональную гигиену, и это позволит не покупать новые зубы в зрелом возрасте.

Тем не менее мы умеем лечить и «на год вперёд». И вы можете заказать это в любой региональной клинике тоже. Это называется «протокол полярника», когда мы готовим людей к арктическим экспедициям и подобным приключениям.

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

В дорогу полярникам мы даём наборы бактерий-антагонистов стрептококков. К счастью, сейчас они очень хорошо протестированы и доступны во многих крупных аптеках. Вам нужен Blis M18.
Читать дальше →
Всего голосов 79: ↑71 и ↓8+83
Комментарии62

Как я хакнул свой автомобиль: завершение истории

Время на прочтение19 мин
Количество просмотров21K
Если вы не читали первую часть статьи, то сделайте это.

Часть 2: создаём бэкдор


Хватит ждать


28 апреля 2022 года выпустили новые версии обновлений прошивок Display Audio для автомобилей Hyundai и Kia. К счастью, в том числе и для моей машины.


Я сразу же принялся за разработку собственного обновления прошивки с бэкдором.
Читать дальше →
Всего голосов 135: ↑135 и ↓0+135
Комментарии15

Как устроен блок питания, который работает в каждом системнике

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

Блок питания извлечён из корпуса. Пучок проводов слева подключается к компьютеру. Большой компонент посередине типа трансформатора — это фильтрующий индуктор. Кликабельно, как и все фотографии в статье

Вы когда-нибудь задумывались, что находится внутри блока питания (БП) вашего компьютера? Задача БП — преобразовать питание из сети (120 или 240 В переменного тока, AC) в стабильное питание постоянного, то есть однонаправленного тока (DC), который нужен вашему компьютеру. БП должен быть компактным и дешёвым, при этом эффективно и безопасно преобразовывать ток. Для этих целей при изготовлении используются различные методы, а сами БП внутри устроены гораздо сложнее, чем вы думаете.

В этой статье мы разберём блок стандарта ATX и объясним, как он работает1.
Читать дальше →
Всего голосов 46: ↑31 и ↓15+31
Комментарии97

Простейший измеритель CO2 за 2000 рублей и полчаса

Время на прочтение2 мин
Количество просмотров53K
Измеритель уровня углекислого газа (CO2) наверное самый недооценённый прибор, который на мой взгляд должен быть в каждой квартире, ведь он показывает, насколько воздух пригоден для дыхания и с помощью него всегда видно, когда пора проветривать.

Такой измеритель в квартирах большая редкость прежде всего из-за высокой цены. Свой первый измеритель AZ Instruments 7798 CO2 datalogger я покупал за $139 и это была самая дешёвая модель на рынке.

Сейчас готовый измеритель CO2 стоит около 4000 рублей, а самодельный обойдётся вдвое дешевле.

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

МГЛ (ДРИ) для освещения в квартире или на рабочем месте, основы и выбор + обзор ламп на 35Вт

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

Хочу вам рассказать о «самой слабой», ну почти самой слабой лампе МГЛ, доступной в общей продаже. Лампы лучше выбирать «стандартной мощности» они (почти)всегда есть в свободной продаже 35/70/150Вт (остальное "экзотика" - могут быть проблемы с ЭПРА и/или лампами).

Честный индекс цветопередачи CRI >80(теплые)/ >90(холодные). Присутствуют все видимые человеком цвета 380-780нм. Примерная яркость ламп (незначительно различается от бренда, ЦТ, методов измерения): 35Вт ~3400лм, 70Вт ~6800лм, 150Вт ~14000лм.

Лампы HCI/CDM (T/TC) мощностью 35в и упаковка от них.

T – цоколь G12 (слева), TC – цоколь G8.5, они не совместимы с патронами от обычных «галогенок» можете не пробовать впихать не впихуемое, единственный вариант это изобретать «своими руками» (например клемники).

Хочу узнать большее
Всего голосов 22: ↑18 и ↓4+22
Комментарии73

Освещение дома и «удалёнка»

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

Много сейчас пишут статей о светодиодных лампах, еще больше о "умных" лампах - в которых можно менять цветовую температуру, яркость и цвет свечения. В некоторых встроена bluetooth колонка, новогодняя гирлянда и прочее, не особо нужное источнику света… Многие производители «носятся» сейчас с CRI, поговаривая что он больше 95 у них (странно что не больше 100), как и срок службы лампочки > 50 000 часов… Не об этом речь пойдет в данной статье, а о том что зима на пороге, удаленка и…

…и недостаток света на рабочем месте, в данном случае квартире. Раньше, во времена «теплого лампового» света лампочки на 100Вт было достаточно на кухне, но там только готовили и ели… А потом дети бежали на улицу… Сейчас все сидят по домам, пытаются работать, учить уроки, сидеть за монитором/ноутбуком/планшетом. Тема «мерцающих» экранов раскрыта довольно подробно в интернете, скажу лишь одно – что при помощи калибратора можно настроить монитор приемлемо и (почти)убрать ШИМ. Ставить яркость на максимум и уменьшить ее с помощью цветового профиля. Тогда не будет вылезать ШИМ подсветки некачественного монитора. Теперь к освещению, проблема офиса в квартире – это свет, а точнее его недостаток. Ведь многие используют 1-3 лампочки на всю комнату… А это очень и очень мало. Вспомните офисы, там сборки ламп 18х4 и довольно часто на потолке.

Все красивые слова о светодиодах разбиваются о три проблемы –

Ниже приведу спектры МГЛ и светодиода (с официальных даташитов ламп philips), он будет полезен для сравнения.

Спектры ламп (масштаб чуть отличается, но на проблему это не влияет) МГЛ 3000k Philips CDM-T(TC), 4200k Philips CDM-T(TC), 4000k Philips LED tube+

на пороге, удаленка и…
Всего голосов 23: ↑21 и ↓2+28
Комментарии65

Какие английские слова IT-лексикона мы неправильно произносим чаще всего

Время на прочтение5 мин
Количество просмотров172K
Пока пара новых статей на технические темы еще в процессе написания, я решил опубликовать небольшой лингвистический материал. Достаточно часто замечаю, что коллеги, у которых английский язык — не родной, неправильно произносят некоторые характерные для IT сферы слова. И дело здесь не в том, насколько аутентично произносятся отдельные звуки, а именно в транскрипции. Регулярно встречал ситуации при общении с носителями, когда неправильно произносимое слово приводило к недопониманиям.

Дальше я приведу несколько наборов слов, сгруппированных по типовым ошибкам. К каждому слову будет приложена транскрипция, приблизительная транскрипция на русском и ссылка на более детальную информацию в словаре. Так как большинство IT компаний все-таки работает с Северной Америкой, то транскрипции будут из US English.
Читать дальше →
Всего голосов 244: ↑243 и ↓1+307
Комментарии486

Шейдерный эффект дудла

Время на прочтение8 мин
Количество просмотров8.8K
В этом туториале я расскажу о том, как с помощью шейдеров воссоздать популярный спрайтовый эффект дудла в Unity. Если для вашей игры необходим такой стиль, то из этой статьи вы узнаете, как достичь его без отрисовки кучи дополнительных изображений.

Последние несколько лет этот стиль становится всё более популярным и активно используется в таких играх, как GoNNER и Baba is You.


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

На создание этого туториала меня вдохновил успех Doodle Studio 95!.
Всего голосов 24: ↑23 и ↓1+22
Комментарии5

Межпозвоночная грыжа? Работай над ней

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

Внимание! Данная статья не призывает к самолечению! Не является рекламной. Люди уникальны, единой схемы для всех нет.

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

Предыстория


В свои 22 года я стал счастливым обладателем 4 грыж поясничного отдела позвоночника. Для меня это было шоком, ведь я люблю активный образ жизни и спорт в целом. Как они появились сказать сложно. Просто, в какой-то момент начала болеть спина по нарастающей. Полагаясь на русский авось, я продолжал играть в свой любимый футбол и доигрался.
Читать дальше →
Всего голосов 66: ↑58 и ↓8+50
Комментарии77

Как создать игру, если ты ни разу не художник

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

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

И не надо…
Читать дальше →
Всего голосов 107: ↑106 и ↓1+105
Комментарии71

Модульные боты-муравьи с памятью

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

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

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

Я уже реализовал базовую систему конвейера задач на Javascript (потому что это упростило мою жизнь), но мне хотелось чего-то более надёжного и масштабируемого, поэтому этот проект я написал на C++. На это меня сподвиг конкурс по реализации процедурного сада в сабреддите /r/proceduralgeneration (отсюда и соответствующая тема).

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

Для увеличения сложности я хотел, чтобы акторы сохраняли информацию о предыдущем опыте взаимодействия с миром и использовали знания об этих взаимодействиях в будущих действиях.
Читать дальше →
Всего голосов 55: ↑54 и ↓1+53
Комментарии11

Как спастись от «зайцев». Инструкция по борьбе с ультрафиолетом

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

Однажды в далекие школьные годы у меня появилась идея заняться авто-реставрацией, благо у отца был в наличии уже практически сгнивший (но с отличным мотором) АЗЛК Москвич-408. Первым делом конечно же было решено поменять пороги и укрепить раму металлическим швеллером. Самый быстрый способ — естественно сварка, благо у отца и самодельный аппарат на Ш-образных пластинах был. Электроды и я нашел и, в принципе, довольно сносно приварил куски металла. Довольный своей работой заснул, думая о том, что я буду приваривать с утра. А с утра проснулся и понял что "ослеп", а отец поздравил "с первым пойманным зайцем". Чтобы понять о чем разговор — проследуйте под cut.


Читать дальше →
Всего голосов 88: ↑87 и ↓1+86
Комментарии121

Прогнозирование физики на стороне клиента в Unity

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

TL;DR


Я создал демо, показывающее, как реализовать прогнозирование на стороне клиента физического движения игрока в Unity — GitHub.

Введение


В начале 2012 года я написал пост о как-бы-реализации прогнозирования на стороне клиента физического движения игрока в Unity. Благодаря Physics.Simulate() тот неуклюжий обходной способ, который я описал, больше не нужен. Старый пост до сих пор является одним из самых популярных в моём блоге, но для современного Unity эта информация уже неверна. Поэтому я выпускаю версию 2018 года.

Что-что на стороне клиента?


В соревновательных многопользовательских играх необходимо по возможности избегать читерства. Обычно это значит, что применяется сетевая модель с авторитарным сервером: клиенты отправляют серверу вводимую информацию, а сервер превращает эту информацию в перемещение игрока, а потом отправляет снэпшот получившегося состояния игрока обратно клиенту. При этом возникает задержка между нажатием клавиши и отображением результатом, что неприемлемо для любых активных игр. Прогнозирование на стороне клиента — это очень популярная техника, скрывающая задержку, прогнозируя то, каким будет получившееся движение и сразу показывая его игроку. Когда клиент получает результаты от сервера, он сравнивает их с тем, что спрогнозировал клиент, и если они отличаются, то прогноз был ошибочным и нуждается в коррекции состояния.
Всего голосов 28: ↑27 и ↓1+26
Комментарии6

Добавляем глубину 2D-спрайтам с помощью отрисованных вручную карт нормалей

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

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

Британский разработчик игр Cardboard Sword работает над двухмерным стелс-платформером The Siege and the Sandfox, создаваемом в Unreal Engine 4 с Paper2D. Команда публикует серию дневников разработки, знакомящую других разработчиков с тем, как использовать эти инструменты в собственных играх.

Одна из основных технических особенностей The Siege and the Sandfox — использование отрисованных вручную тайлсетов и спрайтов с картами нормалей, позволяющих применять в этой игре с достаточно традиционным двумерным пиксель-артом способы трёхмерного освещения.

Один из арт-директоров Cardboard Sword Кейт Дюк-Кокс недавно рассказал Gamasutra, как компания пришла к использованию этой техники, о том, почему она подходит игре и как можно применить подобные техники в собственных 2D-играх.
Всего голосов 28: ↑28 и ↓0+28
Комментарии6

Создание 1k intro Chaos для ZX-Spectrum

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

Изначально я не планировал делать демо на Chaos Constrictions 2018, однако за 2-3 недели до cc понял, что с пустыми руками идти на демопати никак нельзя, и решил написать небольшую демонстрацию для 386/EGA/DOS.

Скомпилировав в Turbo-C под DOS свою либу AnotherGraphicsLibrary, которая идеально ложиться в битплановую структуру EGA режима, я разочаровался, от тормозов, прежде всего тормозов EGA. Демо в том виде, в котором я хотел бы его видеть, за этот весьма ограниченный срок, сделать было невозможно.

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

Поскольку из реалов у меня только 48k, то и демо я решил сделать для 48k. А из-за ограниченности сроков и отсутствия каких-либо наработок, выбор пал на создание 1k intro(демо объёмом всего 1 килобайт, или 1024 байта).
Читать дальше →
Всего голосов 67: ↑66 и ↓1+65
Комментарии56

Learn OpenGL. Урок 5.3 — Карты теней

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

Тень — это отсутствие света. Если лучи от источника света не попадают на объект, так как поглощаются другим объектом, то первый объект находится в тени. Тени добавляют реализма к изображению и дают увидеть взаимное расположение объектов. Благодаря ним сцена приобретает "глубину". Сравните следующие изображения сцены с тенями и без:


with_shadows_and_without


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


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


Один из методов — карты теней (shadow maps) — относительно простой в реализации, используется в большинстве видеоигр и даёт достойные результаты. Карты теней не так уж и трудно понять, они довольно дёшевы с точки зрения производительности и их легко улучшить до более продвинутых алгоритмов (типа теней от точечного источника света или каскадных карт теней)

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

Информация

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