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

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

CAN шина

Время на прочтение 3 мин
Количество просмотров 8.6K
Программирование микроконтроллеров *Схемотехника *Компьютерное железо Интернет вещей
Из песочницы

Всем привет! Я начинающий разработчик и увлекся Embedded стороной вопроса. Лучший способ запомнить информацию - написать какой нибудь конспект и поделиться им. Ниже моя краткая выжимка о CAN шине и передаче данных через нее.

Читать далее
Всего голосов 31: ↑18 и ↓13 +5
Комментарии 8

Имитация трёхмерных зданий в 2D-игре

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 14K
Программирование *Разработка игр *Игры и игровые консоли
Туториал
Из песочницы

Создаём объём при помощи света и теней.

Игра двухмерная, разрабатывается на Game Maker Studio 2 и во время работы я столкнулся с множеством задач а-ля «должно быть красиво». Где-то пришлось придумать свой велосипед, где-то повезло наткнуться на описание решения похожих задач.

В свое время меня очень вдохновила статья про рендер в Graveyard Keeper - это очень классный материал для разработчика 2D игр, в сети подобного довольно мало. Поэтому надеюсь, что моя статья тоже послужит для кого-то источником вдохновения.

Внутри есть гифки и картинки!
Всего голосов 67: ↑67 и ↓0 +67
Комментарии 16

17 убойных репозиториев GitHub, которые нужно сохранить

Время на прочтение 6 мин
Количество просмотров 127K
Блог компании OTUS Программирование *GitHub *
Перевод

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

Читать далее
Всего голосов 174: ↑144 и ↓30 +114
Комментарии 44

Как я ограничил свое экранное время и поборол бессонницу

Время на прочтение 10 мин
Количество просмотров 9.3K
Здоровье
Из песочницы

15 января 2019 года на часах 2 часа ночи — я не могу уснуть. Мне не приятно сама компания с собой, я только что ушел из стартапа, набрал вес, потерял кучу времени, еле сводил концы с концами и в этот момент совершенно не понимал, как быть дальше. У каждого ночью намного все хуже, чем днем…

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

Читать далее
Всего голосов 23: ↑20 и ↓3 +17
Комментарии 7

Как проходить архитектурные секции

Время на прочтение 6 мин
Количество просмотров 10K
Анализ и проектирование систем *Карьера в IT-индустрии

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

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

Читать далее
Всего голосов 12: ↑10 и ↓2 +8
Комментарии 8

Обзор шины SPI и разработка драйвера ведомого SPI устройства для embedded Linux (Часть первая, обзорная)

Время на прочтение 13 мин
Количество просмотров 156K
Настройка Linux *
Из песочницы
В этой статье я хочу провести краткий обзор шины SPI (интерфейса, широко распространённого во встраиваемой технике, используемого для подключения различных устройств) и попытаюсь описать процесс создания драйвера протокольного уровня SPI устройства для Linux. Данный документ не претендует на роль полного руководства, а скорее преследует цель указать нужное направление. Так как статья не вошла в размер одного топика, мне пришлось разбить её на две части.

0. Вместо введения


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

Для кого эта статья?
В первую очередь, для новичков, каковым являюсь и я. На форумах по embedded Linux очень часто можно встретить вопрос: «А как на этой плате работать с SPI?». Именно на него я и попытаюсь дать ответ. В качестве примера, я приведу код написанный для работы с моим тестовым SPI устройством.
Читать дальше →
Всего голосов 52: ↑51 и ↓1 +50
Комментарии 13

Пошаговый запуск программы в Linux x86, или как добраться до main()?

Время на прочтение 18 мин
Количество просмотров 21K
Блог компании RUVDS.com Assembler **nix *Отладка *Разработка под Linux *
Перевод


Статья предназначена для тех, кто хочет понять процесс загрузки программ в Linux. В частности, здесь пойдет речь о динамической загрузке файлов ELF x86. На основе изложенной информации вы сможете лучше понять, как устранять проблемы, возникающие в программе еще до запуска main.
Читать дальше →
Всего голосов 60: ↑59 и ↓1 +58
Комментарии 10

Борьба с робозвонками выходит на новый уровень — телекомы США ограничат нежелательную активность

