Search
Write a publication
Pull to refresh
0
Василь Бєляєв @VXPread⁠-⁠only

C#, C++, Lua

Send message

Что нужно знать технологическим компаниям, запускающим блог о своих разработках

Reading time6 min
Views3K

Если вы планируете делиться материалами с широкой аудиторией [например, хотели бы запустить корпоративный блог на той или иной площадке или публиковаться в СМИ с рассказами о своем проекте], постарайтесь обратить внимание на эти рекомендации. Они помогут исключить агрессию и резкую реакцию — например, на ваши хабрапосты и заметки в других медиа.

Читать далее

Проблема использования RunAs на серверах

Reading time7 min
Views14K

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

Зачем это вообще нужно? Бывают ситуации, когда пользователю с ограниченными правами требуется выполнить программу, которой для выполнения специфической работы требуются повышенные права. Например, программисту нужно предоставить возможность завершать определённые процессы бухгалтерской программы, некоторым пользователям из бухгалтерии требуется возможность переключать ключи безопасности в интерактивном режиме и так далее. Часть этих задач можно выполнять неинтерактивно, при этом несколько страдает удобство, поскольку пользователь не видит интерфейс программы и может разве что получить системное сообщение о завершении работы программы, об этом способе подробно рассказал мой коллега Вадим Стеркин в своём блоге: Как выполнять задачи с полными правами обычным пользователем без ввода пароля администратора. Способ отличный для своих задач, в моей же статье речь пойдёт о рисках и безопасности выполнения интерактивных программ от имени других пользователей, где полной автоматизации достичь нельзя и есть необходимость взаимодействия с интерфейсом.

Читать далее

Пишем паническую кнопку под андроид (Часть 2)

Reading time4 min
Views5.6K

Заглядываем под капот, решаем проблемы и баги. Как все устроено и что используется - ответы тут! С вами Алексей и сегодня речь пойдет именно от этом.

Читать далее

Собираем квантовый генератор случайных чисел

Reading time4 min
Views24K

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

Настройка ядра Linux для повышения производительности памяти

Reading time4 min
Views31K

Linux старается оптимизировать использование памяти, занимая свободное место кэшем. Если память никак не используется, то это память, потраченная впустую.

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

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

Причина этого исключительно в том, что оперативная память используется на полную мощность, и других симптомов, кроме случайного эпизодического увеличения задержек, может и не быть. Такая же картина может наблюдаться, если жесткий диск не справляется с чтением и записью. Влияние может быть и на такие компоненты операционной системы как сетевая карта / iptables / ebtables / iproute2 — вместо реальной причины вы видите проблемы в сетевой задержке. В этой статье обсудим это подробнее и посмотрим, как минимизировать воздействие на систему.

Читать далее

ESP8266 и Lua: «оттормаживаем» функцию

Reading time1 min
Views4.2K

Небольшая заметка на тему, известную всем кто знает JavaScript, но не вполне очевидная для DIY программирования ESP8266.

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

Одним из вариантов такого действа будет работа через callback функцию и таймер. Код с пояснениями:

Читать далее

Конспектируем Книгу Rust:: Владение

Reading time8 min
Views18K

Перед вами краткое профессиональное описание особенностей языка Rust для профессионалов.


Что это такое?
  • краткое — информации будет гораздо меньше, чем в Книге (The Rust Programming Language)
  • профессиональное — информации будет гораздо больше, чем в Книге;
  • описание особенностей — фокусируемся на отличиях Rust от других языков;
  • языка — описывается именно язык, а не установка средств разработки, управление пакетами и прочий инструментарий;
  • для профессионалов — подразумевается, что читатель имеет существенный опыт в разработке ПО.

Чего здесь НЕ будет


  • Не будет агитации за Rust
  • Не будет легко. Для освоения потребуется неделя-другая вдумчивого чтения по часу в день, с тщательным разбором примеров, как-то так

Содержание


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

Клонируем GPT-диск с 512B-сектором на диск с 4K-сектором в Linux. Подводные камни с EFI, NTFS и LVM

Reading time9 min
Views14K

Для современного компьютера диск с 4К сектором выглядит предпочтительнее, чем с олдскульным 512B. Так как почти все современные ФС имеют размер кластера по-умолчанию 4KiB или больше. Поэтому использование 512B сектора несколько снижает производительность, а также увеличивает коэффициент умножения записи (Write Amplication) у SSD, что уменьшает ресурс.

