Главная » Статьи для тега "поэтому"

Растеризация векторных изображений Free Pascal

Добавлено Дата: 24 June, 2014 категория: Free Pascal

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

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

Читать »

Обработка исключений в С#

Добавлено Дата: 28 February, 2014 категория: C#

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

Читать »

Жизненный цикл приложения Windows Runtime

Добавлено Дата: 4 December, 2012 категория: C#, Windows Runtime, XAML, Разработка для Windows 8

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

ПосколькувсеприложенияMetroориентируютпользователянаработусконтентом, то  нет  необходимости  держать  приложение  в  памяти,  когда  пользователь начал работу с другим приложением. С другой стороны, пользователь может в любой момент попытаться вернуться в приложение, поэтому производить его запуск с нуля тоже плохо. В связи c этим Windows 8 приостанавливает работу приложения всякий раз, когда пользователь переключается на какое-то другое занятие, и держит это приложение в памяти, пока есть возможность. Как только пользователь возвращается в приложение, Windows 8 может либо активировать существующий в памяти экземпляр, либо же, если приложение было удалено, вызвать его снова. Именно поэтому у разработчика возникает ряд задач.

Читать »

ОБОБЩЕНИЕ РЕЛЯЦИОННЫХ ОПЕРАТОРОВ

Добавлено Дата: 8 September, 2012 категория: SQL, Базы данных

В предыдущем разделе была приведена следующая формулировка запросав.

PACK