Время на прочтение 3 мин
Количество просмотров 11K
Блог компании VAS Experts Спам и антиспам Законодательство в IT

Рассказываем, как развивается борьба с «телефонным спамом» в США, чего уже удалось добиться регуляторам и как они планируют закрепить успехи — далее помогать гражданами отбиваться от усиливающегося шквала нежелательных звонков с рекламными объявлениями и участившимися во время кризиса попытками получения денежных средств обманным путем.

Читать далее
Всего голосов 14: ↑13 и ↓1 +12
Комментарии 96

Это норма — 4: решение проблем с картами нормалей

Время на прочтение 9 мин
Количество просмотров 28K
Работа с 3D-графикой *
Перевод
image

Часть 1: что такое карты нормалей и как они работают

Часть 2: как запекаются карты нормалей

Часть 3: типы карт нормалей

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

Здесь я перечисляю проблемы карт нормалей, с которыми я сталкивался за годы работы, и некоторые решения, позволяющие их устранить.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 1

Это норма — 2: как запекаются карты нормалей

Время на прочтение 6 мин
Количество просмотров 23K
Работа с 3D-графикой *Разработка игр *
Перевод
Это вторая часть серии туториалов о картах нормалей. Первая часть находится здесь, но для понимания второй части читать её не обязательно.

Общий принцип запекания карты нормалей относительно прост: у нас есть lowpoly-модель с UV-координатами и highpoly-модель; мы переносим информацию о нормалях с highpoly на lowpoly. Благодаря этому lowpoly будет отражать свет так же, как highpoly.

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

Если вы не контролируете нормали вершин lowpoly-модели, то потеряете контроль над картой нормалей.

image
Всего голосов 22: ↑22 и ↓0 +22
Комментарии 0

Перегрузка в C++. Часть I. Перегрузка функций и шаблонов

Время на прочтение 30 мин
Количество просмотров 52K
Программирование *C++ *
Туториал

C++ сложный и интересный язык, совершенствоваться в нем можно чуть ли не всю жизнь. В какой-то момент мне захотелось изучать его следующим образом: взять какой-то аспект языка, возможно довольно узкий, и разобраться с ним максимально глубоко и подробно. Такой подход в значительной степени был стимулирован замечательными книгами Скотта Мейерса, Герба Саттера и Стефана Дьюхэрста. Когда накопилось определенное количество материалов, решил познакомить с ними Хабровчан. Так появилась эта серия, которую я назвал «C++, копаем вглубь». Серия помечена как Tutorial, но ориентирована она все-таки не на начинающих, а скорее на intermediate уровень. Первая тема — это перегрузка в C++. Тема оказалась очень обширной и получилось три статьи. Первая статья посвящена перегрузке функций и шаблонов, вторая перегрузке операторов и третья перегрузке операторов new/delete. Итак, начнем копать.


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

Умный Дом — голосовое управление в три шага. Raspberry + HomeKit

Время на прочтение 4 мин
Количество просмотров 24K
Разработка на Raspberry Pi *Умный дом
Из песочницы
Уважаемые друзья!

Мы решили поделиться с Вами бюджетным готовым решением, надеемся Вы оцените наши старания. Решение проверенное, рабочее. Во вложении можно скачать все файлы программ и настройки. Отдаем все бесплатно.

Умный дом для заказчика в основном «игрушка» которым можно похвастаться перед друзьями, но эти игры стоят не малых усилий интеграторам!

Речь пойдет о некоторых проблемах и решениях, связанных именно с освещением в доме, как о неотъемлемом блоке «умного дома».

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

Решение: Использовать распределенные модули управления с внутренней логикой, по нашему опыту одним из самых зарекомендовавших себя устройств в этом — программируемое реле ПР200 производства компании ОВЕН. Советуем использовать версию 220в, т.к. бытовые выключатели рассчитаны именно на это напряжение и будет меньше проблем с логической «единицей» на дискретном входе.

image

Это устройство имеет 8 каналов (реле) которые можно запрограммировать с использованием внутренней логики (как распределенную систему), дополнительно подключаются еще модули расширения 2шт. по 8 каналов, но тут есть риск остаться без большего количество управляемых светильников при выходе из строя самого ПР200 (8 каналов против 24), если соберетесь экономить, подумайте!