Более того, сложно найти современные диски более 4ТБ с сектором 512N. Если диск и рапортует сектор в 512 байт, то, как правило, это 512E — эмулируемый, который используется в основном для совместимости со старыми контроллерами. А в реальности на физическом уровне используется 4К или даже больше (больше в основном у SSD).

Поэтому при покупке нового диска я выбрал диск с сектором 4КiB. И передо мной встала задача клонирования старого диска с 512B сектором (GPT) на новый c сектором 4KiB. Я хотел сохранить установленные Linux, Windows 10, Windows 7 и тома LVM, чтобы не заниматься переустановками ОС. В процессе чего всплыло несколько подводных камней.
Поехали!

Что вам надо знать, прежде чем вы рискнёте отбеливать зубы

Reading time10 min
Views54K

На самом деле, почти никому не надо отбеливать зубы.

Понятие красоты крайне условное. Кому-то нравятся стройные волейболистки, кому-то ближе стандарты граций Рубенса. Но у красоты есть всё же общая идея. Здоровый человек воспринимается более красивым, чем болезненный, с нездоровой кожей и гнилыми зубами. Это эволюционно разумно — все хотят здорового партнёра для размножения.

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

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

Читать далее

Бэкдоры в наших смартфонах живут уже 20 лет. И это не последние подарки от государства

Reading time7 min
Views90K

Оборудование для фальшивой базовой станции 4G/LTE, источник

Иногда складывается впечатление, что основная угроза безопасности граждан исходит от государственных спецслужб. Эти не размениваются на мелочи. Их интересует взлом не с одного сайта, а всего трафика в интернете. Прослушка не отдельного человека, а сразу всех. Спецслужбы неоднократно пытались внедрить бэкдоры в алгоритмы публичной криптографии (см. генератор «случайных» чисел Dual EC DRBG с бэкдором АНБ). Прослушка произвольного гражданина в любой стране, на любом устройстве — голубая мечта «Большого брата».

Несколько лет назад вскрылись факты, что ЦРУ давно внедрилось в швейцарскую компанию Crypto AG, крупнейшего мирового производителя криптооборудования. Сейчас ФСБ навязывает российским гражданам отечественную криптографию, где тоже подозревают наличие бэкдора на уровне алгоритма.

Ещё одна интересная история — с алгоритмами шифрования GPRS, которые до сих пор поддерживаются в большинстве телефонов, включая Apple iPhone, Samsung Galaxy S9, Huawei P9 Lite, OnePlus 6T и многие другие.

Оптимизация на простых типах данных. Часть №1 «Строки»

Reading time12 min
Views8.1K
19 апреля автор курса «Алгоритмы для разработчиков» в Яндекс.Практикуме и разработчик в компании Joom Александра Воронцова провела открытый вебинар «Оптимизация на простых типах данных». У Аси за спиной 11 лет разработки, опыт олимпиадного программирования, а также работа в Яндексе с высоконагруженными проектами.

Мы подготовили расшифровку вебинара в двух частях. Первая часть — про строки и работу с ними, вторая — про числа.

Статья будет полезна разработчикам на Python и C/C++, которые хотят научиться трюкам для ускорения кода, а также программистам на других языках, которым интересны фишки, связанные с типами данных.


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

Насколько сложно написать свою операционную систему?

Reading time6 min
Views28K

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

Десять лет назад ходили анекдоты про Дениса Попова, который долго и упорно настаивал, что написал свою операционную систему «с нуля». Это считалось своеобразным синонимом «изобрести велосипед», то есть совершенно бессмысленной тратой времени. Анекдотизм ситуации состоял в том, что школьник из Нижнего Тагила скопировал Ubuntu, но был искренне убеждён в уникальности своего проекта.

Но действительно честная попытка написать свою операционку — не такое уж и бесцельное занятие (кстати, как сконструировать велосипед с нуля). По ходу дела может оказаться, что некоторые казавшиеся «очевидными» детали современных ОС спроектированы совсем не оптимально. Или вовсе не нужны.

Если бы ядро Unix писали сегодня, оно выглядело бы иначе. Подобные эксперименты могут напомнить о некоторых фундаментальных изъянах, несовершенствах или рудиментах современных ОС, на которые мы привычно закрываем глаза.
Читать дальше →

