Как стать автором
Обновить
2
Карма
0
Рейтинг

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

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

Здоровье
Из песочницы

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

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

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

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

Анализ и проектирование систем *Карьера в IT-индустрии

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

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

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

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

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

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


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

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

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

Блог компании RUVDS.com Assembler **nix *Отладка *Разработка под Linux *
Перевод


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

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

Блог компании VAS Experts Спам и антиспам Законодательство в IT

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

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

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

Работа с 3D-графикой *
Перевод
image

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

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

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

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

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

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

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

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

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

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

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

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

Программирование *C++ *
Tutorial

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


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

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

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

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

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

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

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

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

image

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

image

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

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

Разработка игр *Алгоритмы *Игры и игровые консоли
Перевод

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

Поиск пути


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

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

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

Информационная безопасность *.NET *C++ *C# *CTF *
Tutorial
image

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

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

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

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

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

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

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

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

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

Приступим!

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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



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

Записки Биоробота

Управление персоналом *Читальный зал Лайфхаки для гиков Мозг Здоровье
Как вы давно уже поняли, я не человек, а биоробот — электронный мозг, вживленный в обычное тело. Мне скучно просто работать и просто жить. Я хочу понять все законы, по которым существует человек. Как и почему он действует, ленится, работает, лежит на диване, хочет большего, хочет пива или сигарету, добивается успеха, ведет за собой людей и т.д.

Чтобы это понять, я постоянно, каждый день ставлю эксперименты. Над собой, над коллегами, над вами. А потом делаю выводы.

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

Вот и решил записать. Вдохновил пример самураев — если вы читали Хагакурэ, то поймете, о чем речь. А если не читали, то я поясню.
Читать дальше →
Всего голосов 63: ↑51 и ↓12 +39
Просмотры 17K
Комментарии 35

Изучаем Docker, часть 1: основы

Блог компании RUVDS.com Разработка веб-сайтов *Виртуализация *
Перевод
Tutorial
Технологии контейнеризации приложений нашли широкое применение в сферах разработки ПО и анализа данных. Эти технологии помогают сделать приложения более безопасными, облегчают их развёртывание и улучшают возможности по их масштабированию. Рост и развитие технологий контейнеризации можно считать одним из важнейших трендов современности.

Docker — это платформа, которая предназначена для разработки, развёртывания и запуска приложений в контейнерах. Слово «Docker» в последнее время стало чем-то вроде синонима слова «контейнеризация». И если вы ещё не пользуетесь Docker, но при этом работаете или собираетесь работать в сферах разработки приложений или анализа данных, то Docker — это то, с чем вы непременно встретитесь в будущем.

Часть 1: основы
Часть 2: термины и концепции
Часть 3: файлы Dockerfile
Часть 4: уменьшение размеров образов и ускорение их сборки
Часть 5: команды
Часть 6: работа с данными

image

Если вы пока не знаете о том, что такое Docker, сейчас у вас есть шанс сделать первый шаг к пониманию этой платформы. А именно, освоив этот материал, вы разберётесь с основами Docker и попутно приготовите пиццу.
Читать дальше →
Всего голосов 62: ↑52 и ↓10 +42
Просмотры 293K
Комментарии 26

Бэкап для Linux, или как создать снапшот

Блог компании Veeam Software Open source *C *Резервное копирование *Разработка под Linux *
Всем привет! Я работаю в Veeam над проектом Veeam Agent for Linux. С помощью этого продукта можно бэкапить машину с ОС Linux. «Agent» в названии означает, что программа позволяет бэкапить физические машины. Виртуалки тоже бэкапит, но располагается при этом на гостевой ОС.

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

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

Всех заинтересовавшихся прошу под кат!


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

Информация

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