Блог программиста

Читайте и найдете много полезного

Что требуют от программистов.

Posted by writer on Август 3rd, 2008

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

Требования: профессиональные навыки в управлении легковыми и грузовыми автомобилями, тролейбусами, трамваями, поездами метрополитена и фуникулера, экскаваторами и бульдозерами, спецмашинами на гусенечном ходу, боевыми машинами пехоты и современными легкими/средними танками, находящимися на вооружении стран СНГ и НАТО.Навыки раллийного и экстремального вождения обязательны. Опыт управления болидами “Формулы 1″ - приветствуется. Знания и опыт ремонта поршневых и роторных двигателей, автоматических и ручных трансмиссий, систем зажигания, бортовых компьютеров, антиблокировочных систем, навигационных систем и автомобильных аудиосистем ведущих производителей - обязательны. Опыт проведения кузовных и окрасочных работ - приветствуется. Претенденты должны иметь сертификаты Mercedes, BMW, General Motors, а также справки об участии в крупных международных ралли не более чем двухлетней давности.Зарплата определяется по результатам собеседования.

Posted in А ля Дневник | No Comments »

Общие сведения о локальных сетях

Posted by writer on Июль 9th, 2008

 

- История развития локальных сетей

- Общие сведения о подключении локальных сетей к Интернету

- Существующие сетевые технологии

- Перспективы развития локальных сетей

 

Сегодня уже трудно представить себе, как люди жили когда-то без столь удобного и полезного инструмента, как локальные сети. Однако знало человечество и такие времена. Впервые идея связать несколько независимо работающих компьютеров в единую распределенную вычислительную систему посетила светлые головы инженеров еще в середине 60-х годов XX века. А если говорить более конкретно, то первый успешный эксперимент по передаче дискретных пакетов данных между двумя компьютерами провел в 1965 году молодой исследователь из лаборатории Линкольна Массачусетского технологического института Лари Роберте. Алгоритмы передачи данных, предложенные Робертсом, во многом послужили основой для построенной в 1969 году по инициативе американского Агентства перспективных научных исследований (Advanced Research Projects Agency, ARPA) глобальной вычислительной сети ARPANet, а она впоследствии, объединившись с несколькими другими существовавшими на тот момент сетями, стала фундаментом, на котором вырос современный Интернет. Однако и широко использовавшиеся в те времена многотерминальные системы, в которых пользователям предоставлялся доступ к одному головному многофункциональному компьютеру посредством нескольких конечных устройств удаленного подключения — терминалов — по принципу разделения процессорного времени, и глобальные сети, объединявшие между собой мейнфреймы крупных вычислительных центров и лабораторий, являлись лишь предтечей локальных сетей в их нынешнем понимании. Существенный толчок в направлении развития малых локальных сетей дало бурное развитие во второй половине 70-х годов настольных персональных компьютеров. И в авангарде этого процесса стояла фирма Xerox. Персональные компьютеры Xerox Star были весьма и весьма популярны в начале 80-х годов, во-первых, благодаря сочетанию низкой стоимости и достаточно высокой производительности, во-вторых, потому, что работали они под управлением первой в мире операционной системы с оконным графическим интерфейсом, предоставлявшей пользователю возможность максимально комфортно взаимодействовать с ресурсами ЭВМ, и, наконец, по той простой причине, что разработчики предусмотрели возможность включения нескольких машин Xerox Star в единую сеть. Именно инженер-исследователь фирмы Xerox Роберт Меткалф впервые предложил стандарт организации малых локальных сетей Ethernet, который широко используется при проектировании подобных систем до сих пор.

Тем не менее, несмотря на очевидные достоинства персональных компьютеров от Xerox, они были вскоре окончательно вытеснены с рынка изделиями корпорации IBM, впитавшими в себя все перспективные разработки и лучшие технические решения предшественников. Большие производственные мощности этой компании позволили снизить цены на персональные компьютеры до возможного мишшума, и конкурировать с IBM PC стало практически невозможно. Количество локальных сетей росло в геометрической прогрессии, что вскоре привело к необходимости разработки четких стандартов архитектуры распределенных вычислительных систем. Действительно, одна из основных задач локальных сетей заключается не только в передаче данных и организации общего доступа к тем или иным периферийным устройствам, но также и в обеспечении совместной работы оборудования различных производителей. Это, естественно, означает необходимость унификации и стандартизации подходов к построению локальных сетей. Именно в 80-х годах окончательно сформировались основные стандарты распределенных вычислительных систем, такие как Ethernet, Token Ring, ArcNet, FDDI и некоторые другие. Все эти стандарты, а также многие смежные вопросы, связанные с теоретическими и практическими аспектами построения локальных сетей, мы подробно рассмотрим на страницах этой книги.

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

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

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

