Search
Write a publication
Pull to refresh
78
0
Роман @RomeoGolf

инженер-программист

Send message

Земля круглая, вода мокрая, JPEG шакалит, небо голубое… Или нет?

Reading time11 min
Views16K

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

Читать далее

Xonotic: свободный и бесплатный шутер

Reading time6 min
Views9.5K

Многие из нас, наверное, помнят времена когда мы просиживали долгие часы в компьютерных клубах, играя в Quake III и Unreal Tournament. Эпоха расцвета аренных шутеров пришлась на конец девяностых и начало нулевых годов. Сейчас этот жанр стал не таким популярным и даже во многом нишевым. Например, почасовая активность игроков в Call of Duty: Modern Warfare II превосходит активность игроков в Quake Champions в несколько сотен раз. Несмотря на то, что игры в жанре аренных шутеров от первого лица продолжают выходить, они остаются в тени «реалистичных» шутеров, «королевских битв» и других.

Сегодня я хотел бы рассказать об одной игре, которая не только является незаслуженно обделённой вниманием, но и представляет собой полностью бесплатную и open-source (GNU GPL) игру. Её название — Xonotic. По версии портала Slant игра находится на первом месте в рейтинге аренных шутеров за которой, на втором месте, следует Quake Live. В Xonotic можно играть на GNU/Linux, Mac и Windows.

_____________

Аренда виртуального сервера VPS/VDSв России

Читать далее

Анализируем трояны в популярных SSH-клиентах

Reading time12 min
Views12K

Весной 2022 года северокорейская хакерская группировка Lazarus начала распространение троянизированных SSH клиентов с открытым исходным кодом для создания бэкдоров в сферах развлечения, обороны и медицины. Жертвами первой волны этой атаки стали инженеры и специалисты технической поддержки, работающие в IT-компаниях Великобритании, Индии, России и США. 

Согласно отчету Microsoft, пострадало около 20 тысяч простых работяг. 

Также существуют сведения об атаках, связанных конкретно с клиентом Putty. Распространение проходило через почтовый сервис. Жертва получала письмо с содержанием о вакансии в Amazon и ISO-файлом, в котором была зараженная версия программы и текстовый документ с данными для входа. В подобном векторе атак засветился дроппер DaveShell, речь о котором пойдет немного позже. 

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

Читать далее

Ternaus: Telegram Bot

Reading time4 min
Views7.2K

Короткая версия:

Сделал Telegram бота - https://t.me/ternausbot

Вводишь текст или загружаешь картинку - получаешь 10 похожих.

Картинки из базы данных с Ternaus.com - 8.5 миллионов картинок, сгенерированных Stable Diffusion.

Код бота на python под катом.

Читать далее

«Умные» телевизоры LG шпионят за пользователями

Reading time4 min
Views262K
Всё началось с того, что я обратил внимание на рекламу, которую показывает мой новый SmartTV от LG. После небольшого расследования, я наткнулся на видео для корпоративных заказчиков, рассказывающее о рекламных возможностях LG. Видео достаточно длинное, суть заключается в том, что LG Smart Ad собирает информацию о любимых программах пользователя, его поведении в сети, включая сбор ключевых слов, используемых при поиске, и прочую информацию о личных пристрастиях. Все это используется для показа таргетированной рекламы.

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

Как смотреть «Ютубчик» на старых телевизорах без рекламы, управляя «родным» ИК пультом ДУ

Reading time7 min
Views39K
В далеком 2014 в разгаре появления Smart телевизоров я, как и большинство наивных обывателей, поддался маркетинговой уловке, и казалось бы вполне практической идеи объединить функции компьютера и телевизора в одном флаконе.
Читать дальше →

Советы по правильной настройке телевизора

Reading time6 min
Views917K
Для начала, что есть «правильная настройка». Если вы хотя бы раз были в магазине электроники, то наверняка замечали, что все выставленные телевизоры показывают по-разному. С чем это связано? Какой из них лучше? Давайте разберемся.

Я думаю, вы согласитесь, что телевизор должен не просто показывать какую-то картинку, но и вносить как можно меньше искажений в исходный контент. Сам контент всегда создается с оглядкой на стандарты и рекомендации индустрии, и главная цель любого телевизора — донести до вас именно то изображение, которое вам хотели показать. Тут важно всё: и оттенок кожи у актера, и цвет неба на закате, и какие детали изображения должны быть видны, а какие спрятаны. Существуют международные стандарты, описывающие каким должно быть изображение на экране вашего телевизора. Все вы, наверняка, встречали аббревиатуры PAL, NTSC, или HDTV, вот за этими буквами и скрываются свойства видеосигнала и различные параметры изображения. С приходом HDTV в нашу жизнь, большая часть стандартов сразу же устарела, и, фактически, наиболее актуальным сейчас является стандарт REC709, который используется в телевидении высокой четкости (HD) и в Blu-Ray видео.
Читать дальше →

Телевизоры. Часть 3. 3D. Типы, различия, источники воспроизведения и контент. Мой выбор телевизора

Reading time14 min
Views528K
Снова здравствуйте.
Это третья, заключительная, самая большая и по моему мнению самая интересная часть моего небольшого повествования о современных телевизорах. В первой части вы могли прочитать общую информацию о типах современных телевизоров, используемых технологиях подсветок, их практическом различии. Во второй части я попытался систематизировать все, что я узнал о шасси, диагоналях, передаче движения, особенностях передачи цвета и влиянии телевизоров на зрение.

