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

C#, C++, Lua

Send message

«Я — робот Вертер» или Нулевой закон робототехники

Level of difficultyEasy
Reading time8 min
Views11K


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

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

А также обсудим пути к созданию цивилизованной среды, в которой взаимодействие с роботами будет приносить больше пользы.
Почему же роботы ВСЕГДА должны говорить о том, что они роботы?

Опасное цифровое наследство: какие угрозы таит реинкарнация утраченного номера

Level of difficultyEasy
Reading time7 min
Views18K

Когда-нибудь видели такое, что в социальных сетях ваша бывшая одноклассница Оля стала каким-то усатым Николаем? А в чужой групповой чат попадали по ошибке? Причем не просто какой-то спам, а реальный чат друзей, собирающихся на рыбалку или на день рождения? Может, получали сообщение в Telegram о новом пользователе с номером покойной бабушки Зины?

Что-то подобное может произойти после блокировки SIM-карты спустя определенный период бездействия (обычно от 60 до 365 дней в зависимости от оператора), когда номер вновь поступает в продажу.

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

Читать далее

Я тебя найду и позвоню

Level of difficultyEasy
Reading time6 min
Views178K

Абсолютно легальные инструменты за смешные деньги могут позволить вам: звонить всем активным клиентам ваших конкурентов, построить десяток эффективных мошеннических схем, или даже позвонить предполагаемому любовнику вашей девушки/жены, а заодно проверить где она была вчера вечером! Обнаружил я это в ходе одного из расследований утечек заявок клиентов. И я твердо уверен, что такого быть не должно. Инструмент использующийся в статье эффективнее всех утечек вместе взятых, нашими данными не должны так легко легально торговать практически в режиме онлайн. Можно найти любого и позвонить любому из нас. Почему и как это работает, какие риски это несет и как этому противодействовать?

Расскажу далее.

Running image viewer from Windows XP on modern Windows

Reading time2 min
Views24K
I have a directory with old images which I collected in the noughties. I move it with all my other files from one computer to another on every upgrade. Every now and then, when I feel a bit nostalgic, I open it and look through the pictures. There are a few GIF files with animation, and every time I notice that the default image viewer from Windows 7 does not support it. I remembered, that the image viewer from Windows XP was able to play GIF animation properly. So, I spent a bit of time to overcome a few obstacles and to run the old image viewer on modern Windows, a small launcher was created for this purpose. Now I can watch these old images in authentic interface of the old image viewer from Windows XP.


Download: shimgvw_xp32.7z (includes a binary and source code of the launcher, and the shimgvw.dll from English Windows XP SP3).

Read more →

Расширение функциональности готовых программ

Reading time11 min
Views43K
В мире ПО существует огромное количество программ, забытых своими разработчиками. Хорошо, когда уже есть хорошая альтернатива. А если ее нет? В программе может катастрофически не хватать каких-то мелочей, некоторые досадные ошибки могут годами доставлять массу неудобств пользователям, а на новых версиях ОС программа и вовсе может отказаться работать. Далеко не всегда имеются исходные коды, чтобы привести программу в порядок. Если программа простая — не составит труда за короткий срок создать альтернативу. Но если программа большая и сложная, что же делать в таком случае? Не всегда рационально тратить время и деньги на разработку полного аналога, ведь расширить в разумных рамках функциональность и исправить большинство ошибок можно уже в готовом исполняемом файле.
В этой статье будут продемонстрированы методики модификации исполняемых файлов на примере расширения функциональности легендарной игры Age of Empires II (стратегия реального времени).
Читать дальше →

Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте

Reading time4 min
Views83K
..., даже если проект не планируется развивать и вы не собираетесь делиться исходными кодами, потому что через 20 лет какой-нибудь маньяк будет изучать и дорабатывать машинный код вашего продукта, и он может захотеть вас найти.

Разработка Need For Speed III Modern Patch