Уже сейчас системы компьютерной видеосвязи широко используются крупными коммерческими предприятиями, где служат для организации связи между различными отделами, в военных комплексах для быстрой передачи информации между несколькими абонентами и целыми подразделениями, а в последнее время — и в домашних ォнастольныхサ системах, в качестве средства организации досуга. Среди достоинств КВС можно упомянуть относительно низкую стоимость эксплуатации по сравнению с иными существующими на сегодняшний день системами коммуникаций, их многофункциональность, сравнительную легкость в использовании. В процессе работы абоненты видеоконференции в общем случае видят на экранах своих мониторов изображения собеседника и свое собственное, что необходимо для осуществления визуального контроля установленного соединения. Изображение динамически обновляется со скоростью от 0,5 кадра/с до. 15-25 кадров/с в зависимости от скорости (пропускной способности) канала связи и загрузки канала данными. Участники для проведения переговоров используют миниатюрные видеокамеры и микрофоны с достаточно хорошими характеристиками. Речь для передачи по каналу связи оцифровывается. Основными достоинствами компьютерной видеосвязи являются возможности совместной работы с документами и интегрированной информацией (текст, графика, изображение, получаемое с видеокамер участников), а также дистанционный запуск программных приложений на компьютере собеседника. Изображения, получаемые с помощью видеокамер, могут передаваться не только в динамическом режиме (живое видео), но и в статическом.

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

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

Да и само появление Интернета было во многом стимулировано развитием локальных сетей, объединявшихся в глобальную вычислительную систему.

В настоящее время используется несколько вариантов подключения локальной сети к Интернету. Вот основные из них.

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

·         Коммутируемый доступ является наиболее распространенным в нашей стране. Этот вид доступа подразумевает подключение локальной сети к Интернету по коммутируемым телефонным или выделенным линиям при помощи модема. Несмотря на относительно невысокую скорость соединения коммутируемый доступ (Dial-Up Access) не требует значительных финансовых затрат на аренду линии связи или закупку дорогостоящего оборудования. Именно поэтому он наиболее популярен при подключении к Интернету домашних и малых корпоративных сетей.

·         Доступ по технологии ォcoax at a homeサ. Технология ォcoax at a home подразумевает получение доступа к Интернету с использованием каналов кабельной телевизионной сети. Б обобщенном виде такая информационная структура выглядит следующим образом: стандартное оборудование вещания кабельного телевизионного центра подключается к специальному устройству передачи данных, называемому головным модемом, и далее через маршрутизатор — к высокоскоростному каналу Интернета. После этого абоненту достаточно лишь установить на своем компьютере любую сетевую карту, поддерживающую стандарт 10Base-T, соединив ее с клиентским кабельным модемом, а тот, в свою очередь, подключить к расположенному в квартире антенному выходу, — и компьютер оказывается в Сети. Одним из основных элементов клиентской компьютерной системы в схеме кабельной информационной сети является кабельный модем. Как и модем, предназначенный для соединения по коммутируемым телефонным линиям, это устройство представляет собой двунаправленный аналогово-цифровой преобразователь данных, использующий в процессе передачи информации принцип наложения на несущую частоту модулированного аналогового сигнала. Фундаментальным отличием данного аппаратного средства от обыкновенного модема является то, что кабельный модем не требует установки какихлибо драйверов, поскольку он подключается к компьютеру посредством сетевой карты и является абсолютно прозрачным для системы: программное обеспечение взаимодействует с Интернетом так же, как и в случае непосредственного подключения по локальной сети. Разумеется, отсюда можно сделать абсолютно справедливое логическое заключение о том, что данному устройству совершенно безразлично, какая операционная система инсталлирована на пользовательском компьютере, необходимо лишь, чтобы эта система поддерживала возможность установки сетевой карты и настройки локальной сети. Не менее очевидно и то, что для работы в Интернете абонент может применять любое стандартное программное обеспечение. Среди очевидных преимуществ доступа к Интернету по методу ォcoax at a homeサ можно перечислить высокую стабильность соединения, отсутствие непредвиденных разрывов связи, а также то, что на протяжении всего сеанса работы во Всемирной Сети телефонная линия остается свободной. К сожалению, данный метод связи не имеет сегодня в нашей стране широкого распространения.

