Pull to refresh
0
0
Send message

Проблема высоких каблуков в играх

Level of difficultyEasy
Reading time12 min
Views37K

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

Читать далее

Измерение собственного напряжения питания микроконтроллера

Level of difficultyMedium
Reading time2 min
Views7.5K

Началось все с того, что при проектировании своего устройства на микроконтроллере ATtiny 85, которое должно было работать от встроенного li‑ion аккумулятора, я изначально не задавался целью измерения заряда АКБ, поскольку в этом не было необходимости. Однако, собрав все устройство на печатной плате, я подумал над тем, почему бы не добавить такую возможность.

Прочитав в Интернете, как это можно было реализовать, стало ясно, что сделать это вряд ли удастся, поскольку все порты PB[0:5] уже были заняты и, следовательно, не было возможности применения АЦП с аналогового пина (при чем порт PB0 я не мог настроить на вход опорного напряжения AREF - он должен был использоваться как управляющий выход).

Долгое изучение состояния регистров АЦП в datasheet на ATTiny 85 привело меня к следующей идее: в качестве опорного напряжения может быть выбрано само напряжение питания VCC (биты REFS [0:2] регистра ADMUX установлены в 0), а в качестве измеряемого ‑ напряжение VBG с внутреннего стабилизатора в 1.1В (биты MUX [3:0] регистра ADMUX установлены соответственно в 1100). То есть, для измерения напряжения питания не нужно ничего, кроме, собственно, самого питания VCC!

Читать далее

Ты решаешь LeetCode неправильно. Как пройти любое собеседование в BigTech?

Level of difficultyEasy
Reading time6 min
Views50K

Привет! Я ex. Разработчик из VK, сейчас принял оффер от Ozon'a, и за последний месяц я прошел собеседования в 4х бигтех компаниях: Ozon, Avito, Wildberries и T-Bank и везде дошел до финалов/офферов. Пообщавшись во многих группах, посвященных Go-разработке, я понял, что много умных ребят готовясь к собесам не имеют четкой системы подготовки, и из-за этого заваливают технические собесы в компании. Не претендуя на истину в последней инстанции, предлагаю свою методику подготовки к собесам, которая помогла мне и моим знакомым подготовиться к техническим собесам во все популярные ру-бигтехи.

Читать далее

Викторианские фильтры, или Как люди избегают реальность уже 200 лет

Reading time4 min
Views21K

В 19 веке английские девушки и юноши, претендующие на возвышенность чувств, носили с собой небольшое продолговатое зеркальце, через которое смотрели на мир. Зеркальце было затемненное, что придавало отражению палитру модного художника Клода Лоррена. Увлечение, естественно, многие высмеивали: чтобы увидеть такой «отраженный» пейзаж, нужно было встать к нему спиной. Но ценителям прекрасного было все равно, ведь так они познавали мир через эмоциональный и индивидуальный опыт. Ничего не напоминает?

Сегодня мы продолжим исследовать Англию 18–19 веков, которая подарила миру множество прототипов современных социальных сетей. Складывается ощущение, что Британия была акселератором стартапов задолго до того, как это термин вообще появился. В прошлый раз я рассказывала про эдвардианские открытки, ставшие MVP мессенджеров. А сегодня поговорим о прототипе фильтров в соцсетях.

Читать далее

Даже не влезайте в Kubernetes без этого

Reading time20 min
Views49K
image

Главный прикол с k8s: поднять базовый кластер займёт всего 15 минут. А вот чтобы он реально заработал, ответить на все вопросы перед установкой, всё спланировать — на это нужны дни, реально дни мозгового штурма и планирования. Ну или потом придётся разбирать и делать ещё раз. Несколько раз.

Кубер унижает человеческое достоинство разными способами и на разных этапах. Это часть опыта от пользования продуктом. Так задумано.

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

Начнём с простых вещей, например, выбора дистрибутива, выбора способа хранения данных (и динамического выделения места), а также того, куда складывать пароли к критичным ресурсам. На этих трёх выборах ломается примерно 50 % админов.

Поехали в ад!
Читать дальше →

Конфигурация Caddy для on-demand сертификатов и wildcard-доменов с поддержкой Cloudflare

