Pull to refresh
0
0

User

Send message

Моддер выжал из Skyrim дополнительные 40% производительности

Reading time1 min
Views3.3K
В треде форума он рассказывает, что Бетезда, по ходу, не использует оптимизирующий компилятор.

Его оптимизации достаточно просты и покрывают примерно 1% от всего кода движка. В основном это ручной инлайнинг геттеров, переписывание некоторых кусков кода с x87 на SSE2. Были пропатчены только три крупные функции. Моддер утверждает, что если бы Бетезда использовала оптимизирующий компилятор и другую библиотеку для мат. вычислений прирост в скорости составил бы 100%.

Сам мод можно скачать здесь: forums.bethsoft.com/topic/1321575-rel-tesv-acceleration-layer

Тред с комментариями здесь: forums.bethsoft.com/topic/1321675-how-can-skyrim-be-so-unoptimized-modders-do-better-job-than-bethesda

Обещают 20-30% прирост FPS в таких местах как Маркат и Уайтран (крупные города).

Деперсонализация базы MySQL. Интересная техника

Reading time3 min
Views5.3K
image

В компании, где я работаю, мы используем деперсонализированную базу с Production-a. Ее суммарный объем на данный момент около 30 ГБ. Обфускация ruby скриптом занимала около 6 часов. Ускорение обработки можно добиться, если переписать это все в хранимую процедуру (stored procedure). Но у нас в проекте они запрещены… Увы и ах.

Тогда я задался вопросом: можно ли ускорить процесс по максимуму, деперсонализировать всю базу (или хотя бы полностью одну таблицу) используя только один оператор update? Проблема в том, что некоторые поля д.б. уникальными, а некоторые случайными значениями из списка.

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

Компилируем 64-битную версию Qt под windows

Reading time3 min
Views24K
logoЗа последние годы кросс-платформенная библиотека Qt получила не только многочисленные улучшения, но также собственную среду разработки QtCreator и удобные инсталляторы под все операционные системы. Теперь для разработки не нужно самому устанавливать необходимое окружение, прописывать пути, интегрировать библиотеку в ide — достаточно запустить инсталлятор и все будет работать «из коробки». К сожалению, версия для windows имеет инсталлятор только для 32-битной сборки библиотеки и ide. А иногда возникает необходимость сделать именно 64-битное приложение — чаще всего это связано с необходимостью использовать чужие 64-битные компоненты: подгружаемые библиотеки, inproc com компоненты и прочие странные штуки. Под катом содержится подробная инструкция как скомпилировать Qt и QtCreator из исходников для 64-битной архитектуры.

Карта обхода подводных камней

Импортируем модели из Source 2009 в Photoshop Extended

Reading time4 min
Views4K
На движке Source, который за свою историю обновлялся бесчисленное количество раз, компания Valve разработала множество чудеснейших игр, в числе которых Team Fortress 2, Left 4 Dead и Portal. Не первый год пользуясь версиями Photoshop CS4-CS5 Extended, о возможности работы с 3D объектами в этих версиях я узнал только совсем недавно. Разумеется, руки зачесались и хотелось срочно опробовать эту диковинную технологию, но делать алюминиевые банки и абстракции с использованием базовых примитивов мне совсем не хотелось. Мне хотелось получить возможность творить фан-арт с использованием непосредственно моделей из игр. Об этом чудесном геморроидальном квесте я расскажу под катом.
Читать дальше →

Что может Ctrl в Visual Studio

Reading time2 min
Views234K
Одна простая клавиша Ctrl может значительно упростить работу в Visual Studio. Помимо типичных комбинаций, которые нам очень хорошо знакомы, существует также и большое количество других, менее известных, но от этого и более ценных.

Далее список того, что можно делать с клавишей Ctrl.

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

Приведение типов

Reading time4 min
Views211K
Будучи на конференции Qt Developer Days 2010 я узнал, что одним из самых популярных вопросов на собеседовании в разные зарубежные компании, работающие с Qt библиотекой, является вопрос о различиях в способах приведения типов в C++. Поэтому здесь я рассмотрю основные различия между static_cast, dynamic_cast, const_cast, reinterpret_cast, C-style cast, qobject_cast и qvariant_cast

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

Обзор ORM для Qt

Reading time16 min
Views18K

Введение



Добрый день, уважаемые коллеги-программисты!

Вот уже год в мире Qt происходят очень интересные события. Здесь вам и недавний выпуск версии 4.7, и концепция QML, и значительная интеграция библиотеки в мобильные платформы. В Qt водятся самые правильные тролли; мне нравится то, что они делают, и куда развивается эта библиотека. Готов даже поспорить, что она – лучшая в своем классе, но те, кто пишут на Qt, и так это знают.

Есть кое-что ещё, изменившееся за годовой период. Для Qt стали появляться ORM-библиотеки, одна за другой, как грибы. Свято место пусто не бывает? Спрос есть, вот вам и предложение. О том, что происходит в мире Qt ORM, читайте в этой статье. Я постараюсь дать максимум информации по использованию и механизмам, применяемым в обозреваемых библиотеках; но ни одна из них не может быть освящена полностью по причине, что любая ORM – весьма сложный комплекс из программистских решений.