Вообще я достаточно редко играю в компьютерные игры. Бывало, не играл по несколько лет подряд. Но иногда во мне просыпается маленький реверс-инженер, который мотивирует меня забраться в машинный код какой-нибудь любимой игрушки из прошлого. В последний год я занимался доработкой Need For Speed III: Hot Pursuit (1998 года). Это моя любимая игра в жанре, но теперь я, к своему сожалению, знаю о том, насколько отвратительно она написана. Большое количество маленьких багов в самых неожиданных местах — прямое следствие низкого качества кода.
Читать дальше →

Ошибки, которые я совершил, пытаясь быть «слишком правильным» в разработке

Level of difficultyEasy
Reading time5 min
Views28K

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

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

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

Читать далее

Катастрофическое падение производительности из-за hyperthreading

Reading time4 min
Views29K

Недавно я писал статью - что такое 50% cpu? На системах с hyperthreading 50% cpu по метрикам означает, что большая часть ресурсов сервера уже использована. То есть cpu>50% - это уже "желтая зона", и мы ожидаем замедление всего, чего можно. Но я никогда не думал до экспериментов, что падение может быть столь катастрофическим.

Для экспериментов я использую MSSQL. Если вы не связаны с базами, прочитайте первую часть по диагонали до выводов.

Читать далее

Высотный склад ЗИЛ: «Матрица» от советских инженеров и забытая хайтек-революция в логистике

Reading time5 min
Views15K

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

Читать далее

Как избавиться от храпа: реальная история из практики врача

Reading time4 min
Views17K

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

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

После подробного расспроса выяснилось...

Читать далее

Если вы встретите в космосе инопланетянина, убейте его

Level of difficultyEasy
Reading time7 min
Views6.7K

Если мы когда-нибудь вступим в контакт с инопланетянами, нам придётся найти способ понять их. Кто они такие? Каковы их намерения? Что они открыли такого, чего не открыли мы? Олаф Витковски считает, что единственный способ начать этот диалог — попытаться их убить.

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

Читать далее

А по ночам я веду беседы с лампочками

Level of difficultyEasy
Reading time3 min
Views4.2K

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

Читать далее

YYYY? yyyy!

Level of difficultyEasy
Reading time6 min
Views7.9K

Знаете ли вы, в чём разница между 'Y' и 'y' символами в паттерне даты в Java? В этой статье мы рассмотрим, как неправильное форматирование даты может привести к ошибке, а также расскажем вам про нашу новую диагностику V6122 для языка Java, которая убережёт вас от внезапных путешествий во времени.

Читать далее

Стабилизируем положение потенциометра, считанное с АЦП

Level of difficultyMedium
Reading time14 min
Views8.6K
Считать показания потенциометра для удобного аналогового управления системой, что может быть проще? Сеть завалена примерами работы с АЦП. Считали значение, вот мы и знаем положение… Но не всё так просто – эти значения всё время будут разными. Близкими, но разными. То есть, программа будет считать, что положение головки регулятора всё время дрожит.



В статье будет показано несколько методов борьбы с этими дрожаниями, начиная от самых простых (которые в подавляющем большинстве случаев достаточны), через более сложные и вплоть до алгоритма, придуманного специально для недавнего проекта. Наверняка, я уже 100500-й, кто такой алгоритм придумал, но после опроса знакомых, оказалось, что в списке тех, кто его собирается опубликовать, мой номер значительно меньше. Среди типовых он не находится. Возможно, кому-то он тоже окажется полезным.
Читать дальше →

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

Reading time10 min
Views222K

Если кратко, то производитель с продавцом обманули с каждой характеристикой, начиная от основного чипа, объемов ОЗУ, накопителя и заканчивая камерами, аккумулятором и экраном. Полный фейк в красивой упаковке.

Детали под катом.

Читать далее

Смартфон S24 Ultra – классический фейк, где все «железо» тоже ненастоящее