В современных локальных сетях используются различные технологии подключения, различное оборудование и различные среды передачи данных. Еще несколько лет назад практически единственным возможным вариантом было объединение компьютеров на основе медного сетевого кабеля с пропускной способностью не более 10 Мбит/с, позже появились сети, в которых в качестве среды передачи информации стали использовать оптическое волокно, активно развиваются беспроводные локальные сети, в которых информация передается посредством инфракрасного излучения или широкополосных радиосигналов. Эволюция сетевых технологий обусловлена, в первую очередь, совершенствованием самих компьютеров. Специалистами подсчитано, что мощность процессоров современных ПК удваивается каждые 18 месяцев, соответственно, растет и трафик, передаваемый по линиям компьютерных коммуникаций (трафиком называется общий суммарный

поток информации через один сетевой компьютер). Вместе с тем наиболее узкое место в любой распределенной вычислительной системе — это устаревшее оборудование, поскольку уже довольно давно специалистами по компьютерным сетям было сформулировано простое правило: максимальная пропускная способность локальной сети равна максимальной пропускной способности ее самого медленного компонента. Из этого можно сделать вполне справедливый вывод, что эволюция сетевых стандартов во многом определяется ростом информационных потоков и производительности компьютеров, причем кривая роста производительности локальных сетей уже сейчас становится похожа на экспоненту: сети с пропускной способностью в 100 Мбит/с появились спустя 15 лет после возникновения 10-мегабитных сетей, сетевые системы с пропускной способностью в 1 Гбит/с были разработаны через 5 лет после 100-мегабитных сетей, первые проекты сетей со скоростью передачи данных в 10 Гбит/с родились спустя еще 2 года

Тем не менее, несмотря на стремительное совершенствование сетевых технологий, они все же не поспевают за ростом вычислительной мощности современных персональных компьютеров. Для обоснования этою утверждения специалистами приводится два аргумента: во-первых, компьютеры, работающие в сети с вполне современной конфигурацией, обеспечивающей скорость передачи данных до 100 Мбит/с, принципиально способны обрабатывать намного большие потоки входящих и исходящих данных, во-вторых, современные приложения, такие как, например, Microsoft Office XP, способны полностью ォутилизироватьサ эту пропускную способность под собственные потребности. Разработчики программного обеспечения также стараются идти в ногу со временем. В офисных приложениях, программах обработки баз данных, прочих Intranet-приложениях в последнее время намечается устойчивая тенденция к обеспечению установки, деинсталляции, запуска и совместного использования программ в локальной сети, в них реализуется механизм хранения документов и баз данных на сетевых серверах, использования

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

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

В частности, технология .NET демонстрирует нам очевидные перспективы дальнейшего сращивания локальных сетей с Интернетом. Основное предназначение Microsoft.NET — еще более тесная интеграция операционной системы с сетевыми технологиями и унификация применяемых для работы с сетью стандартов. Если раньше пользователь Интернета являлся просто ォприемником** и ォпередатчикомサ информации, то с появлением .NET он становится интегрированным участником сетевой среды. Прежде всего проект .NET ориентирован на электронную коммерцию и создание многофункциональных сетевых служб, а также на предоставление пользователю более широкого спектра возможностей в Интернете. Перспективы применения Microsoft.NET весьма широки. Например, получив из электронного магазина файл, содержащий счет за заказанный товар, пользователь сразу сможет импортировать его в программу бухгалтерского учета и включить в налоговую отчетность; загрузив из Интернета сводку котировок национальных валют, он получит возможность отредактировать ее в Word или Excel без сохранения в промежуточном формате. Поскольку в основе Microsoft.NET лежит расширяемый язык разметки документов XML (Extensible Markup Language), данная технология может использоваться любыми приложениями и на любом оборудовании, а информация может передаваться по любым каналам связи. Специалисты Microsoft предлагают такой пример ォнестандартногоサ использования Microsoft.NET: если автомобильная сигнализация в оставленной на офисной стоянке машине поддерживает интерфейс .NET, сигнал о попытке ее угона может быть передан непосредственно на компьютер пользователя. Тут же Windows предложит владельцу автомобиля различные варианты действий: автоматически вызвать полицию, заблокировать двигатель или отключить сигнализацию.

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

Заметно упрощаются методы настройки, администрирования и использования локальных сетей. В частности, уже в операционной системе Microsoft Windows XP реализован целый ряд вспомогательных средств, которые автоматически выполняют большую часть работы по настройке сети. В ォдомашнейサ локальной сети возможна организация одновременного доступа в Интернет с использованием одного компьютера, оснащенного обычным или кабельным модемом.

В операционных системах последних поколений значительно улучшена поддержка многосегментных малых сетей. Если один из входящих в сеть компьютеров соединяется с другими посредством беспроводной технологии Radio Ethernet, другой — через инфракрасный порт, а третий — по обычной ォвитой пареサ, в Windows 2000 каждый такой сегмент воспринимался как отдельная подсеть. От пользователя требовалось настроить протокол для головной машины каждого сетевого сегмента, назначить номера подсетей, указать алгоритмы передачи информации между сетями. Windows XP воспринимает многосегментные локальные сети как одну сеть, что значительно облегчает их настройку.

