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

C#, C++, Lua

Send message

Taigram: универсальная клавиатура и исключения

Reading time17 min
Views1.1K

Продолжаем рассказывать о разработке нашего Open Source проекта Taigram.

Taigram - это Open Source Self-Hosted решение по отправке уведомлений о событиях из менеджера управления проектами Taiga в Telegram.

Читать далее

slots в Python

Level of difficultyEasy
Reading time4 min
Views5.9K

Привет, Хабр!

Сегодня мы познакомимся с механизмом slots в Python, который способен значительно оптимизировать использование памяти. Этот инструмент особенно полезен в системах, где необходимо создать миллионы объектов, позволяя избежать утечек памяти и тормозов. Каждый экземпляр класса по умолчанию хранит свои атрибуты в словаре, что предоставляет гибкость, но также увеличивает расход памяти.

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

Читать далее

Как я писал проводник для Wear OS и что из этого вышло

Level of difficultyMedium
Reading time3 min
Views1.4K

Как я писал проводник для Wear OS и что из этого вышло

О чём тут пойдёт речь:

- Почему я решил этим заняться
- Как я разрабатывал приложение (в общих чертах)
- Обманчивые гайдлайны Google и о том, как я пытался победить банальные (на первый взгляд) проблемы

Читать далее

Сохранится всё: как возник Internet Archive и какова его дальнейшая судьба

Level of difficultyEasy
Reading time2 min
Views3.2K

Internet Archive или Архив интернета занимается поиском и хранением накопленной информации: будь то книги, видео или программное обеспечение. В 2024 году сервис подвергся хакерской атаке, что привело к утечке данных 31 млн пользователей. Также на организацию неоднократно подавали в суд из-за нарушений в сфере интеллектуальной собственности. Рассказываем в нашей статье историю взлетов и падений Архива.

Читать далее

Game++. Heap? Less

Level of difficultyEasy
Reading time30 min
Views5K

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

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

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

Попробую убедить вас не использовать std::string/vector в функциях. При написании кода для пк, неважно - игры это или что-то другое, программа обычно разделяется на условно пять областей памяти.

Burn them all

Зарядка по-новому: чем хороши натрий-ионные пауэрбанки

Reading time4 min
Views14K

В Японии начались продажи первых в мире внешних аккумуляторов на основе натрий-ионной технологии. Устройство представила компания Elecom. Производитель заявляет, что новинка отличается повышенной безопасностью, долговечностью и меньшим воздействием на окружающую среду по сравнению с традиционными Li-ion-аналогами. Звучит хорошо, но давайте разберемся, что же там выпустили японцы. Чем хороша новая технология и какие есть перспективы?

Читать далее

Сейчас как заавтоматизирую

Reading time3 min
Views18K

Итак, Вам надоело набирать пароли, писать команды, смотреть на скучные обои? А хочется завоевать вселенную и почивать на лаврах? Заставьте роботов трудиться вместо cебя!
Читать дальше →

Пять вещей, которые не стоит рассказывать ChatGPT

Level of difficultyEasy
Reading time3 min
Views150K

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

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

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

Читать далее

Как решить проблему конфликта приложений

Reading time5 min
Views19K

Как установить две версии приложения на одном компьютере? Как решить проблему конфликта приложений? Как сделать приложение более безопасным для системы?
Как?
Читать дальше →

В чём смысл?

Reading time2 min
Views13K
	SomeFunction()
	{
	    ...
	    if (false)
	    {
	        ...
	    }
	    ...
	}
	

Зачем может быть нужен блок if (false)?

Предположим, что:
  1. Это не ошибка и не забывчивость.
  2. if и false — это именно оператор условия и логическая ложь, а не какие-то хитрости с макросами\строками и т.д.

Пару вариантов ответа под катом. Желающие высказать свои идеи приглашаются мимо отгадки сразу в комментарии.
Читать дальше →

Особенности подготовки инсталляции приложения для автоматической (unattended) установки в Windows OS

Reading time7 min
Views16K
image
Перед системным администратором порой стоит задача установить или обновить приложения на множестве ПК. И часто проблема состоит не в выборе средства доставки и автоматической установки — их есть множество на любой вкус, от встроенных в Windows OS (Active Directory) до полноценных Configuration Management систем, таких как MS SCCM, Enteo NetInstall, LanDesk Management Suite, HP Application Deployment Manager, IBM Tivoli Provisioning Manager, ManageEngine Desktop Central и много других…
Читать дальше →

Windows Installer: то, что вендор прописал

Reading time6 min
Views33K
Продолжая тему работы с Windows Installer, сегодня предлагаю поговорить о готовых инсталляторах, предоставляемых производителями ПО – для их обозначения широко применяется термин «vendor MSI».

Как вы помните из прошлой статьи, Windows Installer является промышленным стандартом установочных файлов и используется в большинстве систем развертывания приложений. Vendor MSI очень удобны для системных администраторов, занимающихся развертыванием ПО в корпоративных сетях. Казалось бы, достаточно взять из документации установочные параметры, использовать их в командной строке или трансформе – и дело сделано. Всё ли так просто?

Предлагаю заглянуть внутрь нескольких vendor MSI и разобраться с их устройством.
Читать дальше →

