Блог

Нестандартное использование компонентов

Очень часто, нам необходимо расширить какую-то возможность определенного компонента. Я уже не раз встречался с такой проблемой. Самым правильным способом будет создание нового компонента потомка, в котором нужно реализовать необходимые действия. Правильно, но не всегда эффективно. Сегодня мы научимся использовать компоненты не совсем так, как задумывал дядя Борман.

Заинтересовался? Читай полную версию статьи в разделе избранного: Нестандартное использование компонентов

Введение в DirectX

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

Универсальность – это хорошо, но производительность видео оставляла желать лучшего. Когда я впервые увидел игру Doom, то поразился, почему игра может создавать сложнейшие сцены на компьютере с 386-м процессором, а Windows не может? Конечно же, разрешение игры ниже, но и сцены трехмерного мира намного сложнее. Производительность GDI это черепаха по сравнению с прямым доступом к памяти. Основная проблема GDI кроется в том, что ни одно приложение не может получить прямой доступ к видеокарте и видео буферу, иначе очень сложно будет реализовать многооконную систему, да и универсальность добавляет ложку дегтя и возможности хорошего видео чипа используются не на все 100%.

Читать статью полностью: Введение в DirectX

Настройка прав доступа на базу данных

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

Почему-то под безопасностью базы данных подразумевается защита от вторжения извне, т.е. совершенное злостным хакером, напившимся бочкой пива :). Нет, такие взломы происходят слишком редко. Я работаю сейчас программистом в достаточно крупной конторе, и администратор вообще не задумывается о защите портов сервака, на котором открыто все, что угодно. На одном сервере крутится куча баз, программ и даже FTP сервер и за 5 лет его ни разу не взломали :). Благо я уломал этого админа установить WEB сервер на отдельное железо, а то если бы народ узнал IP адрес нашего главного сервера, то его любой ламер смог бы проскриптить. Ни база данных, ни Windows не патчились уже несколько лет.

Читать полный вариант статьи Разрешите войти или настройка прав доступа на базу данных

Избавься от MFC ради размера

Следующий способ уменьшить размер программы заключается в ответе на вопрос: "Из-за чего программа, созданная в Visual C++, получается большой? " Ответ очень прост, С++ является объектным языком. В нем каждый элемент выглядит как объект, который обладает своими свойствами, методами и событиями. Любой объект вполне автономен и многое умеет делать без ваших указаний. Это значит, что вам нужно только подключить его к своей форме, изменить нужным образом свойства, и приложение готово! И оно будет работать без какого-либо прописывания его деятельности.

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

Как обеспечить безопасность данных

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

Во время установки MS SQL Server 7.0 и младше имя администратора по умолчанию выбиралось sa (System Administrator). Пароль можно было не указывать, и система абсолютно без проблем хавала что угодно. В этом MS как всегда выделялась, хотя на каждом углу весят плакаты, что нельзя устанавливать пустые пароли, особенно админским учетным записям.

Начиная с MS SQL Server 2000, установщик уже предупреждает о возможных проблемах, если не указать пароль. Наконец-то кто-то увидел надпись на заборе, что нельзя выбирать простые пароли, а пустой пароль это вообще пробоина в безопасности, как дыра в корпусе Титаника. С такими паролями тонут в первые же дни плаванья.

Читать полный вариант статьи Падение черного ястреба или как обеспечить безопасность данных

User Account Control на страже системы

Наиболее сильно недооцененной и не понятой функцией в Windows Vista является User Account Control (UAC). А зря, это очень важная и полезная функция. Долгие годы пользователи были богами в своих системах и работали от имени учетной записи администратора. Так было в Windows 95, 98, ME и даже в 2000 и XP, когда все предупреждают, что это опасно для системы. В конкурирующих системах, например в ОС Linux, запрещено входить в графическую оболочку от имени администратора (root). Если необходимо выполнить действия от имени администратора, пользователь должен переключиться в консоли на учетную запись администратора, но запускать целую оболочку от администратора не нужно.