Безусловно, упрощенный вариант настройки сетевых подключений хорош для малых ォдомашнихサ сетей и не подходит для корпоративных распределенных систем. Именно поэтому в комплекте Windows XP предусмотрены механизмы более тонкой настройки и администрирования локальных сетей.

Также новые стандарты диктуют производители аппаратного обеспечения. В частности, возникновение стандарта Universal Plug&Play (UPnP) автоматически превращает локальные сети в незаменимый инструмент совместного использования конечного оборудования для различных прикладных задач.

Технология Plug&Play, позволяющая быстро подключать и настраивать в операционной системе новые периферийные устройства, уже хорошо знакома пользователям Windows. Universal Plug&Play дает возможность подключать к вашему компьютеру устройства, фактически расположенные на удаленном сетевом компьютере, и пользоваться ими так, словно они работают на вашей машине. При этом у вас не возникнет необходимости изменять какие-либо сетевые настройки: Windows самостоятельно подключит и настроит необходимое устройство. Вся ォмеханикаサ обмена данными с удаленным оборудованием по сети также скрыта от владельца компьютера — он может просто пользоваться своей системой, не задумываясь о том, как она работает. Каждому сетевому устройству Windows XP динамически назначает собственный IP-адрес, благодаря чему различная периферийная аппаратура может самостоятельно обмениваться данными, получать сведения о характеристиках и состоянии другого работающего в сети устройства, сообщать информацию ォо себеサ и передавать свои ресурсы в распоряжение других пользователей. Например, если некий компьютер в локальной сети оснащен звуковой картой, поддерживающей Universal Plug&Play, но его владелец в настоящий момент занят работой в Microsoft Word, пользователь другой сетевой машины может воспользоваться его саундбластером

для запуска игры, требующей наличия в системе аудиооборудования. Естественно, при этом нет необходимости вскрывать корпус компьютера для переустановки устройства. В настоящее время Universal Plug&Play может использоваться для подключения к компьютеру удаленных принтеров, видеокамер, цифровых фотокамер, сканеров. Однако специалисты Microsoft предполагают, что в недалеком будущем список оборудования, которое можно использовать в режиме Universal Plug&Play, будет расти. Самые смелые предположения писателей-фантастов воплотились в реальность: фактически Universal Plug&Play уже сейчас позволяет управлять подключаемой к компьютеру ォинтеллектуальнойサ бытовой техникой: программируемыми стиральными машинами, кухонными комбайнами, микроволновыми печами и даже автоматическими воротами гаража; при этом компьютер может играть роль своеобразного ォцентра управления домашней электроникойサ, задавая устройствам различные схемы и режимы работы. Дело за малым: дождаться поддержки Universal Plug&Play производителями конечного оборудования. Поскольку предложенный Microsoft стандарт построен по принципу открытой сетевой архитектуры, он независим от операционной системы и сетевой платформы, не привязан к какому-либо конкретному языку программирования или среде, через которую передается информация, будь то беспроводная сеть, оптоволоконная линия или Интернет. В силу того, что Universal Plug&Play не накладывает никаких ограничений на подмножество системных команд интерфейса операционной системы, которое могут использовать работающие с этим стандартом прикладные программы, разработчики программного обеспечения свободны в выборе средств для поддержки Universal Plug&Play.

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

 

Posted in Все о компьютерных сетях | No Comments »

Предисловие

Posted by writer on Июль 9th, 2008

У вас дома два компьютера? К одному подключен принтер, и вам приходится бегать с дискетой, чтобы распечатать документ, подготовленный на другом компьютере? Или вы хотите сражаться с друзьями в любимые компьютерные игры? А может быть, вам нужно работать в Интернете, но у вас нет модема, а у ближайшего соседа есть?..
Решение очевидно — ведь сегодня уже никому не нужно объяснять, насколько эффективнее можно использовать имеющиеся в распоряжении компьютеры и периферийные устройства, если объединить оборудование в локальную сеть!
В разделе блога вы найдете:
- описание основ организации сети Ethernet с использованием коаксиального кабеля и витой пары;
- описания и характеристики основных типов кабелей;
- определение и описание основных типов топологии сети;
- объяснение принципов настройки и эксплуатации оборудования и программного обеспечения.
Кроме того, вы получите множество полезных практических советов по организации и прокладке локальных сетей Ethernet.

Posted in Все о компьютерных сетях | No Comments »

Звонок “хакера”

Posted by admin on Июнь 28th, 2008

 

Сегодня позвонил со скайпа на мой телефон некий "хакер" и сообщил что  он нашел уязвимость в моем сайте - ARB,   начал запугивать разными иньекциями, и рассказывать что он может разместить любую информацию на главной странице.  За то что он этого делать не будет и подскажет где уязвимость он хотел 100 баксов.

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