В третей части я хочу поделиться с вами своими размышлениями касательно стереоизображения (или как его принято называть — 3D), разобраться в основных отличиях активного и пассивного 3D, их технической реализации. Рассказать, как, какие и главное — чем это 3D воспроизводить. Ну и, собственно, какой телевизор я выбрал и почему. А еще тут будут фотографии
Читать дальше →

Телевизоры. Часть 2. Плазма или ЖК, шасси, диагональ, передача движения, цвет, влияние на зрение

Reading time9 min
Views324K
Снова здравствуйте, дорогие хабрачеловеки.

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

Можем продолжить. Во второй части я хотел бы поделиться своими размышлениями о выборе диагонали телевизора для различных применений, выборе технологии, а так же о том, как кадровая интерполяция влияет на плавность движения и попытаться развенчать некоторые мифы касательно современных телевизоров. Также, хочу затронуть тему влияния различных параметров телевизора на зрение.
Читать дальше →

Телевизоры. Часть 1. Типы телевизоров, подсветок и технологий, практические различия

Reading time7 min
Views567K
Здравствуйте, уважаемое хабрасообщество.

Я надеюсь, что эта статья сможет помочь таким же, как я — тем людям, которые выбирают телевизор, но не очень-то владеют тонкими техническими вопросами в этой области. Хотел бы поделиться с вами своими размышлениями и практическими выводами по-поводу выбора большого и качественного телевизора.
Читать дальше →

Ввод-вывод — уже не узкое место

Reading time3 min
Views13K

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

Один из моих уточняющих вопросов такой: «Что является узким местом производительности вашей программы?» Многие отвечают что-то типа «считывание из входящего файла».

На самом деле, написать эту статью меня вдохновил ответ на чей-то вопрос в Gopher Slack: «Я заметил, что много дополнительной работы приходится на разделение строки и тому подобное, но обычно всё это намного быстрее ввода-вывода, поэтому нас это не волнует».

Я не стал спорить… и пока не проанализировал производительность задачи с подсчётом слов, думал так же. Ведь всех нас этому учили, правда? «Ввод-вывод — это медленно».

Но это больше не так! Дисковый ввод-вывод мог быть медленным 10-20 лет назад, но 2022 году последовательное считывание файла с диска выполняется очень быстро.
Читать дальше →

Это база: как я превращаю копилку личного опыта в социальные технологии, которые работают

Reading time5 min
Views6.9K

Рефлексия по поводу собирательства знаний + подборки такого собирательства в Notion. В комплекте - несколько лайфхаков, скриншотов, ну и само содержание: собранные за многие месяцы базы знаний.

Посмотреть и потрогать:

Big O нотация в Swift (часть 2 — Сокращение)

Reading time3 min
Views3K

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

Читать далее

Big O нотация в Swift

Reading time3 min
Views14K

Данная статья поможет начинающим iOS разработчикам разобраться в производительности алгоритмов в Swift.

Обозначение Big O нотация (или просто Big O) — это способ оценки относительной производительности структуры данных или алгоритма, обычно по двум осям: времени и пространству.

Читать далее

Статья о том, как «Не надо искать работу за границей»

Reading time6 min
Views51K

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

Читать далее

Пишем на С++ вектор, умеющий расширяться без копирования элементов

Reading time9 min
Views25K

В языке С есть функции malloc, free и realloc. При использовании последней вы можете написать этакий расширяющийся массив из примитивных типов или структур (классов-то нет), который, можно надеяться, не будет копировать все данные при каждом расширении. В С++ есть встроенный класс vector, который представляет из себя расщиряющийся массив, но он так не умеет: при каждом расширении вектора выделяется новый участок памяти и все элементы перемещаются на него (по возможности, с использованием move-семантики). Но ведь, если можно каждый раз не копировать все старые элементы на новое место, вектор должен работать быстрее? В этой статье я попробую написать вектор, который умеет расширяться без копирования элементов.

Код приведён здесь.

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

Читать далее

Создаём сложные интерфейсы и спецэффекты на базе Qt. Часть II

Reading time25 min
Views20K

Привет, Хабр! Меня зовут Михаил Полукаров, я занимаюсь разработкой desktop-версии в команде VK Teams. В первой части я рассказывал о том, как использовать маски и создавать сложные многослойные окна. Под катом этой статьи мы продолжим исследовать возможности Qt Framework, рассмотрим полупрозрачность и управление буксировкой окна, а также реализуем интересный спецэффект. В конце статьи рассмотрим, как можно применить на практике весь, изложенный в этом цикле статей, материал для создания современного демонстрационного приложения.

Читать далее

Пишем try-catch в C не привлекая внимания санитаров

Reading time4 min
Views19K

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

Читать далее

Двухсторонние очереди в Python: как альтернатива спискам повышает производительность

Reading time4 min
Views17K


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

В некоторых приложениях необходима обработка данных по методу FIFO (first-in, first-out). Он подразумевает, что элементы, добавленные в последовательность первыми (first-in), будут первыми из неë удалены (first-out). Эту задачу можно решить и с помощью объекта «список», и с помощью двухсторонних очередей. Но для этой цели двухсторонние очереди удобнее списков благодаря особенностям их реализации. 
Читать дальше →

Как работать с процессами и потоками в Python

Reading time16 min
Views120K

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

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

Читать далее

Information

Rating
3,784-th
Location
Свердловская обл., Россия
Date of birth
Registered
Activity