С чего начать изучение Windows Installer?

Reading time7 min
Views55K
Installer pic Технология Windows Installer (MSI) является стандартом де-факто в мире системных администраторов, занимающихся распространением и поддержкой программного обеспечения для десктопных и серверных версий Windows. Формат MSI поддерживается всеми крупнейшими системами управления конфигурациями (Microsoft SCCM, CA Unicenter и многими другими), а для некоторых систем распространения ПО — является единственным поддерживаемым форматом.
Мой опыт работы с этой технологией — как теоретический, так и практический — приобретен за время работы в компании «Инфопульс Украина» и связан с созданием MSI-пакетов и подготовкой готовых MSI-пакетов к автоматической установке в корпоративной среде.
Читать дальше →

Хуки — это просто

Reading time7 min
Views140K


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

Photoshop CS6 и естественные надобности

Reading time8 min
Views58K
logoВсем привет.
Начитавшись и насмотревшись роликов и прочих промо-материалов для Photoshop CS6, ощутила недосказанность и решила потестировать самостоятельно.
Поскольку я не понимаю смысла создания специально подогнанных примеров для демонстрации новых возможностей, то и тестировать мы их будем на ежедневных потребностях, а именно:

1) Фотоманипуляции
2) Работа с интерфейсом (сайт и мобильное приложение)
3) Типографика
4) Создание иллюстраций и векторные фишки
UPD 1: Небольшое тестирование производительности и стабильности.

Итак, поехали.
Читать дальше →

Эмулятор Bluestacks + Eclipse: ускоряем отладку и тестирование Android-приложений

Reading time3 min
Views99K
Об эмуляторе Android под названием Bluestacks на Хабре уже писали. Но писали или в общем, или мало, или сухо. Тем временем проект подрос и ныне вполне пригоден для использования при тестировании и отладке приложений под Android. Зачем это делать? А затем, что Bluestacks работает намного, нет, даже намного-намного быстрее стандартного эмулятора из Android SDK. Под катом я расскажу о нюансах использования Bluestacks, настройке отладки из-под Eclipse, приведу пару замеров скорости работы и расскажу о нескольких ложках дёгтя в бочке мёда.
Читать дальше →

Автоматизированная установка ОС на примере Windows Embedded x64

Reading time7 min
Views80K

Пошаговая инструкция с примерами


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

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

Поэтому, ответы на эти вопросы здесь найдут те, кто выполняют такую задачу впервые.
Читать дальше →

Пример принципа DRY в Windows Phone 7

Reading time10 min
Views6.5K

Я идеалист.


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

Но, отойдем немного от философии к практике. Разрабатывая приложения, я всегда стремился к идеалу, стремился следовать актуальным концепциям. По ходу разработки я всегда старался следовать принципу DRY. Некоторое время назад я начал заниматься разработкой под Windows Phone. В результате появились «обертки» для операций, которые используются чаще всего. Некоторыми из них хочу поделиться.
Читать дальше →

Стивен Кинг «Как писать программный код»

Reading time6 min
Views51K
«Что? Стивен Кинг „Как писать программный код“ ?! Нет такой книги! Да он вообще не программист ни разу!».
Да, так и есть. Тем не менее — книга с таким содержанием у него есть. Хотя он и не думал, что пишет её об этом. Хотя в результате написал. Хотя, наверное, и не знает об этом. О чём же я тут рассуждаю? О недавно прочитанной мною прекрасной книге «Как писать книги» (англ. — «On Writing»).

Кинг писал её как опытный писатель для писателей начинающих. Однако в результате у него получилась книга, рассказывающая не только как писать именно фантастическую литературу, но и том как писать вообще что угодно — в том числе и программный код. Прочитав за последние пару лет два десятка основных книг-икон современной программной индустрии (ну знаете, все эти «рефакторинги», «паттерны», «чистые и совершенные коды» и т.д.) я могу утверждать, что этой книге Кинга вполне себе место среди них, причём не на последнем месте. Дальше будет пару примеров (и как результат — спойлеров), поэтому самым правильным будет не продолжать читать статью, а пойти и прочитать саму книгу. Потом можете вернуться и сравнить свои выводы с моими. Ну а если времени на книгу у вас нет — под катом выдержки и выводы.
Читать дальше →

Ремонтируем онлайн-банкинг

Reading time3 min
Views12K

На днях у меня перестал работать онлайн-банкинг моего банка. Нет, не то чтобы совсем перестал — вроде бы можно зайти и даже кое-что сделать, но вот одна из самых важных вещей (просмотр архива платежей) — просто намертво отказалась работать (а как раз было очень нужно). Выглядит это так: при открытии страницы со списком платежей браузер съедает всю доступную оперативную память и падает. В Chrome падает только текущая вкладка, а вот Firefox и IE умирают совсем. Баг воспроизводится на трёх разных PC, айпаде, в Safari под Mac OS и в Firefox под Linux. Ну это я просто так рассказываю, для того чтобы показать наивность советов техподдержки «поставить антивирус» и «перезагрузиться и зайти ещё раз». Давайте подумаем — можем ли мы что-нибудь в этой ситуации сделать?
Читать дальше →

Information

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