Posted in А ля Дневник | No Comments »

JavaScript и Java

Posted by writer on Июнь 16th, 2008

JavaScript и Java- это два разных языка программирования. Java- это объектно-ориентированный язык программирования и запускается при помощи компилятора и вспомогательных файлов. Разрабатываемые с помощью Java программы могут работать как законченные приложения либо как встроенные в Web-страницу апплеты. И хотя они встроены в страницу HTML, они храняться на клиенской машине как отдельные файлы.

Напротив, JavaScript, размещаются внутри HTML страницы и не могут существовать, как отдельные программы и функционируют, будучи запущенными в браузерах типа Netscape Navigator или Internet Explorer.

Сегодня Всемирная сеть - это среда информационного обмена для миллионов людей. Они размещают текст, видео, звук, и информацию, и все более и более, они усложняют свои страницы, делая их интерактивными в сети. JavaScript - это новый язык программирования, используемый в составе страниц HTML для увеличения функциональности и возможностей взаимодействия с пользователями. Он был разработан фирмой Netscape в сотруднечестве с Sun Microsystems на базе языка Sun’s Java .С помощью JavaScript на Web-странице можно сделать то, что невозможно сделать стандартными тегами HTML. Скрипты выполняются в результате наступления каких-либо событий, инициированных действиями пользователя. Создание Web- документов, вклучающих программы на JavaScript, требует наличее текстового редактора и подходящего браузера. Некоторые просмоторщики включают в себе встроенные редакторы, поэтому необходимость во внешнем редакторе отпадает.

Несмотря на отсутствие прямой связи с языком Java, JavaScript может обращаться к внешним свойствам и методам Java- апплетов, встроенных в страницу HTML. Разница сводится к тому, что апплеты существуют вне браузера, в то время как программы JavaScript могут работать только внутри браузера. На первой взгляд кажется, что найти информацию по JavaScript несложно. Сначала создается впечатление, что ее можно увидеть везде: на сервере Natscape, в виде электронных руководств и примеров, во многих других местах. Тем не менее разыскать информацию об объектах, операторах, цветах и всем прочем в одном источнике, чтобы она была всегда под рукой, трудно.

Posted in Обо всем | No Comments »

Поиск записей в таблице(SELECT)

Posted by writer on Июнь 7th, 2008

Поиск записей осуществляется командой SELECT
SELECT * FROM table_name WHERE (выражение) [order by field_name [desc][asc]]
Эта команда ищет все записи в таблице table_name, которые удовлетворяют выражению выражение.
Если записей несколько, то при указаном предложении order by они будут отсортированы по тому полю, имя которого записывается правее этого ключевого слова (если задано слово desc, то упорядочивание происходит в обратном порядке). В предложении order by могут также задаваться несколько полей.
Особое значение имеет символ *. Он предписывает, что из отобранных записей следует извлечь все поля, когда будет выполнена команда получения выборки. С другой стороны, вместо звездочки можно через запятую непосредственно перечислить имена полей, которые требуют извлечения. Но чаще всего все же пользуются именно *.

Например, нам надо найти в таблице, содержащей сообщения в гостевой книге, все записи, которые оставил определенный пользователь.
// Имя пользователя
$user="Admin";
// name - имя поля в таблице, которое содержит имена пользователей,
// оставивших свои сообщения в гостевой
// db_guest - имя таблицы, содержащей сообщения, оставленные в гостевой
$sql="select * from db_guest where (name='$user')";
$result=mysql_query($sql);
// Находим кол-во записей, удовлетворяющих условию
$rows=mysql_num_rows($result);
echo "$user оставил в гостевой $rows записей.";
Но что делать, если искомый текст не занимает все поле, а является частью этого поля (например, при поиске слова или словосочетания в общем массиве текста)?
Например я использую следующую команду (наверно этот способ не самый лучщий, но тем не менее он работает):
// $search - содержит искомый тест
$sql="select * form db_guest where (locate('$search',content)>0)";
$result=mysql_query($sql);
Смысл такой: если кол-во вхождений строки $search в поле content больше 0 (т.е. оно вообще есть), то запись добавляется к остальным найденым записям.
Надо отметить, что указанный способ ищет текст с учетом регистра. Чтобы искать без учета регистра, можно воспользоваться следующей командой:
// $search - содержит искомый тест
$sql="select * form db_guest where (locate(lower('$search'),lower(content))>0)";
$result=mysql_query($sql);
т.е. искомая строка и запись в таблице переводится в верхний регистр и затем производится поиск.

Теперь представим, что у нас есть база сообщений гостевой книги, и нам надо отсортировать сообщения по времени, когда они были оставлены.

