Как перестать беспокоиться и начать программировать


Учебник по VRML 97

Изложение опирается на спецификацию VRML97 ( - это то, что Вам обязательно надо иметь под рукой!), личный опыт, разнообразные англоязычные tutorial'ы и другие источники.
Все, что мне попадалось в сети, касающееся VRML, я сливал на винт и накопил множество файлов. К сожалению, не на всех из них проставлено авторство, а я уже не помню, где что брал. Поэтому иногда я ссылаюсь не на оригиналы, затерявшиеся где-то в сети, а на копии, лежащие в виде файлов у меня. Чтобы отличать их от моих собственных документов, я сохранил исходный стиль. Если же Вы нашли свой файл здесь или уже видели такое в сети - просьба намылить, где именно лежат оригиналы!
Что касается англоязычных public domain документов (типа спецификации VRML97, разнообразных FAQ'ов и т.д.), то, возможно постепенно, как соберусь с силами, переведу на русский. Я, например, так и не нашел на русском спецификацию VRML97, а от этого документа пляшут создатели и редакторов, и броузеров!

Программы для создания 3D объектов и миров
VRML. Справка по языку
VRML в примерах

Платформа программирования J2ME для портативных устройств

Глава 1 познакомит вас с компьютерной платформой J2ME. В ней приводится большинство терминов, связанных с J2ME, и дается общая ориентация в понятиях, которые связаны с устройством и организацией платформы J2ME.
В главе 2 описывается процесс разработки приложений на J2ME. Вы узнаете, как создавать, компилировать, подготавливать, выполнять и отлаживать приложения на J2ME. В этой главе не описывается инструментарий или API. Описание этих элементов начинается в главе 3.
В главе 3 описывается платформа J2ME MIDP с точки зрения разработчика программного обеспечения. Здесь вы познакомитесь с организацией API, базовыми обобщенными понятиями программирования и моделями, характеризующими платформу MIDP.
Глава 4 продолжает тему главы 3. В ней затронут высокоуровневый программный интерфейс приложения (API) в MIDP, который заключает в себе набор компонентов UI, определяемых MIDP. Вы узнаете, как манипулировать различными компонентами UI, а также как выполнять обработку событий, называемую command processing в терминологии MIDP.
В главе 5 описа'ны компоненты пользовательского интерфейса (UI) MIDP. После изучения базовых обобщенных понятий, определяемых MIDP и описанных в главе 4, вы готовы к изучению того, как использовать компоненты, которые строятся на основе этих обобщений.
В главе 6 описывается низкоуровневый программный интерфейс приложения (API) в MIDP, который реализуется остальными компонентами UI MIDP, не описанными в главе 5.
В главе 7 описываются механизмы постоянного хранения, доступные вам благодаря MIDP.
Глава 8 посвящена организации сетей и коммуникаций. Здесь вы узнаете, как использовать службы организации сети и распределенной обработки данных и функциональные возможности, определяемые CLDC и MIDP. Вы также получите некоторое понятие о решениях создания и поддержки служб связи в J2ME.
Глава 9 знакомит вас с интернационализацией. Это вопрос значительной ширины и глубины, который требует даже более, чем отдельной посвященной ему книги. Здесь вы узнаете о некоторых проблемах, с которыми вы столкнетесь при создании практически применимых приложений MIDP. В этой главе описывается степень поддержки интернационализации в CLDC и MIDP и показано несколько примеров того, как использовать эти свойства. Вы также узнаете, как сконфигурировать ваше устройство для поддержки интернационализации и локализации.
В главе 10 описываются управление приложениями и системы инициализации. Теоретическое знакомство с этими системами важно для разработчика приложений на J2ME, особенно MIDP-разработчиков, поскольку эти системы влияют на ваше взаимодействие с поставщиками приложений и оперативной информации, поставщиками беспроводных сетей и даже с конечными пользователями.
В главе 11 описывается среда беспроводного Интернета. В ней описывается интеграция между беспроводными и стационарными сетями, беспроводной Интернет с точки зрения разработчика приложений, и среда, в которой выполняется приложение. Вы получите представление о беспроводных шлюзах Интернета, интерфейсах интернет-порталов, а также интерфейсах и службах беспроводных приложений - все, с чем вы, вероятно, столкнетесь как разработчик беспроводных приложений. Эта глава также знакомит разработчика приложений J2ME с базовыми понятиями об архитектуре и тем, как они действуют.



Введение
Знакомство с платформой Java 2 Micro Edition (J2ME)
Процесс разработки приложений MIDP
Программная структура приложений MIDP

Oбpaбoткa кoмaнд
Компоненты пользовательского интерфейса MIDP
Низкоуровневый программный интерфейс приложения (API) MIDP
Поддержка постоянного хранения в MIDP
Организация сетей и коммуникации в MIDP

Интернационализация
Инициализация приложений
Среда беспроводного Интернета
Приложение

Иллюстрированный самоучитель по Delphi 7 для начинаюших

В последнее время резко возрос интерес к программированию. Это связано с развитием и внедрением в повседневную жизнь информационно-коммуникационных технологий. Если человек имеет дело с компьютером, то рано или поздно у него возникает желание, а иногда и необходимость, программировать. Среди пользователей персональных компьютеров в настоящее время наиболее популярно семейство операционных систем Windows и, естественно, что тот, кто собирается программировать, стремится писать программы, которые будут работать в этих системах.
Несколько лет назад рядовому программисту оставалось только мечтать о создании собственных программ, работающих в среде Windows, т. к. единственным средством разработки был Borland C++ for Windows, явно ориентированный на профессионалов, обладающих серьезными знаниями и опытом.
Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить Borland Delphi и Microsoft Visual Basic. В основе систем быстрой разработки (RAD-систем, Rapid Application Development — среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий. Производительность программиста при использовании RAD-систем -фантастическая! Delphi — это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi — строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal.

Система подсказок
Программа
Управляющие структуры языка Delphi
Символы и строки
Инструкции write и writeln
Алгоритм простого перебора

Использование модуля
Открытие файла
Указатели
Класс

Окружность и эллипс
Компонент Animate
Понятие рекурсии
Наблюдение значений переменных
Использование редактора Microsoft Word

Представление данных
Настройка палитры компонентов
Создание псевдонима
Программа InstallShield Express
Заключение

Зарезервированные слова и директивы
Кодировка символов в Windows
Десятичные и двоичные числа
Десятичные и двоичные числа
Память компьютера

Приложение
Описание программ диска
Delphi и Windows API для защиты секретов
Использование открытых интерфейсов среды программирования Delphi

Как перестать беспокоиться и начать программировать

Хочу обратить внимание читателей, что никаких откровений или мыслей, блистающих особой глубиной/новизной, вы здесь не найдёте. Просто прикладной программист среднего (или чуть выше) уровня излагает свои соображения, рождённые опытом работы, и иллюстрирует их конкретными примерами работающего инструментария.
Ещё раз подчёркиваю, что по всем вопросам изложена моя личная точка зрения. Я открыт для конструктивной дискуссии и с радостью восприму все замечания, исправления и дополнения к исходным текстам.
Предполагается, что читатель знаком с основными принципами объектно-ориентированного программирования и разработки приложений.
Последовательность изложения: вначале будет описана совокупность инструментов. Это займёт несколько статей (глав) – вместе с исходными текстами и примерами использования.

Комплект инструментов
Контрразведка с soft-ice в руках
Создание справочных систем в форматах HLP и CHM
Программная среда для динамического анализа бинарного кода
Объектно-ориентированное программирование в ограничениях

Преодоление firewall'ов снаружи и изнутри
Сrackme, прячущий код на API-функциях
Призраки ядра или модули-невидимки
Старые антиотладочные приемы на новый лад

Выживание в системах с жестоким квотированием
Борьба с утечками ресурсов и переполняющимися буферами
Программирование в машинных кодах или soft-ice как logger
Функциональное программирование
Экстремальное программирование и быстрая разработка ПО

Гонки на вымирание, девяносто пятые выживают
Так ли открыты открытые исходники
Захват чужих ботнетов
Как заточить exploit под себя
Захват и освобождение заложников в исполняемых файлов
Длительность интеллектуальной работы Производительность

Итоги тестирования. Юзабилити-тестирование
Программирование - с женой или без
Длительность реакции системы
Предсказание скорости. Методики

Теоретические основы крэкинга

Основной идеей дзен - крэкинга (именно это название широко используется на сайте Fravia для обозначения той системы крэкинга, о которой я рассказываю) стало: «я не знаю, как это работает, но я могу это сломать». Разумеется, речь не идет об абсолютном незнании того, как функционирует программа – знание команд ассемблера, способов передачи параметров в функции и процедуры, назначения системных вызовов ОС, особенностей генерации кода определенных компиляторов и многого другого, несомненно, является обязательным. Более того, это основы, без которых любое изучение внутренностей программ в принципе невозможно – нельзя получить информацию из книги, не понимая языка, на котором она написана. «Не знаю, как работает» следует понимать в том смысле, что очень часто для успешного взлома программы совершенно необязательно проводить доскональный анализ всех защитных процедур. Иметь возможность сказать: «я знаю, для чего нужен каждый байт в этой программе» - это, конечно, хорошо, но на практике вполне успешно работает модель «черного ящика», когда нам известно назначение отдельных процедур, взаимосвязь между ними и то, какие эффекты вызывает передача тех или иных параметров на входы «черного ящика».

Орудия крэкера
Трассировка во сне и наяву
Взлом patch-guard
Взлом через покрытие

Справочник по PHP

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

Выражения
Манипулирование изображениями

Первый сайт на PHP

Когда-то давно, еще в прошлом веке, для того чтобы сделать сайт "на мировом уровне", достаточно было просто уметь делать web-страницы на HTML и обладать художественным вкусом. Спустя некоторое время требования усложнились: использование JavaScript и Dynamic HTML стало рутинным и дизайн сайта, не имеющего подобных "украшений", считался устаревшим. Ещё по прошествии небольшого времени правилом "хорошего тона" для корпоративного сайта стало применение сложных программ на Perl или C++, а создавать такие сайты стало по силам, пожалуй, лишь коллективам дизайнерских студий.
Однако простые web-дизайнеры не желали мириться с такой ситуацией, и ответом на их пожелания стало появление РНР - языка программирования, обладающего возможностями сложных скриптовых языков, но в то же время удивительно простого и легкого в изучении и применении. РНР расшифровывается как "PHP: Hypertext Preprocessor" (в названии используется такой прием, как рекурсия: наличествующая в расшифровке аббревиатура "РНР" вновь может быть расшифрована как "РНР: Hypertext Preprocessor" - и так до бесконечности). Этот язык благодаря своей простоте и мощности быстро завоевал огромную популярность среди web-мастеров, и количество сайтов, использующих РНР, увеличивается с каждым днем. Немаловажно и то, что он бесплатен для использования всеми желающими.

Введение
Немного о web-программировании
История места источники
Основы
Выборочная загрузка

Простейший интернет-магазин
Папкопотрошилка
Закачка файлов
Авторизация средствами web-cepbepa
Гостевая книга

Система оценки материалов
Файловый менеджер
Полезные мелочи
Способы передачи данных между отдельными страницами
Заключение

Преврати свой сайт в портал
Конвертация текстов
На сайте - как в "винде"

Клиентский JavaScript 1.3 Руководство

JavaScript это разработанный корпорацией Netscape межплатформенный объектно-ориентированный язык скриптинга (сценариев). Ядро JavaScript содержит набор основных объектов, таких как Array, Date и Math, и основной набор элементов языка, таких как операции, управляющие структуры и операторы. Ядро JavaScript может быть расширено путём предоставления дополнительных объектов; например:
* Клиентский JavaScript расширяет ядро языка за счёт объектов, управляющих браузером (Navigator или другой подобный web-браузер) и его Document Object Model (DOM). Например, клиентские расширения позволяют приложению размещать элементы на HTML-форме и отвечать на пользовательские события, такие как щелчок мышью, ввод данных в форму и навигация по страницам.
* Серверный JavaScript расширяет ядро языка за счёт объектов, имеющих отношение к работе JavaScript на сервере. Например, серверные расширения позволяют подключиться к реляционной БД, поддерживать непрерывность информации между вызовами приложения или работать с файлами на сервере. JavaScript даёт Вам возможность создавать приложения, работающие в Internet. Клиентские приложения работают в браузере, таком как Netscape Navigator, а серверные приложения запускаются на сервере, таком как Netscape Enterprise Server. Используя JavaScript, Вы можете создавать динамические HTML-страницы, которые обрабатывают пользовательский ввод и работают с данными через использование специальных объектов, файлов и реляционных баз данных.

Введение
JavaScript. Обзор
Значения, Переменные и Литералы
Выражения и Операции
Регулярные Выражения

Операторы
Функции
Работа с Объектами
Объектная Модель. Детали
Внедрение JavaScript в HTML

Обработка Событий
Использование Объектов Navigator'а
Использование Окон и Фрэймов
Дополнительные Статьи
Безопасность в JavaScript

LiveConnect. Обзор
Отображение Ошибок с Помощью Консоли JavaScript
Словарь

Программирование на языке Java

Вообще опасно объявлять каждую новую технологию программирования революционной. Если вы поторопитесь подать свой голос за признание технологии, подобной той, которая реализована в языке Java, революционной — вас могут закидать тухлыми яйцами или занести в разряд пустозвонов, падких на модные новинки. Что же в таком случае делает тот или иной продукт революционным ? Он не может быть только лишь компактней, быстрее и дешевле. Такой продукт должен изменить весь стиль работы, радикально упростив решение сложных проблем.
Создание языка Java — это действительно один из самых значительных шагов вперед в области разработки сред программирования за последние 20 лет. Язык HTML (Hypertext Markup Language — язык разметки гипертекста) был необходим для статического размещения страниц во “Всемирной паутине” WWW (World Wide Web). Язык Java потребовался для качественного скачка в создании интерактивных продуктов для сети Internet.
Три ключевых элемента объединились в технологии языка Java и сделали ее в корне отличной от всего, существующего на сегодняшний день.

Революция по имени Java
Конструкторы
Меню

Раздел - Инфляция

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

Анализ
Антиинфляция
Банки
Россия
Сущность
Теория
Управление

Сетевые операционные системы

Использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Например, для организации чтения блока данных с гибкого диска программист может использовать 16 различных команд, каждая из которых требует 13 параметров, таких как номер блока на диске, номер сектора на дорожке и т. п. Когда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающих наличие и типы ошибок, которые, очевидно, надо анализировать. Даже если не входить в курс реальных проблем программирования ввода-вывода, ясно, что среди программистов нашлось бы не много желающих непосредственно заниматься программированием этих операций. При работе с диском программисту-пользователю достаточно представлять его в виде некоторого набора файлов, каждый из которых имеет имя. Работа с файлом заключается в его открытии, выполнении чтения или записи, а затем в закрытии файла. Вопросы подобные таким, как следует ли при записи использовать усовершенствованную частотную модуляцию или в каком состоянии сейчас находится двигатель механизма перемещения считывающих головок, не должны волновать пользователя. Программа, которая скрывает от программиста все реалии аппаратуры и предоставляет возможность простого, удобного просмотра указанных файлов, чтения или записи - это, конечно, операционная система. Точно также, как ОС ограждает программистов от аппаратуры дискового накопителя и предоставляет ему простой файловый интерфейс, операционная система берет на себя все малоприятные дела, связанные с обработкой прерываний, управлением таймерами и оперативной памятью, а также другие низкоуровневые проблемы. В каждом случае та абстрактная, воображаемая машина, с которой, благодаря операционной системе, теперь может иметь дело пользователь, гораздо проще и удобнее в обращении, чем реальная аппаратура, лежащая в основе этой абстрактной машины.

Определение операционной системы
Основные подходы к реализации взаимодействия сетей
Коммуникации в ядре Mach
Совместимость с NetWare
Стандарт OpenDoc
Две операционные системы на одном компьютере

Криптография

Люди, уходя из дома, обычно закрывают входную дверь на замок. Они также запирают свои автомобили, оставляя их припаркованными на улице иди на стоянке. И, как правило, не сообщают номер своей кредитной карты первому встречному коробейнику, который пристает к прохожим па удине. настырно предлагая купить у него товары сомнительного качества. Однако подавляющее большинство людей до конца не осознает, насколько сильно они рискуют, если не заботятся о защите информации, находящейся в их компьютерах. Достоверно известно, что лишь отдельные пользователи предпринимают хоть какие-то меры, призванные сберечь их данные. Остальные всерьез задумываются об этом только тогда, когда теряют информацию, хранимую в компьютере. Более того, их компьютерные системы зачастую совершенно не защищены от краж и вандализма. Каждый раз, используя свой компьютер, его владелец добавляет туда определенную порцию информации. Именно эта совокупная информация и является наиболее ценным компонентом всей компьютерной системы. А это значит, что если не предпринять специальных мер для ее зашиты, издержки, которые понесет пользователь, попытавшись восстановить утраченные данные, значительно превысят стоимость аппаратных средств, используемых для хранения этих данных. Еще более чреватой опасными последствиями является ситуация, при которой налоговая и банковская информация пользователя или его деловая переписка попадает в чужие руки. Трудно себе вообразить, что кто-то, находясь в здравом уме и твердой памяти, по доброй воле предоставляет свою личную информацию людям, с которыми не имеет или не желает иметь никаких дел.

Угрозы компьютерной безопасности
Программы-шпионы
Парольная защита операционных систем
Безопасность компьютерной сети

Основы криптографии
Криптографические ключи
Криптографические протоколы
Надежность криптосистем

Параметры QuarkXPress

Специалисты, которые посвятили себя издательскому делу, могут совершенно по-разному подходить к организации работы. К счастью, QuarkXPress предоставляет целый ряд параметров, с помощью которых вы сможете настроить программу именно так, как вам необходимо.
В настоящей главе речь пойдет о задании стандартных значений параметров на уровне приложения, а также на уровне печатных и Web-макетов с помощью диалогового окна Preferences (Установки).

Глобальные и локальные элементы управления
Десять наиболее распространенных ошибок
Термины, которые вам обязательно следует знать