Reading time5 min
Views97K

Нет, это не копия Samsung S24. Тут ставка идет на внешние понты и обман абсолютно со всеми характеристиками. Специальные конфиги в системе и патчи делают так, что даже AIDA64 и CPU-Z показывают пользователю фейковые характеристики платформы и ее компонентов.

Продается это «чудо» под разными брендами, но чаще всего под лаконичным названием S24 Ultra. Производитель фейков имеет целый каталог платформ и корпусов, а конечному заказчику дается утилита, с помощью которой он уже сам может выставить нужный объем памяти, накопителя, разрешение экрана и прочее.

Читать далее

Как мы на новый электронный журнал переходили. Дневники внедряльщика

Reading time12 min
Views13K

За 10 дней до начала нового учебного года наша школа (под ненавязчивым давлением вышестоящих органов) начала экстренный переход на новую систему электронных журналов. Единую для всего региона, конечно же. Продвигаторы сего программного продукта клятвенно обещали на спешно организованных вебинарах, что новый софт будет «более лучшим», «пипец каким надёжным» и вообще позволит снять с учителей и завучей лишнюю нагрузку, поскольку вся нужная информация будет теперича автоматически попадать куда надо.

Ладно, где наша не пропадала. Качаем инструкции к новой ИС. Целых 6 штук на все случаи жизни (на самом деле — нет!). Грустим, глядя на непривычный интерфейс и смутно-знакомую логику построения ИС — разные точки входа в разные части единой (!) системы, периодическая синхронизация БД между этими модулями («Аверс Директор/Журнал», привет! Уж не ты ли это в новом обличии?). Эта логика самая по себе — тихий ужас для администрации школы. Дело в том, что у части модулей идентичный интерфейс, а на школу выдали один логин администратора. Часть функций по управлению школой выполняется в модуле «Мониторинг образования» (добавление учеников), часть — в модуле «Журнал» (например, указание почасовой нагрузки учителей), а часть — собственно в журнале (у него вообще отдельный адрес, и вход там через Госуслуги — свой для каждого учителя). При подготовке журнала к новому году приходится, во первых постоянно перелогиниваться в разных модулях (либо держать открытыми 2-3 браузера); во-вторых, периодически ждать той самой синхронизации БД. Т.е. я добавляю, например, нагрузку учителя в модуле «Журнал», но не могу тут же поставить ему урок в расписание , т. к. БД ещё не успела синхронизироваться (синхронизаций проходит каждые 10 минут; если повезёт, ждёшь недолго, если не повезёт — 10 минут на каждый чих).

Читать далее

Ввод дробных значений без смены раскладки

Reading time3 min
Views15K
Как часто вам приходится вводить в интерфейс какой-либо программы/web-сервиса дробные значения? Если часто, то, вероятно, вы сталкивались с неадекватным поведением таких полей. Я, например, довольно регулярно бьюсь лбом об абсолютно тупые формы. Хотите знать, почему ввод дробных значений может довести до белого каления, и что с этим делать? Добро пожаловать по кат.
Читать дальше →

Библиотека CUtils

Level of difficultyMedium
Reading time2 min
Views2.8K

Друзья! В данной статье мы бы хотели рассказать про кроссплатформенную коллекцию утилитных C++ компонентов CUtils.

CUtils — это довольно полезный инструмент при разработке кроссплатформенного программного обеспечения на языке программирования C++.

Читать далее

MoexBuilder: как я создаю библиотеку на Python. Часть 1

Reading time6 min
Views3.5K

Привет, Хабр! Это моя первая статья и в ней я хочу не только поделиться опытом, полученным в ходе реализации собственного проекта, но и услышать обратную связь\критику\предложения\замечания относительно принятых мною решений. Моя статья не предложит вам "подписаться на телегу" или что-то подобное, я просто расскажу о том, чего добился на текущий момент.

Читать далее

Information

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