Для этого одно из полей таблицы базы должно содержать время записи сообщения.
Сортировка по какому-либо столбцу осуществляется при помощи конструкции order by.
В нашем случае, при учете, что более “свежие” сообщения будут сортироваться верхними:
// time - столбец, содержащий время написания записи
// в формате "UNIX timestamp"
$sql="SELECT * FROM db_guest ORDER BY data DESC";
$result=mysql_query($sql);
Т.е. данные были отсортированны по убыванию.
Если нам надо отсортировать данные по возростанию, надо вместо ключевого слова DESC применить ASC:
$sql="SELECT * FROM db_guest ORDER BY data ASC";
$result=mysql_query($sql);
Данные также можно отсортировать по нескольким столбцам. Для этого надо названия столбцов указать через запятую.
Это может пригодиться, например, если в столбце, по которому производится сортировка, есть несколько одинаковых значений.
$sql="SELECT * FROM db_name ORDER BY field1,field2 ASC";
$result=mysql_query($sql);
Сначало данные сортируются по первому столбцу field1. Затем, если в первом столбце есть несколько одинаковых значений, выполняется дополнительная сортировка по второму столбцу (внутри группы с одинаковыми значениями в первом столбце).

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

В этом параметре задается два значения:
LIMIT start,length
start - указывает, с какой позиции нужно выдавать найденные записи
length - кол-во записей

Например, нам нужно выбрать из базы данных гостевой книги записи начиная с 20 по 45 (т.е. чтоб вывести 25 записей):
$sql="select * from db_guest limit 20,25";
$result=mysql_query($sql);

Posted in Справочник по MySQL | No Comments »

Обновление записей в таблице(UPDATE)

Posted by writer on Июнь 7th, 2008

Обновление записи осуществляется командой UPDATE
UPDATE table_name SET field_name1=’var1′, field_name2=’var2′,… WHERE (выражение)
Данная команда для всех записей в таблице table_name, удовлетворяющих выражению выражение, устанавливает указанные поля field_nameN в значение varN.
Эту команду удобно применять, если не требуется обновлять не все поля какой-то записи, а нужно обновить только некоторые.

Допустим, у нас гостевая книга использует для хранения информации базу данных MySQL.
Таблица (с именем db_guest), содержащая данные об оставленных сообщениях, имеет следующую структуру:
id - поле содержит идентификационный уникальный номер записи;
name - поле содержит имя пользователя, оставившего сообщение;
mail - е-майл пользователя;
url - URL пользователя;
content - непосредственно, само сообщение.
Напишем сценарий (на PHP), который выводит всю базу данных оставленных сообщений и позволяет вносить изменения в оставленные сообщения:
Листинг файла guest_update.php
<html>
<head>
<title>Обновление записей гостевой книги.</title>
</head>
<body>
<?
// Подключаемся к базе данных
mysql_connect("localhost", "root", "");
mysql_select_db("test");

// Если мы уже нажимали кнопку изменения записи
if(@$submit_update) {
  // Обновляем выбранную запись
  $sql="update db_guest set name='$name', mail='$mail', url='$url', content='$content'
         where (id='$update')";
  mysql_query($sql);
};

// Заносим в переменную <I>$result</I> всю базу оставленных сообщений
$sql="select * from db_guest";
$result=mysql_query($sql);
// Узнаем кол-во записей в гостевой книге
$rows=mysql_num_rows($result);
echo "<table border=0 align=center>";
echo "<tr><td align=center><B>Имя</B></td>";
echo "<td align=center><B>Е-майл</B></td>";
echo "<td align=center><B>URL</B></td>";
echo "<td align=center><B>Сообщение</B></td>";
echo "<td align=center><B>Изменить</B></td></tr>";
for($i=0;$i<$rows;$i++) {
  // Устанавливаем курсор на соответствующую позицию
  mysql_data_seek($result,$i);
  // Записываем в ассоциативный массив <I>$arr_guest</I>
  // значения полей таблицы гостевой книги
  $arr_guest=mysql_fetch_array($result);
  echo "<form method=get action='guest_update.php'>";
  echo "<input type=hidden name='update' value='".$arr_guest["id"].”‘>”;
  echo “<tr>”;
  echo “<td><input type=text name=’name’ value=’”.$arr_guest["name"].”‘></td>”;
  echo “<td><input type=text name=’mail’ value=’”.$arr_guest["mail"].”‘></td>”;
  echo “<td><input type=text name=’url’ value=’”.$arr_guest["url"].”‘></td>”;
  echo “<td><textarea name=’content’>”.$arr_guest["content"].”</textarea></td>”;
  echo “<td><input type=submit name=’submit_update’ value=’Изменить’></td>”;
  echo “</tr>”;
  echo “</form>”;
};
echo “</table>”;
echo “</form>”;
?>
</body>
</html>