Компания Microsoft не стала вводить такой категорический запрет ради удобства пользователей и ради большого количества программ, которые могут потребовать выполнения привилегированных операций, но безопасность важнее, поэтому в Windows Vista для нашей защиты была внедрена User Account Control. Не советую ее отключать, ибо это реальная защита, и если какая-то программа не работает корректно с UAC, то это не Windows плохой, это программа не умеет работать в безопасном окружении и я бы не стал работать с такой программой ради собственной безопасности. Такое отношение есть в любой безопасной системе и теперь так есть и скорей всего будет в Windows.

Введение в язык программирования C

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

В этой статье я хотел бы дать вам базовые знания о программировании Win32 приложений на языке С/С++ в среде Visual Studio 2005. Описанный пример будет прекрасно работать и в более старых или новых версиях Visual Studio, но снимки окон, которые будут даны в статье сделаны именно в Visual Studio 2005.

Если у вас есть Visual Studio, то желательно запустить его, чтобы видеть результат собственными глазами. Итак, откройте проект CTest и посмотрите с правой стороны на панель Solution Explorer. Здесь расположено дерево, в котором по разделам разложено всё, что входит в проект. Моё дерево вы можете увидеть на рисунке выше, и у вас должно быть что-то подобное.

Ошибка в статье про будущее Delphi

Громадно извиняюсь за все, что написано про Delphi 64. Я даже не обратил внимание на дату поста на блоге, который комментирвал, и спасибо тому, что заметил мою лажу. Дело в том, что отрывок про Delphi 64 был написан на основе заметки с чужого блога, а эта заметка была опубликована 1-го апреля. Я не знаю, шутка это или нет, но я на всякий случай убрал из статьи отрывок по Delphi 64. Еще раз извиняюсь. Впредь постараюсь быть внимательнее. Давно я так не попадался на первоапрельские шутки.

Новая статья: Windows Presentation Foundation (WPF)

Графическая система Windows долгое время основывалась на простейших возможностях GDI, которая плохо использует возможности оборудования и ограничивалась простыми функциями рисования. Из-за этих скудных возможностей и элементы управления были серыми, не в смысле цвета, а просто по жизни. Если использовать только стандартные возможности, то интерфейс получается скучным, а для чего-то более серьезного приходиться разрабатывать элементы управления самостоятельно. Исправить положение дел должен WPF (Windows Presentation Foundation), ранее известный как Avalon.

WPF (Windows Presentation Foundation) - это графическая подсистема нового поколения, которая появилась в составе .NET Framework и основана на XAML. Не смотря на то, что .NET создавалась независимой от платформы и должна бы работать на любой системе, WPF скорей всего не сможет жить в любой среде. Может, мы ошибаемся, но слишком сильно прослеживается связь с Windows и DirectX. Уже сейчас есть ограничения на используемую версию ОС Windows - Минимальным требованием является Windows XP SP2. В Windows XP и Windows 2003 требуется отдельная установка, в то время как в Windows Vista данная подсистема уже предоставлена.

Новая графическая система Windows Presentation Foundation позиционируется для создания пользовательских интерфейсов, 2D и 3D графики и т. д. Мощь WPF заключается в том, что 2D графика строится в векторном виде, а это значит, что интерфейсы будут максимально независимы от разрешения экрана и размера окна. Они будут легко масштабироваться без потери качества и быстро работать благодаря максимальному использованию возможностей современных графических ускорителей.

Планирование дискового пространства для баз данных

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

Задумываетесь ли вы о чем-то, когда создаете новую базу данных? Я думаю, что большинство скажет, что нет (если будет отвечать честно), потому что все мы используем параметры по умолчанию, а ведь они далеки от оптимальных. Одних только дисковых настроек целое море, а ведь они реально позволяют повысить надежность и производительность системы. Нет, мы не будем говорить, что для надежности данных в файловой системе нужно использовать NTFS, хотя имена эта файловая система позволяет MS SQL Server использовать диск максимально эффективно. Нас ждет более интересный и конкретный разговор.

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

Читать статью полностью Планирование дискового пространства для баз данных

О блоге

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

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне