Новые книги

Лояльный покупатель – кто он и как сделать остальных потенциальных покупателей «лояльными»? Автор предлагаемой вниманию читателей книги исходит из убеждения, что только конкретное поведение и суммы, потраченные повторно на тот же товар или в том же месте, могут рассматриваться как измеримый и контролируемый параметр потребительского поведения. Заинтересованность только в непосредственном поведении и практически полное игнорирование «потенциальных» клиентов – такой подход автор считает наиболее эффективным.

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

В первую очередь книга будет полезна специалистам отделов продаж и поможет им вывести свою работу на новый уровень.
Несколько слов об особенностях JavaScript, другими словами - что я знал об этом языке до начала его изучения. Первое и главное: JS код легко интегрируется в HTML разметку и является де факто стандартом для интернет браузеров. Из этого следует, что если вы совершенно не знаете HTML - JS, вероятнее всего, будет для вас бесполезна. В данном опусе я постараюсь разжевать всё максимально детально, но надо иметь в виду, что HTML и JS идут бок о бок, дополняя, а не заменяя друг друга. Для тех, кто сталкивался раньше с Delphi программированием или чем-то подобным можно, в первом приближении, привести такую аналогию: HTML - это форма, а JS - сам код программы.

Другая важная особенность языка - высокая интерактивность. Процитирую фразу, которую мне многократно доводилось слышать: "JavaScript - это событийно ориентированный язык программирования". Что это значит? Это означает, что вы можете написать кусок кода, который выполнится когда пользователь нажмёт на кнопку, можете написать кусок кода, который выполнится когда вы только подведёте к ней курсор мышки. Для Java Script и то и другое - события и она умеет на них реагировать.

Отличительная особенность языка и кода на нём - то, что результат можно увидеть имея лишь один из современных браузеров. То есть вам не нужно ставить и настраивать какие-то компиляторы, среды программирования и так далее. Для запуска любого из приведённых ниже примеров - достаточно набрать текст в любом редакторе (блокноте, например), изменить расширение на html и открыть при помощи браузера. Всё.

Прорисовка одного пикселя

Прорисовка одного пикселя

Прорисовать один пиксель в определенной позиции мы можем с помощью вызова функции SetPixel(), описанной в wingdi.h:

   WINGDIAPI COLORREF WINAPI SetPixel(HDC, int, int, COLORREF);
Первый три аргумента очевидны - контекст устройства вывода и координаты прорисовываемого пикселя. Но что такое COLORREF?

Здесь следует пояснить, что каждый пиксель на экране состоит из трех микроточек - красной, зеленой и синей. Каждая из этих микроточек может светится с интенсивностью от 0 (микроточка не светится) до 255 (максимальная яркость). Например, если светится только красная составляющая, то получаются цвета от темно-бордового (почти черного) до ярко красного. Комбинируя микроточки и их интенсивность, мы можем определить почти 17 миллионов цветов (будут ли они все поддерживаться на компьютере читателя, определяется видеоподсистемой компьютера). Обычно в таких случаях говорят об RGB-значениях цвета (red, green, blue - красный, зеленый, голубой).

Вернемся к COLORREF. Опять обратимся к заголовочному файлу, но на сей раз не к wingdi.h, а к windef.h:

  typedef DWORD   COLORREF;
Понятно, что COLORREF - это двойное слово. Оно кодируется следующим образом:
  0x00bbggrr
т.е. младший байт определяет интенсивность красного, второй - зеленого, третий - синего цвета.

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