( ( UNPACK S_DURING { S#, DURING } ON DURING ) MINUS

( UNPACK SP_DURING { S#, DURING } ON

DURING ) ) ON DURING

Теперь необходимо отметить, что, как оказалось, выражения, подобные этому (включающие целый ряд распаковок, за которыми следует обычная  реляционная операция, затем снова распаковка), так часто требуются на практике, что приобрела большую значимость идея определения сокращения для этих  выражений (здесь речь идет о дальнейшем сокращении, поскольку, как  следует из приведенного выше описания, сами эти выражения уже по сути  являются сокращениями!). Безусловно, благодаря такому сокращению выражения должны стать намного короче. Более того, применение сокращенной  формы  записи  открывает  возможность  повышения  производительности  следующим образом: если в выражении применяются длинные интервалы с большой степенью детализации, то выходные данные операции распаковки могут стать гораздо более объемными по сравнению с входными, а если бы системе действительно пришлось материализовать результат такой распаковки, то могло бы оказаться,  что запрос "выполняется бесконечно долго" или требует слишком большого объема памяти. В отличие от этого, если все требования к обработке данных выражены в виде одной операции, то оптимизатор получает возможность выбрать наиболее эффективную реализацию, которая, в частности, не требует материализации распакованных промежуточных результатов.

Читать »

Аргументы и параметры команд UNIX

Добавлено Дата: 4 September, 2012 категория: Программирование для UNIX

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

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

Читать »

Препроцессоры tbl и eqn

Добавлено Дата: 20 August, 2012 категория: Программирование для UNIX

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

Читать »

Что в файле?

Добавлено Дата: 14 August, 2012 категория: Программирование для UNIX

Формат файла определяется использующей его программой; поэтому, вероятно, большое количество типов  файлов определяется разнообразием  программ. Но, поскольку файловые типы в файловой системе не определены, то и ядро ничего о них не знает. Команда file делает предположение о типе файла (вкратце объясним, как она это делает):

Читать »

МЕТОДЫ СЖАТИЯ БАЗЫ ДАННЫХ

Добавлено Дата: 3 August, 2012 категория: SQL, Базы данных

Методы сжатия используются для уменьшения объема памяти, необходимого для хранения определенной коллекции данных. Очень часто результатом такого сжатия становится не только экономия пространства памяти, но и сокращение количества операций ввода-вывода  на диске (причем, возможно, еще более значительное по сравнению с экономией памяти). Дело в том, что если данные занимают меньше места, то для доступа к ним требуется меньше операций ввода-вывода. С другой стороны, требуется дополнительная обработка для  восстановления данных (преобразования сжатых данных в исходный формат) после их выборки. Но в конечном итоге достигнутое сокращение количества операций ввода—вывода чаще всего перевешивает недостатки такой дополнительной обработки.

Читать »

ПРОВЕРКА ОГРАНИЧЕНИЙ

Добавлено Дата: 28 July, 2012 категория: SQL, Базы данных

В данном разделе рассматриваются две темы. Одна из них относится к реализации, а другая — к модели, и обе эти темы касаются вопроса о том, как фактически должны проверяться объявленные ограничения. Вначале рассмотрим проблему реализации. Еще раз вернемся к примеру 1, в котором, как известно, фактически утверждается, что если некоторый кортеж присутствует в переменной отношения S, то этот кортеж должен удовлетворять определенному условию (в данном случае условию "статус должен находиться в пределах от 1 до 100"). В частности, следует отметить, что в этом ограничении речь идет о кортежах в переменной отношения. Поэтому очевидно, что при осуществлении попытки вставить новый кортеж с данными о поставщике со статусом (скажем) 200, должна происходить описанная ниже последовательность событий.

Читать »

ДАЛЬНЕЙШЕЕ ОПИСАНИЕ ТРЕХ ПРОБЛЕМ ОРГАНИЗАЦИИ ПАРАЛЛЕЛЬНОЙ РАБОТЫ

Добавлено Дата: 27 July, 2012 категория: SQL, Базы данных

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

Проблема потерянного обновления

Рис. 16.6 представляет собой модифицированную версию рис. 16.1. На нем показано, что произойдет при выполнении чередующихся операций данного  рисунка в условиях применения строгого протокола двухфазной блокировки. Выполнение операции UPDATE транзакцией А в момент времени t3 не допускается, поскольку эта операция представляет собой неявный запрос на блокировку X  кортежа t, а такой запрос конфликтует с блокировкой S, которой уже владеет транзакция в, поэтому А переходит в состояние ожидания.

Читать »

СРЕДСТВА SQL и отношения

Добавлено Дата: 17 July, 2012 категория: SQL, Базы данных

Строки

В языке SQL вообще не поддерживаются кортежи как таковые; вместо этого  в  нем поддерживаются строки, которые характеризуются упорядочением своих  компонентов слева направо. Поэтому в каждой конкретной строке значения  компонентов (которые называются значениями столбцов, если строка непосредственно содержится в таблице, или значениями полей в противном случае) идентифицируются прежде всего по своей порядковой позиции (даже если они имеют также и имена, что не всегда бывает на практике). Типы строк не имеют  явных имен типа строки. Значение строки может быть "выбрано" (в языке SQL для обозначения этой операции используется термин сконструировано—  constructed) с помощью некоторого выражения (фактически являющегося конструктором значения строки <row value constructor>) в следующей форме.

Читать »

Синхронизация и параллелизм

Добавлено Дата: 4 May, 2012 категория: Ядро Linux

Ядро подвержено  состояниям  конкуренции   за ресурсы  (race condition).  В отличие от однопоточной  пользовательской  программы,  ряд свойств ядра позволяет  осуществлять  параллельные  обращения  к ресурсам общего доступа,  и  поэтому  требуется выполнять  синхронизацию для предотвращения состояний  конкуренции  за ресурсы. В частности,  возможны  следующие ситуации.

Читать »

Файловые системы в операционной системе Linux

Добавлено Дата: 23 April, 2012 категория: Ядро Linux

Операционная система Linux  поддерживает большой набор  файловых систем, от "родных"  ext2  и  ext3 до  сетевых  файловых систем,  таких  как  NFS  или  Coda.   Сейчас в  официальном ядре  ОС  Linux  поддерживается более  50 файловых систем. Уровень VFS обеспечивает все  эти  разнообразные файловые системы общей  базой  для  их реализации и общим интерфейсом для  работы  со стандартными системными вызовами. Следовательно, уровень виртуальной файловой  системы позволяет  четким образом реализовать поддержку новых  файловых систем   в  операционной  системе Linux,  a также  дает  возможность работать  с  этими файловыми системами с  помощью стандартных   системных вызовов Unix.

Читать »

Сбои неизбежны

Добавлено Дата: 30 March, 2012 категория: Архитектура ПО

Майкл Найгард

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

Читать »

Обновление ваших виджетов

Добавлено Дата: 27 January, 2012 категория: Разработка для Android

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

Читать »