(Замечу сразу, что статья в некоторой степени рекламная, поскольку появилась она из-за моей собственной ORM; однако, справедливости ради, я не только пиарю себя, но и даю общую оценку того, что сейчас есть по теме. Прошу отнестись с пониманием: намерения самые благие).

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

Версионная миграция структуры базы данных: основные подходы

Reading time15 min
Views139K
Проблемы контроля версий баз данных и миграций между версиями уже не раз поднимались как на Хабре (1, 2, 3 и др.), так и в Интернете (преимущественно, англоязычном).

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

Взлом матановой капчи на C# — это просто!

Reading time4 min
Views42K
В этом топике я хочу вам рассказать о взломе т.н. «матан-капчи», пример которой был представлен в недавнем топике Матановая капча на PHP — это просто!.
Прочитав статью автора об этой замечательной капче, мне захотелось написать программу для её распознавания, как говорится just for fun ;)
Читать дальше →

Очнитесь, на дворе XXI век

Reading time5 min
Views32K


Начать статью я хотел бы с констатации того факта, что прямо за окном находится 2011 год (пруфлинк), середина апреля. Напоминаю я это в первую очередь себе, поскольку меня периодически посещают в этом сомнения. Дело в том, что как по работе, так и ради хобби я часто читаю код на С++, написанный лет 10-20 назад (но поддерживаемый и поныне) или код написанный совсем недавно, но людьми, которые учились программировать на С++ те же 20 лет назад. И вот после этого у меня и возникает ощущение, что никакого прогресса за эти годы не было, ничего не менялось и не развивалось, а по Земле до сих пор бродят мамонты.
Читать дальше →

Новый алгоритм для депикселизации графики

Reading time1 min
Views8.9K


Сотрудник Microsoft Research Йоханнес Копф (Johannes Kopf) совместно с профессором Дани Лисчински опубликовали научную работу (dropbox, narod.ru, depositfiles.com) с описанием нового алгоритма депикселизации, который значительно превосходит все существующие методы. Разница в качестве действительно колоссальна.
Читать дальше →

Популярные вопросы на собеседовании по C++ и ответы на них

Reading time9 min
Views352K
Здравствуйте!

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

О том, что спрашивают на собеседовании у C++ программистов, а также об ответах на эти вопросы и пойдет речь в данном посте.
Читать дальше →

Рисуем виджеты в заголовке окна

Reading time3 min
Views12K
Ни для кого не секрет, сегодня у населения в основном преобладают широкоформатные мониторы и они вынуждены экономить количество пикселей по вертикали. Это породило моду на рисование элементов управления прямо в заголовке окна. Сейчас этим уже никого не удивишь, но, тем не менее, нигде ещё не находил решения этой проблемы на Qt, поэтому сейчас мы будем это исправлять:

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

Автоматизация OpenOffice: Окончание

Reading time6 min
Views5.2K
Продолжение первой части статьи.

OpenOffice Win C++

2. Повторное использование DLL в своей программе


Возможности:
  • открытие XLS файла,
  • открытие файлов OpenOffice
  • возможность открытия в скрытом режиме
  • чтение данных из электронной таблицы
  • полный спектр манипуляции с данными: вставка текста, числа, форматирование, объединение ячеек, установка границ, установка ширина столбца
  • выгрузка xls таблицы на диск
  • возмоность работы под WINE, при условий установки OpenOffice под Wine
  • использование формул
  • генерация версионно зависимого RDB файла налету (при необходимости)

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

Автоматизация OpenOffice: Начало

Reading time14 min
Views22K
По работе мне необходимо было разработать механизм загрузки и выгрузки данных из Excel используя свободные механизмы работающие под разными ОС.
Т.к. необходимо было, чтобы сервис работал под Linux, то механизм взаимодействия через OLE не подходил.
Для реализации был выбран OpenOffice с прямым доступом к API через C++.

Open Office api на Linux

Документация оказалась весьма скудная, а примеров работы не через OLE почти не было. Так что я решил объединить все мои исследования в одной статье на хабре.

Примерный план статьи:
1. Начало работы с API OpenOffice через C++
  1.1. Генерация заголовочных файлов
  1.2. Генерация файла типов RDB
  1.3. Настройка Visual Studiо 2008
  1.4. Собираем динамическую DLL
2. Повторное использование DLL в своей программе
  2.1. Пример небольшой программы по выгрузке данных

В принципе, если возможностей DLL достаточно, то повторять действия п. 1 не обязательно.

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

Горячие клавиши в шелле

Reading time3 min
Views114K
Посвящается B_dot, пост которого заставил заинтересоваться возможностями консоли плотнее.
cat /dev/cheat-sheet >> /dev/head

Краткое вступление


В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в bash'e. Сочетания клавиш я дополнительно проверял на циске (Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9_WAN-M), Version 12.2(33)SXH4), csh и zsh. Рассмотренное в других записях повторять особо не буду. Сочетания сгруппированы по использованной функциональной клавише.
Особенно полезен этот текст будет людям, которые любят использовать клавиши Home, End и Delete (которые в цисковой консоли «не работают»).
Читать дальше →
12 ...
7

Information

Rating
Does not participate
Location
Австралия
Registered
Activity