Posted in Справочник по MySQL | No Comments »

Удаление строк из таблицы (DELETE FROM)

Posted by writer on Июнь 7th, 2008

Удаление записи осуществляется командой DELETE FROM
DELETE FROM table_name WHERE (выражение)
Данная команда удаляет из таблицы table_name все записи, для которых выполнено выражение.
выражение - это просто логическое выражение.
Например нам надо удалить запись из таблицы, содержащей ФИО, адрес и телефон:
DELETE FROM tel_numb WHERE (fio='Вася Пупкин')
или, если надо удалить по нескольким параметрам
DELETE FROM tel_numb WHERE (fio='Вася Пупкин' && tel='23-45-45')
В выражении, помимо имен полей, констант и операторов, могут также встречаться простейшие вычисляемые части, например: (id<10+4*5).

Допустим, у нас гостевая книга использует для хранения информации базу данных MySQL.
Таблица (с именем db_guest), содержащая данные об оставленных сообщениях, имеет следующую структуру:
id - поле содержит идентификационный уникальный номер записи;
name - поле содержит имя пользователя, оставившего сообщение;
mail - е-майл пользователя;
url - URL пользователя;
content - непосредственно, само сообщение.
Напишем сценарий (на PHP), который выводит всю базу данных оставленных сообщений и позволяет удалить выбранное сообщение:
Листинг файла guest_delete.php
<html>
<head>
<title>Удаление записей гостевой книги.</title>
</head>
<body>
<?
// Подключаемся к базе данных
mysql_connect("localhost", "root", "");
mysql_select_db("test");

// Если мы уже нажимали кнопку удаления
if(@$del_radio) {
  // Удаляем выбранную запись
  $sql="delete from db_guest where (id='$del_radio')";
  mysql_query($sql);
};

// Заносим в переменную <I>$result</I> всю базу оставленных сообщений
$sql="select * from db_guest";
$result=mysql_query($sql);
// Узнаем кол-во записей в гостевой книге
$rows=mysql_num_rows($result);
echo "<form method=get action='guest_delete.php'>";
echo "<table border=0 align=center>";
echo "<tr><td align=center><B>Удалить</B></td>";
echo "<td align=center><B>Имя</B></td>";
echo "<td align=center><B>Е-майл</B></td>";
echo "<td align=center><B>URL</B></td>";
echo "<td align=center><B>Сообщение</B></td></tr>";
for($i=0;$i<$rows;$i++) {
  // Устанавливаем курсор на соответствующую позицию
  mysql_data_seek($result,$i);
  // Записываем в ассоциативный массив <I>$arr_guest</I>
  // значения полей таблицы гостевой книги
  $arr_guest=mysql_fetch_array($result);
  echo "<tr><td>";
  echo "<input type=radio name='del_radio' value='".$arr_guest["id"].”‘></td>”;
  echo “<td>”.$arr_guest["name"].”</td>”;
  echo “<td>”.$arr_guest["mail"].”</td>”;
  echo “<td>”.$arr_guest["url"].”</td>”;
  echo “<td>”.$arr_guest["content"].”</td></tr>”;
};
echo “<tr><td colspan=5 align=center>”;
echo “<input type=submit value=’Удалить’>”;
echo “</td></tr>”;
echo “</table>”;
echo “</form>”;
?>
</body>
</html>

Posted in Справочник по MySQL | No Comments »

Вставка строки в таблицу (INSERT INTO)

Posted by writer on Июнь 7th, 2008

Вставка записи осуществляется командой INSERT INTO
INSERT INTO table_name(field_name1, field_name2,…) values(’content1′, ‘content2′,…)
Данная команда добавляет в таблицу table_name запись, у которой поля, обозначеные как field_nameN, установлены в значение contentN.

Например, если мы создаем таблицу адресов и телефонов (ФИО, адрес, телефон), то надо записать следующий код:
CREATE TABLE tel_numb(fio text, address text, tel text)
Вставить в таблицу tel_numb значения можно так:
INSERT INTO tel_numb(fio, address, tel)
         values('Вася Пупкин', 'ул.Горького, д.18', '23-23-23')
Те поля, которые небыли перечислены в команде вставки, получают “неопределенные” значения (неопределенное значение - это не пустая строка, а просто признак, который говорит MySQL, что у данного поля нет никакого значения).
Надо отметить, что если при создании таблицы поле было отмечено флагом NOT NULL, и оно при вставке записи получило неопределенное значение, то MySQL возвратит ошибку.
При вставке в таблицу бинарных данных (или текстовых, содержащих апострофы и слеши) некоторые символы должны быть защищены обратными слешами, а именно, символы \, ‘ и символ с нулевым кодом.

Posted in Справочник по MySQL | No Comments »

Изменение свойство таблицы

Posted by writer on Июнь 7th, 2008

Изменение свойств таблицы : Переименование таблицы (ALTER TABLE RENAME)

Переименование таблицы можно сделать при помощи следующей конструкции:
ALTER TABLE table_name_old RENAME table_name_new

где

  • table_name_old - старое имя таблицы, которое нам нужно переименовать;
  • table_name_new - новое имя таблицы.
  • Допустим, нам нужно переименовать таблицу search в search_en:
    $sql="ALTER TABLE search RENAME search_en";
    mysql_query($sql);

    Изменение свойств таблицы : Вставка столбцов (ALTER TABLE ADD)

    Вставку нового столбца можно осуществить при помощи следующей конструкции:
    ALTER TABLE table_name ADD field_name parametrs
    где
  • table_name - имя таблицы, в которой будет вставлен новый столбец;
  • field_name - имя вставляемого столбца;
  • parametrs - параметры, описывающие вставляемый столбец.

    Обязательным параметром является указание типа данных.
    (Про возможные типы данных подробно написано в Создание и удаление таблицы).

    Например, нам надо вставить в таблицу my_frends столбец под названием adress_2, который будет содержать текстовые значения:

    $sql="ALTER TABLE my_frends ADD adress_2 TEXT";
    mysql_query($sql);
    По умолчанию новый столбец вставляется в конец таблицы.
    Если необходимо, чтобы столбец встал в начало таблицы, нужно после параметров вставляемого столбца написать ключевое слово FIRST:
    $sql="ALTER TABLE my_frends ADD adress_2 TEXT FIRST";
    mysql_query($sql);

    Теперь только что вставленный столбец окажется вначале таблицы.

    Если необходимо, чтобы столбец был вставлен не в начале таблицы, и не в конце, а после определенного столбца, то нужно применить ключевое слово AFTER имя столбца, после которого будет установлен новый столбец:

    $sql="ALTER TABLE my_frends ADD adress_2 TEXT AFTER adress_1";
    mysql_query($sql);

    В этом примере новый столбец adress_2 будет установлен после столбца adress_1.

    Если нужно дописать к таблице не один, а несколько столбцов, то для каждого столбца нужно ADD field_name parametrs записать через запятую:

    $sql="ALTER TABLE my_frends ADD adress_2 TEXT,
          ADD adress_3 TEXT, ADD adress_4 TEXT";
    mysql_query($sql);

    В случае, если надо дописать два столбца внутри таблицы, можно поступить следующим образом:

    $sql="ALTER TABLE my_frends ADD adress_2 TEXT AFTER adress_1,
          ADD adress_3 TEXT AFTER adress_2";
    mysql_query($sql);

    Т.е. мы первый вставляемый столбец записываем после adress_1, а второй после первого.


    Изменение свойств таблицы : Изменение свойств столбца (ALTER TABLE CHANGE)

    Изменить свойства одного или нескольких столбцов можно при помощи следующей конструкции:

    ALTER TABLE table_name CHANGE field_name_old field_name_new parametrs
    где
  • table_name - имя таблицы, в которой находится изменяемый столбец;
  • field_name_old - имя столбца изменяемого столбца;
  • field_name_new - новое имя изменяемого столбца (должно равняться field_name_old, если мы не хотим поменять имя столбца);
  • parametrs - новые параметры столбца.
  • В следующем примере установим тип строки field_1 как текст:

    $sql="ALTER TABLE my_table CHANGE field_1 field_1 TEXT";
    mysql_query($sql);
    А если необходимо при этом еще и переименовать столбец в field_2, то получиться так:

    $sql="ALTER TABLE my_table CHANGE field_1 field_2 TEXT";
    mysql_query($sql);

    В случае, если надо изменить свойства сразу нескольких столбцов, то конструкцию CHANGE field_name_old field_name_new parametrs повторяем через запятую для каждого столбца:

    $sql="ALTER TABLE my_table CHANGE field_1 field_2 TEXT,
          CHANGE field_3 field_3 TEXT";
    mysql_query($sql);

    Изменение свойств таблицы : Удаление столбцов (ALTER TABLE DROP)

    Удаление столбца можно сделать при помощи следующей конструкции:
    ALTER TABLE table_name DROP field_name

    где

  • table_name - имя таблицы, в которой будет удален столбец;
  • field_name - имя удаляемого столбца.
  • $sql="ALTER TABLE search DROP id_num";
    mysql_query($sql);
    Если мы хотим удалить сразу несколько полей, то надо через запятую повторить DROP field_name для каждого столбца:
    $sql="ALTER TABLE search DROP id_1, DROP id_2, DROP id_3";
    mysql_query($sql);

    Posted in Справочник по MySQL | No Comments »