<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Paritov&#039;s blog</title>
	<atom:link href="http://paritov.com/feed" rel="self" type="application/rss+xml" />
	<link>http://paritov.com</link>
	<description>Marat Paritov</description>
	<lastBuildDate>Sun, 31 Oct 2010 08:09:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Чат для локальной сети на jabber</title>
		<link>http://paritov.com/archives/49</link>
		<comments>http://paritov.com/archives/49#comments</comments>
		<pubDate>Sat, 30 Oct 2010 23:12:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Сети]]></category>

		<guid isPermaLink="false">http://paritov.com/?p=49</guid>
		<description><![CDATA[Эта статья написана для такого же как я человека, который впервые решил поставить подобный чат.
Назвал статью именно так, потому, что раньше искал в инете  решение именно по таким словам.
Когда то был моден мощный по тем временам проект Intranet Chat. Я тоже помнится все мечтал его где нить поставить. Чаты вообще были популярны. Но время шло [...]]]></description>
			<content:encoded><![CDATA[<p>Эта статья написана для такого же как я человека, который впервые решил поставить подобный чат.</p>
<p>Назвал статью именно так, потому, что раньше искал в инете  решение именно по таким словам.</p>
<p>Когда то был моден мощный по тем временам проект Intranet Chat. Я тоже помнится все мечтал его где нить поставить. Чаты вообще были популярны. Но время шло и все менялось, как вдруг я поступаю работать в большую контору с большим документооборотом и файло-информационным обменом и что же я там вижу в 2010-м году- Intranet Chat&#8230;</p>
<p>Ужастно устаревший. Совершенно страшный, но тем не менее как-то  все еще решающий вопросы (Респект автору!)</p>
<p>Чат для конторы принципиален. Просто жизненно важен! И вопрос решать таки пришлось. Не долго думая выбор пал на протокол XMPP. На что же еще&#8230;</p>
<p>И так что нужно для корпоративного чата?</p>
<p>1. Общие групы. то есть списки всех членов группы, которые будут появляться и автоматически изменяться у каждого пользователя. У вас же каждый сотрудник не станет сидеть и полчаса набивать себе в ростер остальных сотрудников <img src='http://paritov.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>2. Быстрая регистрация нового пользователя и желательно через веб-интерфейс.</p>
<p>3. Возможность отправки сообщений нескольким пользователям.</p>
<p>Сервер.</p>
<p>Попробовал разные. Openfire мне не понравится. Точнее понравился, но в тонкостях он не тащил. Ejabberd меня сначала напугал, но потом я его полюбил и выбрал для чата. Именно под корпоративный чат в нем есть все по дефолту. В частности бщие группы.</p>
<p>И так качаем ejabberd ставится с полпинка.</p>
<p>При установке спрашивает название сервера. Тут советую подумать сразу. Это не только сам хост но еще и часть любого жабберного логина. например chat.kontora.lo даст нам возможность создавать аккаунты типа name @chat.kontora.lo.</p>
<p>. А ДНС зона для этого хоста облегчит жизнь еще больше.</p>
<p>Запускаемся. Лезем в вебморду. Вот тут первое, на чем вспоткнулся-нужно писать логин в жабберном формате, то есть не admin а именно admin @chat.kontora.lo(ну естественно ваши данные)</p>
<p>Попадаем в интерфейс и видим что-то скромное и непонятное.</p>
<p>Так вот без особых заморочек сразу лезем в virtual hosts. Там видим наш только что созданный chat.kontora.lo и смело на него жмем. Увидите куда добавлять пользователей. Все просто логи пароль-аккант готов.</p>
<p>немного сложнее с общими группами.</p>
<p>Заходим в &laquo;общие группы&raquo;</p>
<p>Создаем группу например &laquo;Чат Нашей Конторы&raquo;</p>
<p>Затем заходим в нее и видим форму. В название пишем тоже самое &laquo;Чат Нашей Конторы&raquo;</p>
<p>Описание какой хотите. я пропустил.</p>
<p>Члены группы. ну тут понятно. копируем логины созданных напи пользователей и строчка за строчкой добавляем в группу тех кого там хотим видеть.</p>
<p>И наконец &laquo;Видимые группы&raquo;. Это те группы которые будут отображаться у членов ЭТОЙ группы в списке. Ну дял насала стоит добавить саму группу &laquo;Чат Нашей Конторы&raquo;. Иначе список вообще будет пуст. А дальше можете насоздавать еще групп и манипулировать ими как угодно.</p>
<p>Собственно все по серверу. Очень кратко и самая суть. Документации куча.</p>
<p>Клиент.</p>
<p>Теперь по клиентам.</p>
<p>Miranda и qip</p>
<p>Именно они умеют нормально соединяться разделяя хост написанный в логине и адрес сервера(ниже объясню)</p>
<p>Miranda штука интересная. НО ее долго собирать. Нужно прикрутить и настроить пару модулей, один для дизайна, второй для того что бы она умела рассылать сообщения нескольким контактам. При том вторую возможность еще нужно активировать  не только установкой модуля но еще и дополнительной  галкой в настройках. В общем qip.</p>
<p>qip для корпоратива я сделал хитрый. Во первых при установке я выбрал пункт, что бы он сохранял все в папке qip. Во вторых я создал ярлык для запуска кипа и дописал туда кличик /isolated. Это дало возмодность запускать кип без регистрации на его сервере с чистым локальным аккаунтов. ну и переименовал сам qip.exe в qipbin.exe чтобы не запутать юзера что именно тыкать дял запуска.</p>
<p>Теперь при запуске можно просто создать учетку и скопировать папку на любой комп. То есть вы можете создать аккаунт а сервере, вбить его в кип и отдать папку пользователю сказав чтобы ткнул ссылку. А ну и еще не забудьте прописывать НИКи. Вы же не хотите что бы список контактов состоял из логинов с собаками.</p>
<p>Вот как бы и все. Теперь пользователь подключившись получит полный ростер который вы можете настраивать и изменять централизовано на сервере. А если захочет то может пользоваться и другими плюшками типа асек и контактов не запуская кучу клиентов.</p>
<p>Статья сыровата. Потихоньку буду пополнять тонкостями. По ходу обкатки моего чата&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://paritov.com/archives/49/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FTP-почта для виндовой сети при помощи FileZilla</title>
		<link>http://paritov.com/archives/37</link>
		<comments>http://paritov.com/archives/37#comments</comments>
		<pubDate>Sun, 04 Jul 2010 12:08:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Сети]]></category>

		<guid isPermaLink="false">http://paritov.com/?p=37</guid>
		<description><![CDATA[На новой работе завели привычку обмениваться файлОм с организациями в районах при помощи шар. На нашей стороне значит стоит виндовый &#171;сервак&#187;(свалка), на котором расшарена папка, в папке куча папок для районов. В районах есть доступ к этому серваку по впн. и право записи в папку. B самое обидное-шары везде монтируются как диски. То есть autorun [...]]]></description>
			<content:encoded><![CDATA[<p>На новой работе завели привычку обмениваться файлОм с организациями в районах при помощи шар. На нашей стороне значит стоит виндовый &laquo;сервак&raquo;(свалка), на котором расшарена папка, в папке куча папок для районов. В районах есть доступ к этому серваку по впн. и право записи в папку. B самое обидное-шары везде монтируются как диски. То есть autorun чувствует себя очень даже в шоколаде. Ну вот из за обильного количества вирусов приходящих из районов сказали мне перетащить файлообмен(точнее почту, они так ее называют) на FTP.</p>
<p>Ок, собственно сам понимал, что надо.</p>
<p>Возможно правильнее было бы поднять почтовый сервер,  imap протокол и все такое. Я не знаю. У них свои тонкости в которые я пока не въехал.</p>
<p>Естественно я сразу полез в IIS. Для меня старого заядлого фряшника, на разборку с родным виндовым ftp-сервером ушло пол дня. Офигеть вообще. Но самое прикольное было, что после того, как я его таки поставил и запустил, вдруг, выяснилось что он не умеет сам ограничивать разрешения. Только средствами файловой системы. То есть да я создаю в винде пользователя и да я на каждую папку даю ему права. Твоюжежьмедь&#8230; Ну собствено ничего нормального от микрософта никогда и не ожидалось&#8230; пришлось снести&#8230;</p>
<p>Полез по софту. И сразу же наскочил на маленький простой, шустрый, а главное совершенно бсплатный FileZilla &#8211; сервер.</p>
<p>Который ставится, как обычная программа в полпинка, на котором создаются свои пользователи у которого есть алиасы для папок и который расшаривая пользователю папку простым выставлением галок дает те или иные права на уровне самой проги.</p>
<p>На сервере для пользователей организации есть папка &laquo;почта для районов&raquo;</p>
<p>______________________</p>
<p>почта для районов-</p>
<p>&#8211;Входящие 1 Район</p>
<p>&#8211;Входящие 2 Район</p>
<p>&#8211;Входящие 3 Район</p>
<p>&#8211;Исходящие 1 Район</p>
<p>&#8211;Исходящие 2 Район</p>
<p>&#8211;Исходящие 3 Район</p>
<p>_______________________</p>
<p>То есть массовая рассылка какого ни будь документа, сводится к копированию этого документа в каждую папку &laquo;Исходящие&raquo;.</p>
<p>Ну а забирают соответственно из &laquo;Входящих&raquo;. Так им удобно и привычно.</p>
<p>Но со стороны районов структура папок должна быть другая. Там при входе на FTP должны появляться две папки &laquo;Входящие&raquo; и &laquo;Исходящие&raquo;. Стало быть, папка которая для организации зовется &laquo;Входящая&raquo;, на стороне района называется &laquo;Исходящая&raquo;, ну и наоборот.</p>
<p>Долго думал, как это сделать и вот что придумал.</p>
<p>Ставим FileZilla. Запускаем админку. Создаем в ней пользователя raion1.</p>

<a href="http://paritov.com/wp-content/gallery/filezilla/1.jpg" title="" class="shutterset_singlepic1" >
	<img class="ngg-singlepic" src="http://paritov.com/wp-content/gallery/cache/1__320x240_1.jpg" alt="1" title="1" />
</a>

<p>Естественно задаем ему пароль</p>

<a href="http://paritov.com/wp-content/gallery/filezilla/2.jpg" title="" class="shutterset_singlepic2" >
	<img class="ngg-singlepic" src="http://paritov.com/wp-content/gallery/cache/2__320x240_2.jpg" alt="2" title="2" />
</a>

<p>Теперь создаем пустую папку, например ftp_tmp.</p>
<p>Дело в том, что у каждого пользователя должна быть домашняя папка, в которую он попадает по умолчанию. При том внутри должно быть пусто! Потому, что там наш пользователь должен будет увидеть в ней  то что мы захотим, а не то, что там уже есть. Одной такой пустой папки хватит на всех пользователей.</p>
<p>создали где нибудь пустую папку и папку с реальными папками с файлами.</p>

<a href="http://paritov.com/wp-content/gallery/filezilla/3.jpg" title="" class="shutterset_singlepic3" >
	<img class="ngg-singlepic" src="http://paritov.com/wp-content/gallery/cache/3__320x240_3.jpg" alt="3" title="3" />
</a>

<p>Структура реальных папок может быть такой какая вам удобна. У меня приблизительно так. То есть все лежит в одной папке &laquo;Почта..&raquo;.</p>

<a href="http://paritov.com/wp-content/gallery/filezilla/4.jpg" title="" class="shutterset_singlepic4" >
	<img class="ngg-singlepic" src="http://paritov.com/wp-content/gallery/cache/4__320x240_4.jpg" alt="4" title="4" />
</a>

<p>Теперь можно подключать. начиная с Home directory. В Shared folders у настраиваемого пользователя, нажимаем add и добавляем нашу временную пустую папку.</p>

<a href="http://paritov.com/wp-content/gallery/filezilla/5.jpg" title="" class="shutterset_singlepic5" >
	<img class="ngg-singlepic" src="http://paritov.com/wp-content/gallery/cache/5__320x240_5.jpg" alt="5" title="5" />
</a>

<p>Она становится &laquo;H&raquo; то есть домашней.</p>
<p>Потом добавляем наши две папки &laquo;Входящие&raquo; и &laquo;Исходящие&raquo;&#8230; И нам совершенно все равно где они находятся. Главное что бы это были именно папки этого района(ну у вас может быть отдел, подразделение и что угодно, понятно&#8230; Статья не на дурака и даже не на новичка, так что в такие вещи я тут не углубляюсь.) Добавляем и получаем следующее. Да и не забываем для папки &laquo;Входящие выставить нужные разрешения, на запись и прочее. Я например дал все&#8230; Туда же они будут скидывать файло&#8230;</p>

<a href="http://paritov.com/wp-content/gallery/filezilla/6.jpg" title="" class="shutterset_singlepic6" >
	<img class="ngg-singlepic" src="http://paritov.com/wp-content/gallery/cache/6__320x240_6.jpg" alt="6" title="6" />
</a>

<p>Если мы остановимся сейчас, то юзер raion1 попав на фтп увидит пустой лист. да у него есть доступ к еще двум папкам, но он увидит только пустую домашнюю, прав на запись в которую у него конечно нет.</p>
<p>И вот самое интересное, теперь мы создаем алиясы &laquo;aliases&raquo; то есть виртуальные папки, в домашней папке пользователя.</p>
<p>Alias это папка от корня. Корень это домашняя директория. То есть если мы напишем &laquo;/папка&raquo; то в домашней директории появится &laquo;папка&raquo;. Супер. Нажимаем, правой кнопкой на только, что расшаренную папку &laquo;Входящие&raquo; и выбираем &laquo;edit aliases&raquo;</p>

<a href="http://paritov.com/wp-content/gallery/filezilla/7.jpg" title="" class="shutterset_singlepic7" >
	<img class="ngg-singlepic" src="http://paritov.com/wp-content/gallery/cache/7__320x240_7.jpg" alt="7" title="7" />
</a>

<p>И как же мы назовем виртуальную папку, которая будет на ТОЙ стороне и в которую ОНИ будут писать, а мы тут из нее забирать? Конечно же &laquo;Исходящие&raquo;.  Унас она входящие , а у них исходящие.</p>

<a href="http://paritov.com/wp-content/gallery/filezilla/8.jpg" title="" class="shutterset_singlepic8" >
	<img class="ngg-singlepic" src="http://paritov.com/wp-content/gallery/cache/8__320x240_8.jpg" alt="8" title="8" />
</a>

<p>(права как видите на эту папку я им даю все, это уже решать вам)</p>
<p>И вот что мы в итоге имеем</p>

<a href="http://paritov.com/wp-content/gallery/filezilla/9.jpg" title="" class="shutterset_singlepic9" >
	<img class="ngg-singlepic" src="http://paritov.com/wp-content/gallery/cache/9__320x240_9.jpg" alt="9" title="9" />
</a>

<p>Нажимаем &laquo;ОК&raquo;. Сервер сохраняется и запускает конфиг. Так повторяем с каждым пользователем. Потом конечно проверяем все это. И кайфуем <img src='http://paritov.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://paritov.com/archives/37/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сериал Школа</title>
		<link>http://paritov.com/archives/33</link>
		<comments>http://paritov.com/archives/33#comments</comments>
		<pubDate>Wed, 26 May 2010 10:18:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Из жизни]]></category>

		<guid isPermaLink="false">http://paritov.com/?p=33</guid>
		<description><![CDATA[Тут все коротко, просто хочется отписаться в блоге.
Первую половину смотрел урывками. И тут дело в ряде причин. Одна нехватка времени, вторая нелюбовь в подросткам и всему, что с ними связано. Проработав несколько лет преподавателем первых курсов, да и общавшись с этим контингентом по жизни, я пытаюсь избегать их по мере возможности. Но концовку я таки [...]]]></description>
			<content:encoded><![CDATA[<p>Тут все коротко, просто хочется отписаться в блоге.</p>
<p>Первую половину смотрел урывками. И тут дело в ряде причин. Одна нехватка времени, вторая нелюбовь в подросткам и всему, что с ними связано. Проработав несколько лет преподавателем первых курсов, да и общавшись с этим контингентом по жизни, я пытаюсь избегать их по мере возможности. Но концовку я таки досмотрел. Почему? Меня зацепило просто безумное качество исполнения сериала. То как это кино сделано имеет мало аналогов. Режиссеру большой респект. Да на самом деле подростки такие и есть, за очень редким исключением. Правильно сделали, что перенесли его на позднее время, дабы небыло кумиров и подражателей, но взрослым можно и нужно посмотреть.</p>
<p>Посмотреть на людей, у которых есть физическая сила, интеллект, море энергии, но совершенно нет ответственности перед обществом. Просто потому, что они все еще считаются детьми. И нянчатся с ними еще как с детьми. хотя еще 100 лет назад они были бы семейными людьми, с соответствующими проблемами и заботами и им было бы не до пьянок и гулянок. Но цивилизация берет свое. В  искусственно отсекая подобную биомассу от возможности многократного размножения.</p>
<p>Любой человек хочет быть важным и значимым. Для этого нужна ответственность. человек должен за что-то отвечать. Подростки же просто проживают время и хорошо если безобидно. И если потом получают настоящий объект ответственности вроде семьи или работы, а не выдумывают левый искусственный&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://paritov.com/archives/33/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Мальчик, который предсказал войну</title>
		<link>http://paritov.com/archives/29</link>
		<comments>http://paritov.com/archives/29#comments</comments>
		<pubDate>Wed, 26 May 2010 10:00:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Из жизни]]></category>

		<guid isPermaLink="false">http://paritov.com/?p=29</guid>
		<description><![CDATA[На днях в аське меня спрашивают, слышал ли я, что либо об этом, и что вообще происходит в городе.
Я естественно не сном не духом, лезу на местный форум, начинаю выяснять. И выясняются следующие подробности.
Оказывается, по двум или трем республикам прошел, при том молниеносно, слух, что в Нальчике в одном и роддомов появился на свет младенец, [...]]]></description>
			<content:encoded><![CDATA[<p>На днях в аське меня спрашивают, слышал ли я, что либо об этом, и что вообще происходит в городе.</p>
<p>Я естественно не сном не духом, лезу на местный форум, начинаю выяснять. И выясняются следующие подробности.</p>
<p>Оказывается, по двум или трем республикам прошел, при том молниеносно, слух, что в Нальчике в одном и роддомов появился на свет младенец, произнес на кабардинском языке фразу &laquo;пусть все у кого мужчины в доме жарят лакумы, приближается большая беда&raquo; и умер&#8230;</p>
<p>Да да именно так&#8230; родился сказал и умер&#8230;</p>
<p>Вам уже смешно? Так вот, три республики в течении нескольких часов начали жарить эти самые лакумы. (Для справки лакум это &#8211; национальное адыгское блюдо, что-то вроде лепешки, хлеба, очень часто ритуальное). И половина сельского населения республик до 3-х утра, а кто и весь следующий день их жарило сотнями и разносило и раздавали людям и сами ели. И можно было бы все списать на &laquo;сельскость&raquo; произошедшего если бы не пару &laquo;НО&raquo;:</p>
<p>Во первых, нельзя просто так одной сплетней сказанной в одном месте устроить такой массированный информационный слив, когда за пару часов &laquo;на дыбы&raquo; встало три республики в которых проживают адыги(черкесы). Для таких веще нужна целенаправленная работа. Группа людей должна в транспорте и в общественных местах &laquo;распускать слухи&raquo;. Иначе все забудется моментально.</p>
<p>Во вторых, подобная информационная атака на измученное травлей и террактами население, да еще и перед перевыборами местных руководящих органов, говорит сама за себя.</p>
<p>В третьих, очень показательно, в каком напряжении находится наше измученное население, так остро реагирующие на заведомую утку. Ну еще бы оно не было в таком состоянии если кругом диверсии и перестрелки, а из центральных каналов, только и слышно &laquo;бей кавказцев!&raquo;. То есть человека обрекают пребывать среди радикалов и экстремистов, не давая ему возможности уехать в более спокойную местность России, угрожая фашистами, нацистами, милицией и прочим. То есть все что можно это сгнить в своем болоте.</p>
<p>Порадовала только большая организованность и сплоченность народа, информация разлетелась моментально, все всех предупредили и отреагировали молниеносно. Пусть это нездоровая реакция, пусть обостренная, но рефлексы все еще работают.</p>
<p>Что касается самой утки, то она не нова&#8230; Он а уже отрабатывалась и в Казахстане и даже в Израиле в различных интерпретациях(смотрел в сети аналоги). Ведь ребенок говорящий в колыбели это давно распиаренная тема, почему бы не воспользоваться, да еще прикрутить туда легенду об избавлении из &laquo;Исхода&raquo;.</p>
<p>В общем, вот так и живем. Нас травят, взрывают, ненавидят и все только потому, что мы есть и  все еще не сломались.</p>
<p>Когда кавказцам начали предъявлять, что они танцуют свою лезгинку, можно ыбло делать выводы сразу. Понимаете ТАНЦЫ предъявляют. УЖЕ И ТАНЦЫ.</p>
<p>Я не знаю, что делать мне, кавказцу, человеку думающему и говорящему только на русском языке, пропитанному обеими культурами. Я везде чужой и мне от этого не по себе&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://paritov.com/archives/29/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Applet resize on window resize. Изменение размера апплета вместе с окном</title>
		<link>http://paritov.com/archives/23</link>
		<comments>http://paritov.com/archives/23#comments</comments>
		<pubDate>Sun, 16 May 2010 01:51:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://paritov.com/?p=23</guid>
		<description><![CDATA[Столкнулся с такой вот задачкой.
Нужно было, чтобы апплет был во все окно и при увеличении окна тоже увеличивался.
Вроди бы просто, если не учитывать особенности браузеров. Но благо есть jquery
&#60;html&#62;
    &#60;head&#62;
    &#60;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&#62;
 
    &#60;title&#62;Insert title here&#60;/title&#62;
    &#60;style type="text/css"&#62;
    [...]]]></description>
			<content:encoded><![CDATA[<p>Столкнулся с такой вот задачкой.<br />
Нужно было, чтобы апплет был во все окно и при увеличении окна тоже увеличивался.<br />
Вроди бы просто, если не учитывать особенности браузеров. Но благо есть jquery</p>
<pre><span style="color: #000000;">&lt;html&gt;</span></pre>
<pre><span style="color: #000000;">    &lt;head&gt;</span></pre>
<pre><span style="color: #000000;">    &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;</span></pre>
<p><span style="color: #808080;"> </span></p>
<pre><span style="color: #000000;">    &lt;title&gt;Insert title here&lt;/title&gt;</span></pre>
<pre><span style="color: #000000;">    &lt;style type="text/css"&gt;</span></pre>
<pre><span style="color: #000000;">      body {</span></pre>
<pre><span style="color: #000000;">         font: 12px arial,verdana,sans-serif;</span></pre>
<pre><span style="color: #000000;">         padding:0px;</span></pre>
<pre><span style="color: #000000;">         margin:0px;</span></pre>
<pre><span style="color: #000000;">         background: #E7E7E7; </span></pre>
<pre><span style="color: #000000;">      }</span></pre>
<pre><span style="color: #000000;">   &lt;/style&gt;</span></pre>
<pre><span style="color: #000000;">   &lt;script language="JavaScript" src="jquery-1.3.2.min.js"&gt;&lt;/script&gt;</span></pre>
<pre><span style="color: #000000;">   &lt;script&gt;</span></pre>
<pre><span style="color: #000000;">      $(function(){</span></pre>
<pre><span style="color: #000000;">         resizeApplet();</span></pre>
<pre><span style="color: #000000;">      });</span></pre>
<pre><span style="color: #000000;">      $(window).resize(function() {</span></pre>
<pre><span style="color: #000000;">          resizeApplet();</span></pre>
<pre><span style="color: #000000;">      });</span></pre>
<pre><span style="color: #000000;">       function resizeApplet() {</span></pre>
<pre><span style="color: #000000;">          $("#MainJApplet").width($(document).width()-20);</span></pre>
<pre><span style="color: #000000;">          $("#MainJApplet").height($(document).height()-20);</span></pre>
<pre><span style="color: #000000;">       }</span></pre>
<pre><span style="color: #000000;">     &lt;/script&gt;</span></pre>
<pre><span style="color: #000000;">    &lt;/head&gt;</span></pre>
<pre><span style="color: #000000;">  &lt;body&gt;</span></pre>
<pre><span style="color: #000000;">    &lt;center&gt;</span></pre>
<pre><span style="color: #000000;">     &lt;applet width='800' height='600' id='MainJApplet'  code='MainJApplet'  archive='MainJApplet.jar'&gt;&lt;/applet&gt;</span></pre>
<pre><span style="color: #000000;">    &lt;/center&gt;</span></pre>
<pre><span style="color: #000000;">  &lt;/body&gt;</span></pre>
<pre><span style="color: #000000;">&lt;/html&gt;</span></pre>
<p><code> </code></p>
<p>&laquo;-20&#8243;  это из-за скролов в ИЕ. Иначе при изменении размера апплет залазит на полосы прокрутки. Там и 15-ть хватит, но я решил не жадничать. <img src='http://paritov.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>В принципе это можно применить к любым элементам, а не только к апплетам&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://paritov.com/archives/23/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>работа со &#171;слоями&#187; и обращение через вызывающий класс</title>
		<link>http://paritov.com/archives/17</link>
		<comments>http://paritov.com/archives/17#comments</comments>
		<pubDate>Sun, 16 May 2010 01:22:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://paritov.com/?p=17</guid>
		<description><![CDATA[Сразу небольшое уточнение!
Java я занялся меньше 10-ти дней назад, по этому все, что тут будет написано не претендует вообще ни на, что. Это просто запись в моем блоге, на моей личной страничке, которая может быть кого-то на, что-то натолкнет.
И так была у меня следующая задача-апплет. При запуске появляется логинка, при удачной авторизации логинка пропадает и [...]]]></description>
			<content:encoded><![CDATA[<p>Сразу небольшое уточнение!</p>
<p><em>Java я занялся меньше 10-ти дней назад, по этому все, что тут будет написано не претендует вообще ни на, что. Это просто запись в моем блоге, на моей личной страничке, которая может быть кого-то на, что-то натолкнет.</em></p>
<p>И так была у меня следующая задача-апплет. При запуске появляется логинка, при удачной авторизации логинка пропадает и появляется новая панель с таблицами и прочим. Соответственно логинка и вторая панель были нарисованы быстро. Был разработан код, подключен XML возвращаемый на POST-запрос к серверу и обработка ответа. Ну в яве я неделю, а вообще в IT лет-т 10-ть <img src='http://paritov.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  И вот тут встала задача что бы при удачной авторизации логинка пропала и появились таблицы. Апплет тогда состоял из 4-х файлов(классов)</p>
<p>MainJApplet.java -запускалка</p>
<p>MainJPanel.java - панель с основным интерфейсом(таблицы, чекбоксы и прочее)</p>
<p>LoginJPanel.java - панель с формой ля входа(два поля и кнопка)</p>
<p>Functions.java - класс в котором были собраны основные функции программы</p>
<p>Промаявшись сутки с поиском удобного мне решения, я нашел такую фишку как CardLayout. Именно этот контейнер позволил мне на одну панель апплета поместить опе панели MainJPanel и LoginJPanel именно так как карты лежат в колоде именно слоями. (тут стоить сделать небольшое отступление, работал я в netbeans. Кинул в апплет первую панель, а затем в тоже место вторую. и вторая стала принадлежать первой. Я е просто слева в инспекторе перетащил мышкой в апплет).<br />
и так у меня получилось в MainJApplet.java</p>
<p><code><br />
public class MainJApplet extends javax.swing.JApplet {</p>
<p>    /** Initializes the applet MainJApplet */<br />
        MainJPanel mainP = new MainJPanel();<br />
        LoginJPanel loginP = new LoginJPanel();</p>
<p>    public MainJApplet () {<br />
        super();<br />
    }</p>
<p>    public void init() {<br />
        initComponents();<br />
        this.setSize(300, 200);<br />
        cardPanel1.add(mainP);<br />
        cardPanel2.add(loginP);</p>
<p>        cardPanel1.setVisible(true);<br />
        cardPanel2.setVisible(true);</p>
<p>        loginP.setVisible(true);<br />
        mainP.setVisible(false);</p>
<p>    }</p>
<p>    // <editor-fold defaultstate="collapsed" desc="Generated Code"><br />
    private void initComponents() {</p>
<p>        cardPanel1 = new javax.swing.JPanel();<br />
        cardPanel2 = new javax.swing.JPanel();</p>
<p>        getContentPane().setLayout(new java.awt.CardLayout());</p>
<p>        cardPanel1.setLayout(new java.awt.GridLayout());<br />
        getContentPane().add(cardPanel1, "card2");</p>
<p>        cardPanel2.setLayout(new java.awt.GridLayout());<br />
        getContentPane().add(cardPanel2, "card3");<br />
    }// </editor-fold>                        </p>
<p>    // Variables declaration - do not modify<br />
    private javax.swing.JPanel cardPanel1;<br />
    private javax.swing.JPanel cardPanel2;<br />
    // End of variables declaration                   </p>
<p>}<br />
</code></p>
<p>тепер надо заставить все это шевелиться. Вот тут мне долго пришлось искать как из MainJPanel обратиться в MainJApplet<br />
и поменять видимости панелей после авторизации. Снова погуглив и почитав пару способов я решил передать ссылку на вызывающий класс в вызываемый. Но как имено передать ее и забрать в Java я не знал. Для меня ясно было только, что нужно использовать <strong>this</strong>.</p>
<p><code>LoginJPanel loginP = new LoginJPanel(this);</code></p>
<p>еще немного пошерстив я нашел и как правильно ее забрать в вызываемом классе и тут все очнь прекрасно состыковалось. Я даже не рассчитывал на такой выхлоп. Забираю я ее так:</p>
<p><code><br />
public class LoginJPanel extends javax.swing.JPanel {</p>
<p>    MainJApplet applet;</p>
<p>    public LoginJPanel(MainJApplet a) {</p>
<p>        initComponents();<br />
        applet=a;</p>
<p>.....</p>
<p></code></p>
<p>на сколько все просто и логично. В Qt есть слоты и сигналы, во флеше target.parent.perent&#8230;<br />
Как мне сказал один флешер на соответствующем форуме &laquo;но ведь тогда солдат управляет генералом&raquo; (имея ввиду что вызываемый класс должен возвращать что-то, но не вызывать в вызывающем метод). Ну на это мне трудно было возразить, все что я мог сказать это то что &laquo;мы не на войне, тут нет солдатов и генералов&raquo;. И управляем мы не вызывающей функцией, а как вы видете всего лишь <strong>через</strong> вызывающую функцию. Так, что военных просьба не беспокоиться-субординация соблюдена <img src='http://paritov.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .<br />
И так что я в итоге имею.</p>
<p>MainJApplet.java:</p>
<p><code><br />
public class MainJApplet extends javax.swing.JApplet {</p>
<p>    /** Initializes the applet MainJApplet */</p>
<p>        MainJPanel mainP = new MainJPanel(this);<br />
        LoginJPanel loginP = new LoginJPanel(this);<br />
        Functions functions = new Functions(); //подключаю свои функции.</p>
<p>    public MainJApplet () {<br />
        super();<br />
    }<br />
    @Override<br />
    public void init() {<br />
        initComponents();<br />
        this.setSize(300, 200);<br />
        cardPanel1.add(mainP);<br />
        cardPanel2.add(loginP);</p>
<p>        cardPanel1.setVisible(true);<br />
        cardPanel2.setVisible(true);</p>
<p>        loginP.setVisible(true);<br />
        mainP.setVisible(false);</p>
<p>    }</p>
<p>    @SuppressWarnings("unchecked")<br />
    // <editor-fold defaultstate="collapsed" desc="Generated Code"><br />
    private void initComponents() {</p>
<p>        cardPanel1 = new javax.swing.JPanel();<br />
        cardPanel2 = new javax.swing.JPanel();</p>
<p>        getContentPane().setLayout(new java.awt.CardLayout());</p>
<p>        cardPanel1.setLayout(new java.awt.GridLayout());<br />
        getContentPane().add(cardPanel1, "card2");</p>
<p>        cardPanel2.setLayout(new java.awt.GridLayout());<br />
        getContentPane().add(cardPanel2, "card3");<br />
    }// </editor-fold>                        </p>
<p>    // Variables declaration - do not modify<br />
    private javax.swing.JPanel cardPanel1;<br />
    private javax.swing.JPanel cardPanel2;<br />
    // End of variables declaration                   </p>
<p>}<br />
</code></p>
<p>и к примеру кусок LoginJPanel.java:</p>
<p><code><br />
public class LoginJPanel extends javax.swing.JPanel {</p>
<p>    Functions functions = new Functions();<br />
    MainJApplet applet;</p>
<p>    public LoginJPanel(MainJApplet a) {</p>
<p>        initComponents();<br />
        applet=a;</p>
<p>    }<br />
...... тут все сильно поскипано но суть ясна...</p>
<p> private void enterButtonMousePressed(java.awt.event.MouseEvent evt) {            //тоже поскипано<br />
             this.setVisible(false);<br />
            applet.mainP.setVisible(true);<br />
    }<br />
</code></p>
<p>и я получаю отличную прозрачность. через <strong>applet</strong> я могу получить доступ в любой другой класс а главное к функциям и переменным в Functions.</p>
<p>Вот такая вот недельная работка, ну если не учитывать время на рисование интерфейсов и подключение XML то не недельная а двухдневная.<br />
Может кому при<del>к</del>годиться</p>
]]></content:encoded>
			<wfw:commentRss>http://paritov.com/archives/17/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Мегафон.ру</title>
		<link>http://paritov.com/archives/10</link>
		<comments>http://paritov.com/archives/10#comments</comments>
		<pubDate>Wed, 12 May 2010 13:35:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Из жизни]]></category>

		<guid isPermaLink="false">http://paritov.com/?p=10</guid>
		<description><![CDATA[Получай чайчас смс-ку, думаю как и многие миллионы других пользователей.
Содержание следующее:
Сенсация! Мегафон начинает уникальную акцию, главный приз 1200 тыс.руб. ! Включайся сейчас *701# Клик=9 руб.
Подр. на megafon.ru
Зачем мне взрослому человеку, предлагают за 9 рублей подр. на мегафон ?
Весна&#8230;
]]></description>
			<content:encoded><![CDATA[<p>Получай чайчас смс-ку, думаю как и многие миллионы других пользователей.</p>
<p>Содержание следующее:</p>
<p><strong>Сенсация! Мегафон начинает уникальную акцию, главный приз 1200 тыс.руб. ! Включайся сейчас *701# Клик=9 руб.</strong></p>
<p><strong>Подр. на megafon.ru</strong></p>
<p>Зачем мне взрослому человеку, предлагают за 9 рублей подр. на мегафон ?</p>
<p>Весна&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://paritov.com/archives/10/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