Level of difficultyEasy
Reading time3 min
Views2.1K

У меня была задача, сделать reverse proxy, который будет проксировать трафик и для определённых доменов выпускать новые сертификаты налету, а для некоторых нужно просто автоматически выпустить сертификат.

Для такой задачи идеально подходит Caddy.

Читать далее

Как мы перенесли производство из России в Китай из-за неожиданных косяков

Level of difficultyEasy
Reading time8 min
Views138K

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

Расскажу, что пошло не так, как мы пытались решить проблему и почему в итоге перенесли производство корпуса в Китай.

Читать далее

Сертификация ФСТЭК: как мы перестали бояться и полюбили процесс

Level of difficultyEasy
Reading time10 min
Views6.7K

Знаете, как обычно проходит первая встреча с сертификацией ФСТЭК? Примерно как встреча с медведем в лесу. Все знают, что он где-то есть, все слышали истории о том, как другие его видели, но пока не столкнешься сам — не поймешь масштаба. В какой-то момент нам стало понятно: либо научимся проходить сертификацию и последующие проверки красиво, либо увязнем в бесконечном марафоне.

Спойлер: мы научились.

SamsPcbGuide, часть 10: Технологии — пайка бессвинцовых компонентов

Reading time4 min
Views13K
Данная статья – первая статья о технологиях сборки печатных плат. Последний семинар от PCB SOFT был посвящён проектированию, обеспечивающему технологичность изготовления печатной платы (англ. DFM, design for manufacture). Был поднят вопрос о целесообразности реболлинга бессвинцовых BGA-компонентов для высоконадёжных применений. И организаторы семинара, и участники уверенно говорили о том, что эту трудоёмкую операцию никто не выполняет и с проблемами никогда не сталкивался. В данной статье я критически рассмотрю этот вопрос и постараюсь показать опасность таких «общепринятых в отрасли» мнений и о пользе метода универсального сомнения старины Рене Декарта.

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

Лучшие практики создания отказоустойчивых систем

Level of difficultyMedium
Reading time23 min
Views12K

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

Особое внимание уделяется методам повышения надёжности при временных сбоях, включая: повторные попытки выполнения операций с экспоненциальной задержкой (exponential backoff), использование шаблона circuit breaker, механизмы плавной деградации функциональности (graceful degradation), задание таймаутов, реализация идемпотентности, ограничение одновременных вызовов (bulkhead isolation), а также внедрение систем мониторинга и алертинга. Приводимые примеры охватывают типовые сценарии — обращение к внешним API, взаимодействие с базами данных и выполнение фоновых задач.

Читать далее

Как отобрать рекрутера по тестовому: разбираю на реальных примерах

Level of difficultyEasy
Reading time7 min
Views2.6K

Привет, меня зовут Мария, я профессиональный IT HR и основатель Kemenova HR Agency — компании по поиску IT-специалистов. В этой статье расскажу, как я отбирала рекрутера к себе в команду — какое тестовое можно дать на эту позицию и как его оценивать.

Читать далее

Архитектура диалоговой системы в Unity

Level of difficultyMedium
Reading time7 min
Views3.7K

Когда я начинал разработку своей игры, то не смог найти каких‑то внятных гайдов с описанием архитектуры диалоговой системы. Зачастую авторы упоминали верстку да логику UI, но не отвечали на вопросы «как менять сюжетные стейджи», «как работать с разными типами диалогов», «как менять статус персонажам на сцене» и т. п. Мне не хватало найденной информации и я потратил какое‑то время на написание диалоговой системы самостоятельно. Для опыта конечно же… но и, будем честными, денег я зажал на готовые плагины. Надеюсь, что эта статья поможет таким же новичкам в Unity как и я, кто решил учиться разработке через практику и прототипирование. Небольшая оговор очка: я занимаюсь автоматизацией тестирования и мой основной язык python. Так что заранее прошу извинить за не самые лучшие конструкции C#. Также хочу упомянуть, что статья эта не про код, а про архитектуру, так что первого в принципе будет не так уж и много. А что за игру я делаю? Сюжетное 2д приключение, где я решил брать не механиками, а историей.

