<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Галактика знакомств, чат galaxy, скачать галактику</title>
		<link>http://mobstudio.moy.su/</link>
		<description>Форум</description>
		<lastBuildDate>Fri, 17 Jul 2015 01:13:17 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://mobstudio.moy.su/forum/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Быстрый старт – программируем на Go под Windows — настройка</title>
			<link>https://mobstudio.moy.su/forum/58-320-1</link>
			<pubDate>Fri, 17 Jul 2015 01:13:17 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://mobstudio.moy.su/forum/58&quot;&gt;Другие языки&lt;/a&gt;&lt;br /&gt;Описание темы: Быстрый старт – программируем на Go под Windows — настройка&lt;br /&gt;Автор темы: Hacker&lt;br /&gt;Автор последнего сообщения: xkiller46&lt;br /&gt;Количество ответов: 1</description>
			<content:encoded>Если кто не знает, Go (http://www.golang.org) – компилируемый язык программирования, разрабатываемый несколькими парнями из Google. Как и все хочет быть «лучше чем C». Полностью open-source. Языку недавно исполнилось 2 года и в марте 2012 планируется первый major релиз. Меня язык заинтересовал своей простотой и необычным подходом к ООП и многопоточности. Захотелось попробовать. Но будучи виндузятником и разбалованный платформой .Net, C# и Visual Studio мне было трудно именно начать. Хотя на самом деле это оказалось совсем просто, и достаточно быстро я настроил себе удобный Environment, состоящий, по сути, из IDE с подобием IntelliSense. О том, как это сделать за 15 минут я и хотел бы рассказать. &lt;br /&gt;&lt;br /&gt; Установка Go &lt;br /&gt;&lt;br /&gt; Windows сборки Go можно скачать по ссылке &lt;a class=&quot;link&quot; target=&quot;_blank&quot; href=&quot;http://u.to/nXsHAg&quot; title=&quot;http://code.google.com/p/gomingw/downloads/list.&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/p/gomingw/downloads/list.&lt;/a&gt; Нам понадобится release installer для архитектуры 386 (даже если у вас Win x64). На момент написания, последний релиз – gowin386_release.r60.3_installer.exe. Скачиваем, устанавливаем. Теперь Go живет в C:&amp;#92;Go. Инсталлятор сам настроит нужные переменные среды. &lt;br /&gt;&lt;br /&gt; Установка IDE &lt;br /&gt;&lt;br /&gt; Перепробовав много различных редакторов текста и IDE я остановил свой выбор на GoLangIDE ( &lt;a class=&quot;link&quot; target=&quot;_blank&quot; href=&quot;http://u.to/mXsHAg&quot; title=&quot;http://code.google.com/p/golangide/&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/p/golangide/&lt;/a&gt; ). Она очень легковесная, т.е. можно просто открыть file.go и скомпилировать его; можно открыть makefile и она откроет его как «проект» — подцепит все связанные *.go файлы, при компиляции будет использован этот makefile. Для debug’а в мире Go используют gdb, эта IDE интегрируется с gdb – можно ставить breakpoint’ы, просматривать значения локальных переменных. &lt;br /&gt; В общем, скачиваем и распаковываем в C:&amp;#92;Go. Запускаем C:&amp;#92;Go&amp;#92;liteide&amp;#92;bin&amp;#92;liteide.exe. Полу-русский язык советую сразу сменить на английский: Вид -&gt; Options, меняем яызк на English, “Применить”, надо перезапустить IDE. &lt;br /&gt;&lt;br /&gt; Установка Gocode (местный IntelliSense) &lt;br /&gt;&lt;br /&gt; Скачиваем утилиту Gocode.exe отсюда: &lt;a class=&quot;link&quot; target=&quot;_blank&quot; href=&quot;http://u.to/mHsHAg&quot; title=&quot;http://code.google.com/p/goclipse/downl&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/p/goclipse/downl&lt;/a&gt; ... p&amp;can=2&amp;q=. Gocode.exe из архива помещаем в C:&amp;#92;Go&amp;#92;bin. Проверяем что gocode работает: Пуск -&gt; cmd -&gt; gocode status. Видим в консоли: &lt;br /&gt; &lt;img src=&quot;http://www.mobstudio.net/kartinki/777a43e3.png&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt;&lt;br /&gt; Значит все ОК. &lt;br /&gt; Пробуем в IDE, предварительно перезапустив ее. File -&gt; New -&gt; Go Source File -&gt; test.go. Пишем fmt, ставим точку – видим выпадающий список функций. &lt;br /&gt;&lt;br /&gt; &lt;img src=&quot;http://www.mobstudio.net/kartinki/1f1a20ac.png&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt;&lt;br /&gt; Выбираем функцию, жмем Tab – видим по центру экрана сигнатуру функции &lt;br /&gt;&lt;br /&gt; &lt;img src=&quot;http://www.mobstudio.net/kartinki/4650e02b.png&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt;&lt;br /&gt; Вот собственно и все. &lt;br /&gt;&lt;br /&gt; Что дальше? &lt;br /&gt;&lt;br /&gt; По golang достаточно много хороших обучающих материалов. Моя коллекция ссылок: &lt;br /&gt; &lt;a class=&quot;link&quot; target=&quot;_blank&quot; href=&quot;http://u.to/mnsHAg&quot; title=&quot;http://wh3rd.net/practical-go/&quot; rel=&quot;nofollow&quot;&gt;http://wh3rd.net/practical-go/&lt;/a&gt; — пишем свой bit.ly (также видео: blip.tv/open-source-developers-conference/the-go-programming-language-4450722) &lt;br /&gt; &lt;a class=&quot;link&quot; target=&quot;_blank&quot; href=&quot;http://u.to/lnsHAg&quot; title=&quot;http://golang.org/doc/go_tutorial.html&quot; rel=&quot;nofollow&quot;&gt;http://golang.org/doc/go_tutorial.html&lt;/a&gt; — официальный туториал &lt;br /&gt; &lt;a class=&quot;link&quot; target=&quot;_blank&quot; href=&quot;http://u.to/l3sHAg&quot; title=&quot;http://golang.org/doc/effective_go.html&quot; rel=&quot;nofollow&quot;&gt;http://golang.org/doc/effective_go.html&lt;/a&gt; — постарались передать main idea языка &lt;br /&gt; &lt;a class=&quot;link&quot; target=&quot;_blank&quot; href=&quot;http://u.to/nnsHAg&quot; title=&quot;http://golangtutorials.blogspot.com/201&quot; rel=&quot;nofollow&quot;&gt;http://golangtutorials.blogspot.com/201&lt;/a&gt; ... tents.html — коллекция отличных туториалов &lt;br /&gt; &lt;a class=&quot;link&quot; target=&quot;_blank&quot; href=&quot;http://u.to/nHsHAg&quot; title=&quot;http://golang.org/doc/codelab/wiki/&quot; rel=&quot;nofollow&quot;&gt;http://golang.org/doc/codelab/wiki/&lt;/a&gt; — пишем свою mini-wiki &lt;br /&gt; &lt;a class=&quot;link&quot; target=&quot;_blank&quot; href=&quot;http://u.to/m3sHAg&quot; title=&quot;http://miek.nl/files/go/&quot; rel=&quot;nofollow&quot;&gt;http://miek.nl/files/go/&lt;/a&gt; — OpenSource книжка по Go &lt;br /&gt; В запросах поисковика нужно писать golang, а не просто go. Успехов!</content:encoded>
			<category>Другие языки</category>
			<dc:creator>Hacker</dc:creator>
			<guid>https://mobstudio.moy.su/forum/58-320-1</guid>
		</item>
		<item>
			<title>Язык программирования на java</title>
			<link>https://mobstudio.moy.su/forum/58-211-1</link>
			<pubDate>Fri, 06 Mar 2015 19:35:13 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://mobstudio.moy.su/forum/58&quot;&gt;Другие языки&lt;/a&gt;&lt;br /&gt;Описание темы: Как создать jar приложение самому&lt;br /&gt;Автор темы: Hacker&lt;br /&gt;Автор последнего сообщения: Hank&lt;br /&gt;Количество ответов: 2</description>
			<content:encoded>&lt;b&gt;Что же такое, java Приложение?&lt;/b&gt; &lt;br /&gt; Это небольшая программа, которая написана на специальном языке для телефонов J2ME, или Java 2 Micro Edition. Программа эта, называется &quot;мидлет&quot; (midlet, MID - от Mobile Information Device Application). В этой теме все о java &lt;img src=&quot;http://s47.ucoz.net/sm/1/smile.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;smile&quot; /&gt; и как самому можно создать программу с помощью начальных навыков &lt;img src=&quot;http://s47.ucoz.net/sm/1/wink.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;wink&quot; /&gt; &lt;br /&gt;&lt;br /&gt; &lt;b&gt;Скачать паскаль для мобильных телефонов мидлет паскаль MidLet Pascal&lt;/b&gt; &lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;http://www.mobstudio.net/file/32_MIDletPascal202.zip&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Скачать&lt;/a&gt; &lt;br /&gt;&lt;br /&gt; Файл справки для MIDletPascal в архиве &lt;img src=&quot;http://s47.ucoz.net/sm/1/smile.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;smile&quot; /&gt;</content:encoded>
			<category>Другие языки</category>
			<dc:creator>Hacker</dc:creator>
			<guid>https://mobstudio.moy.su/forum/58-211-1</guid>
		</item>
		<item>
			<title>Звезды как в галактике знакомств</title>
			<link>https://mobstudio.moy.su/forum/58-375-1</link>
			<pubDate>Fri, 03 Jan 2014 08:02:39 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://mobstudio.moy.su/forum/58&quot;&gt;Другие языки&lt;/a&gt;&lt;br /&gt;Описание темы: исходный код на мидлет паскале&lt;br /&gt;Автор темы: Hacker&lt;br /&gt;Автор последнего сообщения: DESSON&lt;br /&gt;Количество ответов: 1</description>
			<content:encoded>везды как в Galaxy на Мидлет Паскале. &lt;br /&gt; Вот весь исходный код с подсказками: &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; program NewProject; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type &lt;br /&gt; // Описываем тип-элемент Звезда &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TStar = record &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;X, Y, Z : Integer; // Положение в пространстве &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&lt;br /&gt; const &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MAX_STARS = 150;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Кол-во звёздочек &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HELLO = &apos;Galaxy&apos;; // &quot;Та самая надпись&quot; &lt;img src=&quot;http&amp;#58;//s47.ucoz.net/sm/1/smile.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;smile&quot; /&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPEED = 200;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Скорость, в единицах/сек &lt;br /&gt;&lt;br /&gt; var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: Integer; &lt;br /&gt; // Наши звёздочки &lt;img src=&quot;http&amp;#58;//s47.ucoz.net/sm/1/smile.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;smile&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Stars : array &amp;#91;1..MAX_STARS] of TStar; &lt;br /&gt; // Ширина и высота дисплея &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;scr_W : Integer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;scr_H : Integer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a, z :longint; &lt;br /&gt; // Время &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;time, dt : Integer; &lt;br /&gt;&lt;br /&gt; // Рисует текущую звёздочку (i&amp;#41;, цвета (c&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;procedure SetPix(c: Integer&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sx, sy : Integer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Данные действия, проецируют 3D точку на 2D полоскость дисплея &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sx := trunc(scr_W / 2 + Stars&amp;#91;i].X * 200 / (Stars&amp;#91;i].Z + 200&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sy := trunc(scr_H / 2 - Stars&amp;#91;i].Y * 200 / (Stars&amp;#91;i].Z + 200&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetColor(c, c, c&amp;#41;; // Устанавливаем цвет &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Plot(sx, sy&amp;#41;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Выводим пиксель этого цвета &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&lt;br /&gt; begin &lt;br /&gt; // Для начала, получим размеры экрана &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;scr_W := GetWidth;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;scr_H := GetHeight; &lt;br /&gt; // Затем, случайным образом раскидаем звёздочки &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;randomize; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for i := 1 to MAX_STARS do &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Stars&amp;#91;i].X := random(scr_W * 4&amp;#41; - scr_W * 2; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Stars&amp;#91;i].Y := random(scr_H * 4&amp;#41; - scr_H * 2; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Stars&amp;#91;i].Z := random(1900&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; // Очистка содержимого дисплея (чёрный цвет&amp;#41;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetColor(0, 0, 0&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FillRect(0, 0, scr_W, scr_H&amp;#41;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;time := GetRelativeTimeMs; &lt;br /&gt; // Главный цикл отрисовки &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;repeat &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dt&amp;nbsp;&amp;nbsp;&amp;nbsp;:= GetRelativeTimeMs - time;&amp;nbsp;&amp;nbsp;// Сколько мс прошло, с прошлой отрисовки &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;time := GetRelativeTimeMs;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Засекаем время &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for i := 1 to MAX_STARS do &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Затираем звёздочку с предыдущего кадра &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetPix(0&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Изменяем её позицию в зависимости прошедшего с последней отрисовки времени &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Stars&amp;#91;i].Z := Stars&amp;#91;i].Z - SPEED * dt/1000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Если звезда &quot;улетела&quot; за позицию камеры - генерируем её вдали &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if Stars&amp;#91;i].Z &lt;= -200 then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Stars&amp;#91;i].X := random(scr_W * 4&amp;#41; - scr_W * 2; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Stars&amp;#91;i].Y := random(scr_H * 4&amp;#41; - scr_H * 2; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Stars&amp;#91;i].Z := 1900; // Откидываем звезду далеко вперёд &lt;img src=&quot;http&amp;#58;//s47.ucoz.net/sm/1/smile.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;smile&quot; /&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Рисуем звёздочку в новом положении (цвет зависит от Z координаты&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetPix(trunc(255 - 255 * (Stars&amp;#91;i].Z + 200&amp;#41; / 2100&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Выводим текст по центру экрана &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetColor(255, 0, 0&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DrawText(HELLO, (scr_W - GetStringWidth(HELLO&amp;#41;&amp;#41;/2, 0&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Всё что было нами нарисовано - выводим на дисплей &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;repaint; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;until GetKeyClicked = KE_KEY0; // Закрыть приложение при нажатии &quot;0&quot; &lt;br /&gt; end. &lt;br /&gt;&lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;</content:encoded>
			<category>Другие языки</category>
			<dc:creator>Hacker</dc:creator>
			<guid>https://mobstudio.moy.su/forum/58-375-1</guid>
		</item>
		<item>
			<title>Внезапное закрытие Java-приложения: как этого избежать?</title>
			<link>https://mobstudio.moy.su/forum/58-372-1</link>
			<pubDate>Sat, 05 May 2012 14:42:21 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://mobstudio.moy.su/forum/58&quot;&gt;Другие языки&lt;/a&gt;&lt;br /&gt;Описание темы: Внезапное закрытие Java-приложения: как этого избежать?&lt;br /&gt;Автор темы: Hacker&lt;br /&gt;Автор последнего сообщения: BoyKa&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>Во многих случаях у программистов возникает необходимость выполнить некоторые действия в момент, когда пользователь заканчивает работу с приложением. Но проблема состоит в том, что пользователи не всегда пользуются рекомендованными и правильными способами выхода из приложения. Java предоставляет элегантный подход к выполнению какого-либо кода в середине процесса выгрузки процесса вашего приложения, таким образом гарантируя, что этот код, который, например, занимается какими-либо &quot;очистительными&quot; операциями, будет обязательно выполнен. Эта статья рассказывает о том, каким образом можно вешать обработчик прерывания работы приложения для гарантированного выполнения завершающего кода независимо от того, каким образом пользователь завершил работу с вашим приложением. Очень часто бывает нужно выполнять какие-то операции по завершению приложения. Например, когда вы пишете текстовый редактор с использованием Swing, и это ваше приложение создает временный файл при начале своей работы. Временный файл должен быть удален, как только пользователь закроет ваше приложение. Если же вы пишете приложение, состоящее из множества сервлетов, встраиваемых в сервлет-контейнер (например, Tomcat или Jetty), то вы должны вызывать метод destroy для каждого из загруженных вами сервлетов до того, как завершится работа приложения. &lt;br /&gt;&lt;br /&gt; Во многих случаях вы надеетесь на то, что пользователь закроет приложение приемлемым для вас способом. Например, в первом случае вы можете предоставить ему компонент JButton, после клика на который выполняются необходимые завершающие операции и осуществляется непосредственно выход из приложения. Как альтернативный вариант вы можете повесить обработчик события окна, который бы обрабатывал событие windowClosing. Tomcat же использует специальный batch-файл, который может быть выполнен при правильном завершении работы с приложением. Однако хорошо известно, что пользователи далеко не так часто корректно завершают работу с приложениями. Они могут делать с приложениями все что пожелают. Помимо этого, пользователь может просто-напросто закрыть консоль или завершить свой сеанс работы с операционной системой, оставив при этом ваше приложение незакрытым. &lt;br /&gt; В Java виртуальная машина завершает работу в двух случаях: во-первых, когда из приложения вышли нормальным способом, т.е. был вызван метод System.exit, или же когда остался последний поток, не являющийся демоном. Во-вторых, когда пользователь внезапно прерывает работу виртуальной машины, например, нажимая комбинацию клавиш Ctrl+C или же выходя из системы, не закрыв предварительно работающее Java-приложение. &lt;br /&gt;&lt;br /&gt; К счастью, виртуальная машина следует следующей двухфазной последовательности действий, прежде чем выгрузить себя: &lt;br /&gt; 1. Виртуальная машина запускает все зарегистрированные shutdown-ловушки, если таковые были установлены. Shutdown-ловушки - это нити (threads), которые регистрируются с помощью класса Runtime. Все эти ловушки будут запущены и будут работать параллельно до тех пор, пока все они не завершат своей работы. &lt;br /&gt; 2. Виртуальная машина вызывает все определенные fina-lize-операции (если есть подходящие). &lt;br /&gt; В этой статье мы рассмотрим первый пункт, поскольку он позволяет программисту озадачить виртуальную Java-машину выполнением необходимых операций по завершению приложения. Shutdown-ловушки - это просто экземпляры классов-наследников класса Thread. Чтобы создать такую ловушку, нужно выполнить следующую последовательность действий: &lt;br /&gt; 1. Описать класс, наследующий класс Thread. &lt;br /&gt; 2. Осуществить реализацию метода run этого нового класса. Этот метод содержит код, который и будет выполняться для завершения работы виртуальной машины вне зависимости от того, нормально или нет было завершено приложение. &lt;br /&gt; 3. Связать класс shutdown-ловушки с вашим приложением. &lt;br /&gt; 4. Зарегистрировать ловушку с помощью метода addShutdownHook текущего экземпляра класса Runtime. &lt;br /&gt; Как вы уже могли заметить, вам не нужно запускать только что созданную нить ловушки, как вы бы запускали другой класс, унаследовавший Thread. Забота о запуске этой нити ложится на виртуальную машину, которая, подойдя к выполнению своей shutdown-последовательности, запустит все зарегистрированные нити ловушек. &lt;br /&gt;&lt;br /&gt; Код Листинга 1 представляет простой класс Shutdown HookDemo и подкласс класса Thread - ShutdownHook. Учтите, что метод run класса ShutdownHook просто выводит строку Shutting down на консоль. Конечно, вы можете вставить абсолютно любой код, который вам необходимо выполнить во время завершения вашего приложения. &lt;br /&gt; После запуска public-класса вызывается метод start. Метод start создает shutdown-ловушку и регистрирует ее в текущем экземпляре Runtime-класса. &lt;br /&gt; ShutdownHook shutdownHook = new ShutdownHook(); &lt;br /&gt; Runtime.getRuntime().addShutdownHook(shutdownHook); &lt;br /&gt; После этого программа ждет нажатия пользователем клавиши Enter. &lt;br /&gt; System.in.read(); &lt;br /&gt; Когда пользователь нажимает Enter, осуществляется выход из программы. Однако перед выходом виртуальная машина запускает зарегистрированную shutdown-ловушку, которая в свою очередь печатает строчку &quot;Shutting down&quot;. &lt;br /&gt;&lt;br /&gt; Листинг 1 &lt;br /&gt; php highlight: &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;package test;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; public class ShutdownHook Demo {&amp;nbsp;&amp;nbsp;&lt;br /&gt; public void start(&amp;#41; {&amp;nbsp;&amp;nbsp;&lt;br /&gt; System.out.println (&quot;Demo&quot;&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; ShutdownHook shutdown Hook = new ShutdownHook(&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; Runtime.getRuntime(&amp;#41;. addShutdownHook(shutdownHook&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; }&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; public static void main (String&amp;#91;] args&amp;#41; {&amp;nbsp;&amp;nbsp;&lt;br /&gt; ShutdownHookDemo demo = new ShutdownHookDemo(&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; demo.start(&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; try {&amp;nbsp;&amp;nbsp;&lt;br /&gt; System.in.read(&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; } catch (Exception e&amp;#41; {&amp;nbsp;&amp;nbsp;&lt;br /&gt; ;&amp;nbsp;&amp;nbsp;&lt;br /&gt; }&amp;nbsp;&amp;nbsp;&lt;br /&gt; }&amp;nbsp;&amp;nbsp;&lt;br /&gt; }&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; class ShutdownHook extends Thread {&amp;nbsp;&amp;nbsp;&lt;br /&gt; public void run(&amp;#41; {&amp;nbsp;&amp;nbsp;&lt;br /&gt; System.out.println (&quot;Shutting down&quot;&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; }&amp;nbsp;&amp;nbsp;&lt;br /&gt; } &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; &lt;br /&gt; [code]</content:encoded>
			<category>Другие языки</category>
			<dc:creator>Hacker</dc:creator>
			<guid>https://mobstudio.moy.su/forum/58-372-1</guid>
		</item>
		<item>
			<title>Assembler</title>
			<link>https://mobstudio.moy.su/forum/58-327-1</link>
			<pubDate>Wed, 25 Apr 2012 16:50:27 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://mobstudio.moy.su/forum/58&quot;&gt;Другие языки&lt;/a&gt;&lt;br /&gt;Описание темы: Ассемблер(язык программирования)&lt;br /&gt;Автор темы: Hacker&lt;br /&gt;Автор последнего сообщения: BoyKa&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>Visual Assembler - эта программа написана для тех, кто программирует на ассемблере. Borland Tasm - транслятор сделанный для MSDOS. Т.к. начинающему программисту на ассемблере будет сложно не допускать ошибок на этом языке, то постоянная компиляция и компоновка программы с помощью командной строки может быстро утомить и надоесть. Visual Assembler позволяет всё это упростить до минимума. Вы указываете программе путь TASM и TLINK и набираете текст в окне ввода. Когда вам необходимо откомпилировать программу, вы просто в меню программы выбираете тип компиляции, и программа выполняет всю рутинную операцию за вас. Один нюанс - в пути к TASM и TLINK и файлу с исходным текстом не должно быть пробелов.</content:encoded>
			<category>Другие языки</category>
			<dc:creator>Hacker</dc:creator>
			<guid>https://mobstudio.moy.su/forum/58-327-1</guid>
		</item>
	</channel>
</rss>