image

Несмотря на то, что программу выглядит просто, к ней мы шли несколько лет не по своей вине, компания Овен относительно недавно (после появления ПР200) добавила возможность управлять сетевой переменной как с наружи, так и изнутри.
Читать дальше →
Всего голосов 19: ↑15 и ↓4 +11
Комментарии 36

Новый алгоритм поиска пути в Factorio

Время на прочтение 6 мин
Количество просмотров 22K
Разработка игр *Алгоритмы *Игры и игровые консоли
Перевод

На прошлой неделе мы говорили в своём блоге об изменениях, которые позволят врагам (biters, кусакам) не наталкиваться друг на друга, но это было не единственное обновление, связанное с biter-ами. Совпало так, что в обновления этой недели вошло то, над чем мы работали предыдущие несколько недель — обновление системы поиска пути для врагов.

Поиск пути


Когда юнит хочет куда-то переместиться, ему сначала нужно понять, как туда добраться. В самом простом случае можно двигаться прямиком к цели, но на пути иногда возникают препятствия — скалы, деревья, гнёзда врагов (spawners), юниты игрока. Чтобы проложить дорогу, мы должны сообщить функции поиска пути (pathfinder) текущую и конечную позиции, а pathfinder вернёт нам (возможно, через много тактов) путь, который просто является набором промежуточных точек (waypoints), по которым должен двигаться юнит, чтобы добраться до места назначения.

Для выполнения своей работы pathfinder использует алгоритм под названием A* (произносится «A star»). Простой пример поиска пути при помощи A* показан на видео: biter хочет найти путь в обход скал. Функция поиска пути начинает исследовать карту вокруг biter-а (исследование показано белыми точками). Сначала она пытается пойти напрямик к цели, но как только достигает скал, «разливается» в обе стороны, пытаясь найти позицию из которой снова можно будет двигаться к цели.
Всего голосов 58: ↑57 и ↓1 +56
Комментарии 30

C, C++ и DotNet decompile — основы реверса. Решение задач на реверсинг с r0от-мi. Часть 1

Время на прочтение 3 мин
Количество просмотров 16K
Информационная безопасность *.NET *C++ *C# *CTF *
Туториал
image

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

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

  • PWN;
  • криптография (Crypto);
  • cетевые технологии (Network);
  • реверс (Reverse Engineering);
  • стеганография (Stegano);
  • поиск и эксплуатация WEB-уязвимостей.

Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 6

Разработка монолитной Unix подобной OS — Куча (4)

Время на прочтение 7 мин
Количество просмотров 2.8K
Assembler *Системное программирование *C *
Туториал
В предыдущей статье мы с вами реализовали системный журнал ядра. Теперь пришло время реализовать менеджер динамической памяти.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 2

22 сайта для программиста, которые помогут заговорить на английском

Время на прочтение 3 мин
Количество просмотров 117K
Программирование *Лайфхаки для гиков Изучение языков
Хабр, привет!

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

Приступим!

Учить лексику


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

ЛеоПереводчик

С этим плагином удобно переписываться с коллегами. Он автоматически переводит непонятные слова и выражения. Незаменимый инструмент, когда нет времени на доскональные переводы и нужен срочный ответ.
Читать дальше →
Всего голосов 45: ↑39 и ↓6 +33
Комментарии 15

Разработка под Docker. Локальное окружение. Часть 1

Время на прочтение 3 мин
Количество просмотров 64K
Разработка веб-сайтов *PHP *
Из песочницы
Возможно, одна из самых основных причин почему мне нравится докер это то, что он позволяет избавиться от необходимости установки на компьютер различных сервисов. К их числу можно отнести и сам веб-сервер Apache или Nginx, базы данных и прочие компоненты инфраструктуры приложения. Вся инфраструктура прописана в конфигурационном файле docker-compose.yml и запускается одной командой вместе с вашим приложением. Все что нужно разработчику работающему с докером, это по сути сам докер и любимая среда разработки и ВСЕ!
Читать дальше →
Всего голосов 47: ↑38 и ↓9 +29
Комментарии 82

8 простых UI приёмов чтобы сделать дизайн-прототип динамичным, не прибегая к анимации

Время на прочтение 6 мин
Количество просмотров 31K
Веб-дизайн *Интерфейсы *Usability *Дизайн мобильных приложений *Прототипирование *


Материал этой статьи является следствием моих дизайн-экспериментов и выводов за последний год-полтора непрерывного дизайн гринда. Я неустанно собирал ui kit’ы, экспериментировал с контентом в плейсхолдерах, стилями, тенями текстами и состояниями, чтобы понять влияет ли это на конверсию. Иначе говоря, смогу ли я увеличить продажи дизайн-продуктов для Figma, если добавлю немного визуальной динамики в статичные дизайн-макеты, чтобы сделать темплейты интереснее и функциональнее.
Читать дальше →
Всего голосов 43: ↑37 и ↓6 +31
Комментарии 21

Как разрабатываются и производятся процессоры: изготовление чипа

Время на прочтение 9 мин
Количество просмотров 42K
Производство и разработка электроники *Компьютерное железо Научно-популярное Процессоры Электроника для начинающих
Перевод
image

Это третья статья из серии о проектировании ЦП. В первой статье мы рассмотрели архитектуру компьютера и объяснили его работу на высоком уровне. Во второй статье говорилось о проектировании и реализации некоторых компонентов чипа. В третьей части мы узнаем, как архитектурные проекты и электрические схемы становятся физическими чипами.

Как превратить кучу песка в современный процессор? Давайте разберёмся.

Часть 1: Основы архитектуры компьютеров (архитектуры наборов команд, кэширование, конвейеры, hyperthreading)
Часть 2: Процесс проектирования ЦП (электрические схемы, транзисторы, логические элементы, синхронизация)
Часть 3: Компонование и физическое производство чипа (VLSI и изготовление кремния)
Часть 4: Современные тенденции и важные будущие направления в архитектуре компьютеров (море ускорителей, трёхмерное интегрирование, FPGA, Near Memory Computing)

Как говорилось ранее, процессоры и вся другая цифровая логика составлены из транзисторов. Транзистор — это переключатель с электрическим управлением, который может включаться и отключаться подачей или отключением напряжения на затворе. Мы сказали, что существует два вида транзисторов: nMOS-устройства пропускают ток, когда затвор включён, а pMOS-устройства пропускают ток при выключенном затворе. Базовая структура процессора — это транзисторы, созданные из кремния. Кремний — это полупроводник, потому что он занимает промежуточное положение — не проводит ток полностью, но и не является изолятором.

Чтобы превратить кремниевую пластину в практическую электрическую схему добавлением транзисторов, производственные инженеры используют процесс под названием "легирование". Легирование — это процесс добавления в базовый субстрат кремния тщательно выбранных примесей для изменения его проводимости. Цель заключается в том, чтобы изменить поведение электронов так, чтобы мы могли ими управлять. Существует два вида транзисторов, а значит, и два основных вида легирования.
Читать дальше →
Всего голосов 36: ↑36 и ↓0 +36
Комментарии 10

Современные возможности C++, о которых надо знать всем программистам

Время на прочтение 9 мин
Количество просмотров 38K
Блог компании RUVDS.com Программирование *C++ *
Перевод
Автор материала, перевод которого мы сегодня публикуем, говорит, что C++, в его современном виде, если сравнивать его с тем, чем был этот язык несколько лет назад, значительно изменился в лучшую сторону. Конечно, эти изменения произошли далеко не сразу. Например, в былые времена C++ не хватало динамичности. Непросто было найти человека, который мог бы сказать, что он питает к этому языку нежные чувства. Всё изменилось тогда, когда те, кто отвечает за стандартизацию языка, решили дать ход новшествам. В 2011 году C++ стал динамическим языком, языком, который постоянно развивается и вызывает у программистов куда больше положительных эмоций.

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



Сегодня мы поговорим о некоторых новых возможностях языка (начиная с C++ 11, которому, кстати, уже 8 лет), знать о которых будет полезно любому программисту.
Читать дальше →
Всего голосов 56: ↑44 и ↓12 +32
Комментарии 14
1

Информация

В рейтинге
1 915-й
Откуда
Россия
Зарегистрирован
Активность