Оказывается, в Windows тоже есть перенаправления, пайпы, свой /dev, /dev/null, /etc/fstab, grub.cfg

Reading time5 min
Views95K
Разделы можно пропускать без ущерба для понимания, ровно как и любые непонятные/неинтересные места в них.

Перенаправления


Как обычно:

echo foo > bar
echo foo 2> bar
echo foo > bar 2>&1

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

UNIX-подобные системы содержат кучу костылей. Крах «философии UNIX»

Reading time29 min
Views107K
UPD от 2017-03-04: кто-то выполнил английский перевод. Обсуждение на Hacker News.

В первой части статьи перечислю кучу костылей UNIX, и вообще разных недостатков. Во второй — про «философию UNIX». Статья написана наскоро, «полировать» дальше не хочу, скажите спасибо, что написал. Поэтому многие факты привожу без ссылок.

Костыли в UNIX начали возникать ещё с момента появления UNIX, а это было ещё раньше появления не только Windows, но даже вроде бы Microsoft DOS (вроде бы, мне лень проверять, проверяйте сами). Если лень читать, хотя бы просмотрите все пункты, что-нибудь интересное найдёте. Это далеко не полный список, это просто те косяки, который я захотел упомянуть.
Читать дальше →

Как монорепозиторий изменил жизнь разработчиков «Лаборатории Касперского»?

Reading time8 min
Views15K

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

Read more

Первые пять шагов для перелома ситуации с читерами в PvP-шутере

Reading time9 min
Views13K

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

Итак, эти шаги:

• Обфускация.
• Хранение данных.
• Миграция прогресса.
• Система бана.
• Подсчет хеша всех библиотек.
• Защита от переподписывания версий.
• Photon Plugin.
• Серверная валидация инаппов.
• Защита от взлома оперативной памяти.
• Собственная аналитика.
• И одновременный релиз всех решений.

Сегодня поговорим про первые пять пунктов.

Читать далее

PvP-шутер без даунтаймов: архитектура, аварийные режимы и сервера с рубильником

Reading time6 min
Views7K

Мы уже рассказывали, почему первая версия архитектуры игры не была идеальной. Pixel Gun 3D изначально был прототипом в новом для команды жанре PvP-шутер. Хотели протестировать идею, чтобы собрать фидбек от игроков, но популярность игры начала расти достаточно быстро — писать ее заново было уже поздно. Сейчас подход к разработке новых проектов у нас сильно изменился, но зато тогда, без опыта, мы не потратили уйму времени на создание прототипа, который мог оказаться неинтересным для игроков.

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

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

Читать далее

Вывод чётких изображений на экранах с высокой плотностью пикселей

Reading time11 min
Views13K
Много лет тому назад существовали мониторы с разными разрешениями, а после того, как индустрия перешагнула отметку в 1024x768, экраны, с увеличением разрешения, становились больше.

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

Далее, в 2010 году, вышел iPhone 4 (ёшкин кот, 11 лет назад), разрешение его экрана составляло 640x960. А в iPhone 3 имелся экран почти такого же размера, но с разрешением 320x480. Разрешение выросло вдвое, а физический размер экрана остался примерно таким же, как раньше. В результате вдвое выросла плотность пикселей экрана.



Нельзя было, без изменений, запускать старые приложения на новых экранах, так как нечто вроде текстов и кнопок выглядело бы слишком маленьким. Поэтому компания Apple удвоила (Прим.: справедливости ради, в 4 раза) размеры всех экранных элементов. 1 логический пиксель превратился в 2 физических пикселя.

В веб-разработке соотношение логических и физических пикселей известно как DPR (Device Pixel Ratio). DPR iPhone 4 равняется 2 (иногда такие экраны называют «2x-экранами» или «2dppx-экранами»).

Теперь, немного коснувшись истории, перейдём к более современным вещам.
Читать дальше →

Опыт подключения приёмника Logitech Unifying к интерфейсу M.2

Reading time4 min
Views29K

Всего два порта USB на ноутбуке, которые постоянно нужны в работе, желание пользоваться не тачпадом, а любимой беспроводной мышкой и простаивающий без дела порт M.2 заставили решить небольшую техническую задачу: как подключить приёмник Logitech Unifying к интерфейсу M.2.

Читать далее

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity