Фрикер - это телефонный хакер, но чтобы стать фрикером не обязательно ломать АТС, достаточно лишь изучить все то, что относится к телефонам. Данное издание посвящено безопасности, а также применению электронных устройств для получения (или защиты) информации. Вы узнаете всё о работе АТС, о том, как можно отправить бесплатно факс в любую точку мира и что конкретно для этого необходимо. Также вы узнаете, как перепрограммировав пейджер, использовать его практически на «халяву», существенно снизив размер вносимой абонентской платы и многое другое. Но цель автора этого проекта - дать «ищущему» пользователю максимум информации для того, чтобы он сам мог решить стоит ли применить свои знания в незаконной деятельности или стать профессиональным участником рынка телекоммуникаций.
Издание предназначено для пользователей персонального компьютера, которые интересуются проблемами взлома и защиты телефонных линий, и желают получить исчерпывающие сведения о способах несанкционированного получения информации.
Эта книга начинает с основ безопасности вашего компьютера, таких, как определение необходимости в средствах защиты и его текущего уровня защищенности. Далее в ней показывается и достаточно подробно объясняется, как усилить защищенность, выбрать высокоскоростное подключение к Интернету, установить средства защиты персонального компьютера и оценить новый уровень защищенности.
Книга дополнена материалами, отражающими специфику Интернета в России и в странах СНГ.
В книгу включены наиболее важные предложения базового варианта SQL, позволяющие познакомиться с основными средствами манипулирования данными. Недостаток места не позволил подробно рассмотреть другие его конструкции. Однако и таких знаний достаточно для получения данных из баз, находящихся под управлением большинства современных СУБД (если, конечно, вам предоставят привилегии доступа к ним).
Если вы приступаете к изучению СУБД Oracle - начните с этой книги. Если вы опытный разработчик приложений или администратор баз данных Oracle, - прочтите ее и проверьте, достаточно ли глубоко вы вы знаете эту СУБД и умеете использовать ее возможности. Вы найдете в книге десятки советов, описаний приемов и методов решения задач, о которых вы никогда и не подозревали. Том Кайт отвечает на десятки вопросов в день. Он не только делится знаниями, но и умело подталкивает читателя к самостоятельным экспериментам. Следуя по указанному им пути становишься профессионалом.
Редкая книга 1964 года.
Предисловие: Эта книга популярно излагает основы математической логики. Необходимость такой книги вызвана тем, что в настоящее время все большее значение приобретает автоматизация производственных процессов. Программа КПСС прямо указывает на важность автоматизации для создания материально-технической базы коммунизма. Математическая логика является теоретической основой кибернетики, а эта последняя в свою очередь применяется для решения проблема автоматизации. Несмотря на важность математической логики, в нашей стране почти нет книг, излагающих основы этой науки. Имеющиеся у нас книги по математической логике рассчитаны на читателя, достаточно математически подготовленного. Между тем необходимо создать такую книгу, которая давала бы представление о математической логике и в то же время не требовала бы для своего понимания большего, чем школьный курс математики. Данна книга, по-моему, решает эту задачу.
Данное пособие предназначено для начального освоения практического курса параллельных вычислений. Предполагается, что приводимой информации достаточно для начала серьезной работы на параллельных компьютерах (в первую очередь, кластерных системах). При этом основной упор делается на освоение практических навыков работы на вычислительном кластере НИВЦ МГУ. Курс включает в себя вводные сведения об операционной системе UNIX, архитектуре суперкомпьютеров и вычислительных кластеров, обнаружении и использовании параллелизма программ, технологиях параллельного программирования и многие практические сведения, необходимые для начала работы. Он рассчитан ориентировочно на 10 занятий, из которых несколько последних отводятся на отладку и оптимизацию модельной задачи. Методическое пособие содержит весь необходимый материал для начала работы на вычислительных кластерах и создания реальных эффективных параллельных программ.
Эта книга задумывалась как достаточно полное справочное руководство по Web-серверу Apache. Изложеный в ней материал предполагает определенный уровень компьютерной грамотности, но знания сетевых технологий при этом не требуется. Несмотря на то, что основная проблематика данной книги лежит в области электронной коммерции, в приложениях затронуты самые разнообразные проблемы и информация, необходимая для создания и функционирования Web-сервера. Это проблема соответствия имен и IP-адресов, детали протокола TCP/IP и синтаксис регулярных выражений. Кроме того, в перспективе Web-администрирования затронуты темы создания системы электронных платежей и взвимодействия с базами данных.
От автора: "Этот документ для тех, кто хочет писать модули ядра. Хотя я буду касаться в нескольких местах того, как многие задачи выполнены в ядре, это не моя цель. Имеется достаточно много хороших источников, авторы которых проделали работу лучшую чем та, которую я мог бы сделать.
Этот документ также для людей, которые знают как писать модули ядра, но еще не адаптировались к версии 2.2. Если Вы такой человек, я предлагаю, Вам прочитать приложение A, чтобы увидеть все различия, с которыми я столкнулся при модифицировании примеров. Список не всесторонний, но я думаю, что он покрывает большинство базисных функциональных возможностей и его будет достаточно для начала.
Ядро имеет большое количество программирования, и я полагаю, что программисты должны читать по крайней мере некоторые его исходные файлы и понимать их. Сказав это, я также верю в значение игры с системой сначала и выяснением вопросов позже. Когда я узнаю новый язык программирования, я не начинаю с чтения библиотечного кода, а пишу маленькую программу "hello, world". Я не вижу, почему начинающий разбираться с ядром должен быть действовать иначе."
В данной книге речь пойдет о способах создания анимации в Macromedia Flash 4. Для начала следует понять: в чем секрет такой компактности роликов, созданных в Macromedia Flash? Основная причина состоит в том, что технология Flash реализует анимацию векторных объектов. На практике это означает, что для создания элементарного ролика нам нужно один раз создать анимируемый объект и в дальнейшем манипулировать только его атрибутами и формой. Технология так же позволяет использовать и растровые объекты.
В основе анимации Macromedia Flash лежит принцип преобразований по ключевым кадрам (Keyframe). Т.е. достаточно задать во времени только начальный и конечный кадр элементарного преобразования, а промежуточные кадры будут выстроены программой без вашего вмешательства. К элементарным преобразованиям относятся: изменение координат, размеров, масштаба, угла поворота, формы, цветовых атрибутов контура и заливки объекта.
Преобразования реализуются двумя основными методами:
Движение (Motion-tweening) - метод предназначен для изменения атрибутов объекта.
Превращение (Shape-tweening) - метод предназначен для преобразования формы одного объекта в другой. Для создания аналогичных эффектов вызывает увеличение размера файла ролика по сравнению с Motion-tweening.
Крайним случаем является покадровая анимация, неизбежная при создании мультфильмов. Такой подход увеличивает размер файла, т.к. анимация происходит за счет покадровой смены объектов, описание которых требует существенно большего объема, нежели описание изменения атрибутов разумно ограниченного числа объектов.
Эта книга научит вас основам языка программирования Perl. Вы узнаете достаточно для того, чтобы самому сделать что-нибудь полезное. Автор ведет повествование в легком и доступном стиле, опуская в то же время редко встречающиеся ньюансы программирования. каждая новая методика продемонстрирована на множестве работающих примеров - от создания простейшей программы на Perl до разработки сложных CGI-приложений. Книга будет полезна широкому кругу читателей.
Для операционной системы Linux долгое время не было достаточно простой среды быстрой разработки приложений. Многие программисты, которые успешно создают программы для Windows, используют среду Borland Delphi. В нашей стране Delphi пользуется особой популярностью как среди начинающих разработчиков, так и среди профессионалов. Многие из них готовы создавать программы для среды Linux, но не было среды, похожей на Delphi. Наконец, летом 2001 года фирма Borland выпустила среду для быстрой разработки приложений в среде Linux и назвала ее Kylix (Kylix — это античная винная чаша, расписанная с внешней и внутренней стороны). На первый взгляд, эта среда — практически копия Delphi, но есть некоторые отличия. Причем эти отличия являются довольно опасными, т. к. одна и та же команда в Delphi и Kylix может привести к совершенно разным последствиям. Данная книга представляет собой краткий обзор среды Kylix версии Kylix Server Developer. С помощью нее вы узнаете особенности среды Kylix и ее отличия от Delphi. Кроме того, заключительная часть книги расскажет вам о методах переноса приложений из Delphi в Kylix и создании межплатформенных приложений.
Книга предназначена для всех желающих изучить среду Kylix и научиться создавать работоспособные программы под Linux. Стиль изложения материала — от простого к сложному, приведены многочисленные примеры. Конечно, желательно, чтобы читатель был знаком (хотя бы поверхностно) с операционной системой Linux и программированием. Данная книга будет читаться еще легче, если вы знакомы с программированием в Delphi.
В данном объеме невозможно охватить все аспекты программирования в Kylix, поэтому в конце книги приводится список литературы и ссылки на сайты в Интернете, из которых читатель сможет почерпнуть отсутствующую в книге информацию.
Подготавливая учебник, который Вы видите, авторы ставили перед собой цель дать достаточно подробное изложение языка РНР, по крайней мере, тех его частей, которые используются при разработке самых различных Web-приложений. Учебник разработан сотрудниками IT-студии SoftTime, и постоянно дополняется, поэтому, - следите за обновлениями!
Автором языка C++ является Бьерн Страуструп,сотрудник известной фирмы AT&T. C++(а точнее, его предшественник, С with classes) был создан под влиянием языка Simula (надо сказать, что этот язык программирования появился еще в 1967 году). Собственно, к тому моменту, когда появился C++, С уже заработал себе популярность; профессиональные программисты уважают его за возможность использовать преимущества конкретной архитектуры, создавая при этом программы на языке относительно высокого уровня.
В настоящее время C++ — один из самых популярных (если не самый популярный) языков программирования. Именно С++ позволяет написать программу с использованием объектно ориентированных подходов (а программы, которые этого требуют, обычно очень большие) и при этом достаточно «быструю». Эта книга познакомит читателя с «философией » и основами программирования на языке С++. В книге приводится множество примеров, скомпилированных и проверенных автором.
Чаще всего изображения со случайным кодом (так называемая captcha) используются для защиты от флуда (автоматизированного ввода сообщений), некоторые сервисы находят им применнение в качестве раздражителя (для перехода на платный вариант).
В общем, может пригодиться. PHP код следующий:
Это максимально упрощенный вариант с использованием только одного шрифта и небольшого количества символов и цветов, хотя и этого бывает достаточно, чтобы оградиться от незатейливых спамеров и флудеров.
Через HTML такое изображение вызывается стандартно:
Скачать скрипт генерации защитного кода с полным набором символов и возможностью подключения своих шрифтов можно здесь [url=/uploads/files/public/secpic.rar]secpic.zip[/url]
Прежде всего, микроконтроллер это процессор со всеми его "атрибутами", плюс встроенная, энергонезависимая память (программ и данных), что позволяет отказаться от внешней памяти программ и поместить программу в его энергонезависимую память.
Это позволяет создавать очень простые (в схемотехническом отношении) и компактные устройства, выполняющие, тем не менее, достаточно сложные функции. Иногда даже диву даешься: эта маленькая "штучка" заменяет целую "груду старого железа"
Любой микроконтроллер, по своим возможностям, конечно же, уступает процессору компьютера, но тем не менее, существует весьма обширный класс устройств, которые преимущественно реализуются именно на микроконтроллерах. И в самом деле, компьютер в карман не положишь и от батареек его не запитаешь. Поэтому, во многих случаях, микроконтроллерам просто нет альтернативы. "Сердцем" микроконтроллера является арифметико - логическое устройство (АЛУ).
Проще всего его представить в виде банального калькулятора, кнопками которого управляет программа, написанная на языке ассемблер (то есть, программист). Если вдуматься, то ничего особо сложного, в механизме управления такого рода калькулятором, нет. И в самом деле, если нужно, например, сложить числа А и В, то в тексте программы сначала задаются константы А и В, а затем дается команда "сложить". Программисту вовсе не обязательно знать, что происходит с нулями и единицами (разве только только для общего развития), ведь калькулятор он на то и калькулятор, чтобы избавить пользователя от "возни" с машинными кодами и прочими "неудобоваримостями".
Когда Вы работаете с компьютером, Вам и не нужно детально знать, что происходит в дебрях операционной системы.
Если Вы туда "полезете", то "с ума сойдете", а микроконтроллер, по своей сути, есть тот же самый компьютер, но только простой. Программисту только нужно детально знать, каким именно образом "приказать железяке" сделать то, что необходимо для достижения задуманного. Микроконтроллер можно представить себе как некий универсальный "набор" многофункциональных модулей (блоков), "рычаги управления" которыми находятся в руках программиста. Этих "рычагов" достаточно большое количество, и естественно, их нужно освоить и точно знать, что именно произойдет, если "дернуть" (дать команду на языке ассемблер) за тот или иной "рычаг". Вот здесь-то уже нужно знать, как "отче наше", каждую деталь и не жалеть на это "узнавание" времени. Только таким образом пустую "болванку" (незапрограммированый ПИК) можно "заставить"
выполнять какие-то "осмысленные" действия, результат большей части которых можно проверить в симуляторе MPLAB (об этом - позднее), даже не записывая программу в ПИК.
Итак, необходим переход к "модульному" мышлению. Любой микроконтроллер можно уподобить детскому конструктору, в состав которого входит множество всяких предметов, манипулируя с которыми, можно получить тот или иной конечный "продукт". Давайте с ними разберемся и "разложим все по полочкам". В качестве примера я буду использовать один из самых распространенных PIC контроллеров PIC16F84A. Он является как бы "проматерью" более сложных ПИКов, содержит минимальный "набор" модулей и как нельзя лучше подходит для первичного "въезда в м/контроллеры".
Энергонезависимая память.
Начнем с энергонезависимой памяти (память программ и память данных).
Информация, заложенная в энергонезависимую память, сохраняется при выключении питания, и поэтому именно в нее записывается программа.
То "место" энергонезависимой памяти, куда записывается программа, называется памятью программ. Объем памяти программ может быть различен. Для PIC16F84A, он составляет 1024 слова. Это означает, что он предназначен для работы с программами, объем которых не превышает 111024 слов.
Слово памяти программ не равно одному байту (8 бит), а больше его (14 бит). Отдельная команда, которую ПИК будет в дальнейшем выполнять, занимает одно слово в памяти программ. В зависимости от названия этой команды в ассемблере, слово принимает то или иное числовое значение в машинном коде. После записи в ПИК "прошивки" программы, слова памяти программ (машинные коды) как бы "превращаются" в команды, которые располагаются, в памяти программ, в том же порядке, в котором они следуют в исходном тексте программы, написанном на языке ассемблер, и в том же порядке им присваиваются адреса, при обращении к которым, та или иная команда "извлекается" из памяти программ для ее выполнения. Последовательность же их выполнения определяется логикой программы. Это означает то, что выполнение команд может происходить не в порядке последовательного возрастания их адресов, с шагом в одну позицию (так называемый инкремент), а "скачком". Дело в том, что только уж самые простейшие программы, в пределах одного их полного цикла, обходятся без этих "скачков", называемых переходами, и выполняются строго последовательно. В остальных же случаях, так называемая (мной) "рабочая точка программы" "мечется по тексту программы как угорелая" (как раз благодаря этим самым переходам).
Термин "рабочая точка программы" - моя "самодеятельность". В свое время, я был очень сильно удивлен отсутствием чего-то подобного в информации, связанной с объяснением работы программ. Казалось бы, чего проще, по аналогии, например, с рабочей точкой транзистора, сделать более комфортным "въезд в механику" работы программ? Так нет же, как будто специально, придумываются такие "головокружительные заменители", причем, в различных случаях, разные, что запутаться в этом очень просто. Итак, рабочую точку программы можно представить себе в виде некоего "шарика от пинг-понга", который "скачет" по командам текста программы в соответствии с алгоритмом (логикой) исполнения программы. На какую команду "шарик скакнул", та команда и исполняется. После этого он "перескакивает" на другую команду, она исполняется, и т.д. Эти "скачки" происходят непрерывно и в течение всего времени включения питания устройства (исполнения программы).
Любая более-менее сложная программа разбивается на части, которые выполняют отдельные функции (своего рода программки в программе) и которые называются подпрограммами. Атрибут любой подпрограммы - функциональная законченность производимых в ней действий.
По сути своей, эта "выдумка" введена в программирование для удобства реализации принципа "разделяй и властвуй": "врага" ведь гораздо легче "разгромить по частям, чем в общей массе". Да и порядка больше.
Безусловные переходы (переходы без условия) между подпрограммами (если они последовательно не переходят одна в другую), осуществляются при помощи команд безусловных переходов, в которых обязательно указывается адрес команды в памяти программ (косвенно - в виде названия подпрограммы или метки), на которую нужно перейти. Существуют также переходы с условием (условные переходы), то есть, с задействованием так называемого стека. Более подробно о переходах я расскажу позднее. Адреса команд определяются счетчиком команд (он называется PC). То есть, каждому состоянию счетчика команд соответствует одна из команд программы. Если команда простая, то счетчик просто инкрементируется (последовательно выполняется следующая команда), а если команда сложная (например, команда перехода или возврата), то счетчик команд изменяет свое состояние "скачком", активируя соответствующую команду.
Примечание: инкремент - увеличение на единицу величины числа, с которым производится эта операция, а декремент - уменьшение на единицу (так называемые комплиментарные операции). В простейшем случае, то есть в случае отсутствия в программе переходов, счетчик команд PC, начиная с команды "старта" (нулевой адрес), многократно инкрементируется, 12 последовательно активизируя все команды в памяти программ. Это означает, что в большинстве случаев, за каждый так называемый машинный цикл (такт работы программы: для ПИКов он равен четырем периодам тактового генератора) работы ПИКа, происходит исполнение одной команды. Есть и команды исполнение которых происходит за 2 машинных цикла (м.ц.), но их меньше. Команд, которые исполняются за 3 м.ц. и более нет. Таким вот образом, на большинстве участков программы (я их называю "линейными участками"), последовательно и перебираются адреса в памяти программ (команды последовательно исполняются).
В более сложных программах, с большим количеством условных и безусловных переходов, работу счетчика команд PC можно охарактеризовать фразой "Фигаро здесь, Фигаро там". 1 машинный цикл (м.ц.) равен 4-м периодам тактового генератора ПИКа. Следовательно, при использовании кварца на 4 Мгц., 1 м.ц.=1 мкс. Выполнение программы, в рабочем режиме (кроме работы в режиме пониженного энергопотребления SLEEP), никогда не останавливается, то есть, за каждый машинный цикл (или за 2, если команда исполняется за 2 м.ц.) должно выполняться какое-либо действие (команда). Тактовый генератор, формирующий машинные циклы, работает постоянно. Если его работу прервать, то исполнение программы прекратится.
Может сложиться ложное представление о том, что работу программы можно на какое-то время остановить, используя одну или несколько команд – "пустышек", не производящих полезных действий (есть такая команда NOP). Это представление не верно, так как в этом случае, речь идет только о задержке выполнения следующих команд, а не об остановке исполнения программы. Программа исполняется и в этом случае, так как "пустышка" есть та же самая команда программы, только не производящая никаких действий (короткая задержка). Если же нужно задержать выполнение каких-либо последующих команд на относительно длительное время, то применяются специальные, циклические подпрограммы задержек, о которых я расскажу позднее. Даже тогда, когда программа "зависает" ("глюк"), она исполняется, просто только не так, как нужно. Остановить (в буквальном смысле этого слова) исполнение программы можно только прекратив работу тактового генератора. Это происходит при переходе в режим пониженного энергопотребления (SLEEP), который используется в работе достаточно специфических устройств. Например, пультов дистанционного управления (и т.д.).
Отсюда следует вывод: программы, не использующие режим SLEEP (а таких - большинство), для обеспечения непрерывного выполнения команд программы, обязательно должны быть циклическими, то есть, иметь так называемый полный цикл программы, причем, многократно повторяющийся в течение всего времени включения питания. Проще говоря, рабочая точка программы должна непрерывно (не останавливаясь) "мотать кольца" полного цикла программы (непрерывно переходить с одного "кольца" на другое).
Общие выводы:
1. Команды программы "лежат" в памяти программ в порядке расположения команд в тексте программы.
2. Адреса этих команд находятся в счетчике команд PC и каждому адресу соответствует одна из команд программы.
3. Команда активируется (исполняется), если в счетчике команд находится ее адрес.
4. Активация команд происходит либо последовательно (на "линейном" участке программы), либо с переходом ("скачком") на другую команду (при выполнении команд переходов), с которой может начинаться как подпрограмма (переход на исполнение подпрограммы), так и группа команд, выделенная меткой (переход на исполнение группы команд, которой не присвоен "статус" подпрограммы).
5. Выполнение команд программы никогда не останавливается (за исключением режима SLEEP), и поэтому программа должна быть циклической.
Кроме памяти программ, PIC16F84A имеет энергонезависимую память данных (EEPROM память данных). Она предназначена для сохранения данных, имеющих место быть на момент выключения питания устройства, в целях их использования в дальнейшем (после следующего включения питания). Так же, как и память программ, память данных состоит из ячеек, в которых "лежат" слова. Слово памяти данных равно одному байту (8 бит). В PIC16F84A, объем памяти данных составляет 64 байта. Байты, хранящиеся в памяти данных, предназначены для их считывания в стандартные 8-битные регистры, речь о которых пойдет далее. Данные из этих регистров могут быть записаны в EEPROM память данных, то есть, может быть организован обмен данными между памятью данных и регистрами. Например, именно EEPROM память данных я использовал в своем частотомере для сохранения последних, перед выключением питания, настроек. Она же используется и для установки значений промежуточной частоты. Во многих программах, память данных вообще не используется, но это "вещь" исключительно полезная, и далее я расскажу о ней подробнее.