Часть 1. Планирование архитектуры

Без четкого ТЗ результат ХЗ. Для начала планируем и фиксируем, что хочется вообще сделать. На моем примере:

1) Система линейная, диалоги без вариантов ответа;

2) Каждая сцена — это грубо говоря отдельная игра, которая не связана с другими сценами, их все можно запускать независимо. Сохранения реализованы в момент перехода между сценами;

3) На каждой сцене есть n стейджей. На каждом стейдже m диалогов. Заканчиваются стейджи — на этой сцене заканчивается сюжет, можно переходить на новую сцену;

Читать далее

Пишем стек TCP/IP с нуля: Ethernet, ARP, IPv4 и ICMPv4

Level of difficultyEasy
Reading time13 min
Views25K

Написание собственного стека TCP/IP поначалу может показаться пугающей задачей. И в самом деле, за свой тридцатилетний срок жизни TCP впитал в себя множество спецификаций. Однако базовая спецификация остаётся относительно компактной1 — из важных частей в ней можно выделить парсинг заголовков TCP, машину состояний, отслеживание перегрузок и вычисление таймаута повторной передачи.

Самые распространённые протоколы слоя 2 и слоя 3, Ethernet и IP, скромны по сравнению с сложностью TCP. В этой серии статей мы реализуем минимальный стек TCP/IP пользовательского пространства для Linux.

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

Читать далее

Записки оптимизатора 1С (ч.10): Как понять, что процессор — основная боль на вашем сервере СУБД MS SQL Server?

Level of difficultyMedium
Reading time11 min
Views8.1K

Назрел пост, связанный нагрузкой на процессор сервера СУБД MS SQL Server.

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

Когда нагрузка на процессоре 100%, огромные очереди к нему, то тут действительно всё просто и обсуждать особо нечего. Сценарий простой: либо ищем что его нагружает, либо система переросла процессор и ему пора накинуть мощностей.

А вот когда нагрузка держится на среднем уровне, но при этом есть очереди и ожидания, то здесь далеко не все так очевидно.

Читать далее

Постмортем: 4 мои ошибки во время отражения DDOS атаки (спойлер — выкуп в $250 мы все-таки не заплатили)

Level of difficultyMedium
Reading time7 min
Views21K

Мой обеденный кофе прервался. Начали приходить уведомления от мониторинга, что сайт и API не отвечают, а CloudFlare отдаёт 521-ю ошибку на все запросы. Спустя пять минут ко мне в личку пришли пользователи с жалобами на неработающие приложения. А ещё спустя пять позвонил сооснователь проекта и сказал, что от нас требуют $250 за остановку DDOS'a.

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

Читать далее

Самые Эпичные Баги при Программировании Микроконтроллеров

Level of difficultyEasy
Reading time12 min
Views24K

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

Самый типичный баг - это зависание прошивки.

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

Читать далее

Отказоустойчивость Postgres Pro Enterprise для 1С

Level of difficultyMedium
Reading time17 min
Views6.6K

Настройка отказоустойчивого кластера PostgreSQL для «1С:Предприятие» — задача для опытных специалистов. Ручное или автоматическое переключение на резервный сервер? Сколько реплик действительно необходимо для надёжной отказоустойчивости? Сертифицированный эксперт по PostgreSQL Алексей Васильев делится практическими знаниями и пошаговыми инструкциями по развёртыванию отказоустойчивого решения на базе Postgres Pro Enterprise с использованием BiHA.

Читать далее

LIMO: Меньше — значит больше для рассуждающих LLM

Level of difficultyMedium
Reading time53 min
Views3K

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

Читать далее

Разбор тестового задания по электронике в Яндекс

Level of difficultyHard
Reading time9 min
Views45K

Сегодня в очередной раз наткнулся на вакансию старшего инженера - схемотехника в Яндекс. Решил, что это знак и настало время разобрать их тестовое задание. Звучит оно следующим образом:

Читать далее

Разработка 2-наносекундного излучателя лидара. Тестовое задание от Яндекс.Беспилотники

Reading time10 min
Views45K

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

Читать далее

Information

Rating
Does not participate
Registered
Activity