<?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>JUG.ua &#187; программирование</title>
	<atom:link href="http://jug.ua/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://jug.ua</link>
	<description>weblog сообщества Java-разработчиков КПИ</description>
	<lastBuildDate>Sat, 19 May 2012 17:10:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>&#8220;Java: The Good, the Bad and the Ugly Parts&#8221; by Joshua Bloch</title>
		<link>http://jug.ua/2012/03/java-the-good-the-bad-and-the-ugly-parts-by-joshua-bloch/</link>
		<comments>http://jug.ua/2012/03/java-the-good-the-bad-and-the-ugly-parts-by-joshua-bloch/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 16:16:47 +0000</pubDate>
		<dc:creator>randrey</dc:creator>
				<category><![CDATA[наука]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Joshua Bloch]]></category>

		<guid isPermaLink="false">http://jug.ua/?p=954</guid>
		<description><![CDATA[Открыт свободный доступ к записи выступления Джошуа Блоха, где он оценивает хорошие и не очень аспекты Java. Во время этого доклада зал был заполнен полностью, включая ступеньки и свободные проходы.]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">Открыт свободный доступ к записи выступления Джошуа Блоха, где он оценивает хорошие и не очень аспекты Java.</p>
<p style="text-align: center;"><object width="480" height="780" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="wmode" value="direct" /><param name="flashVars" value="sv=true&amp;pageId=2804" /><param name="src" value="http://www.parleys.com/dist/share/parleysshare.swf" /><param name="flashvars" value="sv=true&amp;pageId=2804" /><param name="allowfullscreen" value="true" /><embed width="480" height="780" type="application/x-shockwave-flash" src="http://www.parleys.com/dist/share/parleysshare.swf" allowFullScreen="true" wmode="direct" flashVars="sv=true&amp;pageId=2804" flashvars="sv=true&amp;pageId=2804" allowfullscreen="true" /></object></p>
<p style="text-align: center;">Во время этого доклада зал был заполнен полностью, включая ступеньки и свободные проходы.</p>
]]></content:encoded>
			<wfw:commentRss>http://jug.ua/2012/03/java-the-good-the-bad-and-the-ugly-parts-by-joshua-bloch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>В продолжении знакомства с JRebel</title>
		<link>http://jug.ua/2012/03/jrebel-continue/</link>
		<comments>http://jug.ua/2012/03/jrebel-continue/#comments</comments>
		<pubDate>Sun, 11 Mar 2012 12:11:42 +0000</pubDate>
		<dc:creator>randrey</dc:creator>
				<category><![CDATA[наука]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[Class Loader]]></category>
		<category><![CDATA[JRebel]]></category>

		<guid isPermaLink="false">http://jug.ua/?p=947</guid>
		<description><![CDATA[В дополнение к статье &#8220;Знакомимся с JRebel&#8221;. На встрече JUG.RU Антон Архипов (сотрудник компании ZeroTurnaround) выступил с двумя докладами посвященными внутренним принципам работы JRebel. Запись доклада и презентации доступны по ссылке. После просмотра узнаете, как можно в &#8220;домашних условиях&#8221; модифицировать байт-код в runtime $). И познакомитесь с библиотекой для манипуляций байт-кодом Javassist и JRebel SDK. А [...]]]></description>
			<content:encoded><![CDATA[<p>В дополнение к статье <a href="http://jug.ua/2012/01/jrebel/">&#8220;Знакомимся с JRebel&#8221;</a>.</p>
<p>На встрече <a href="http://www.jug.ru/archive/-/blogs/%D0%B0%D0%BD%D1%82%D0%BE%D0%BD-%D0%B0%D1%80%D1%85%D0%B8%D0%BF%D0%BE%D0%B2-%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%B0%D1%8F-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-java-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B8" target="_blank">JUG.RU</a> Антон Архипов (сотрудник компании <a href="http://zeroturnaround.com/">ZeroTurnaround</a>) выступил с двумя докладами посвященными внутренним принципам работы JRebel. Запись доклада и презентации доступны по <strong><a title="#JRebel @ JUG.ru" href="http://anton-arhipov.livejournal.com/219099.html" target="_blank">ссылке</a></strong>.</p>
<p>После просмотра узнаете, как можно в &#8220;домашних условиях&#8221; модифицировать байт-код в runtime $). И познакомитесь с библиотекой для манипуляций байт-кодом <strong><a title="Javassist" href="http://www.csg.ci.i.u-tokyo.ac.jp/~chiba/javassist/" target="_blank"><span style="color: blue;">Javassist</span></a> </strong>и<strong> <a title="JRebel SDK" href="http://zeroturnaround.com/resources/jrebel-plugins/" target="_blank">JRebel SDK</a>.</strong></p>
<p>А для пониманию сути всего происходящего, помогут несколько глав книги <a title="Inside the Java Virtual Machine" href="http://www.artima.com/insidejvm/ed2/index.html" target="_blank"><em>Inside the Java Virtual Machine</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://jug.ua/2012/03/jrebel-continue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Матрица компетентности программиста</title>
		<link>http://jug.ua/2012/02/matrica-kompetentnosti-programmista/</link>
		<comments>http://jug.ua/2012/02/matrica-kompetentnosti-programmista/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 13:11:52 +0000</pubDate>
		<dc:creator>randrey</dc:creator>
				<category><![CDATA[наука]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://jug.ua/?p=918</guid>
		<description><![CDATA[Хорошая структура компетентности программиста, можно прямо в описание учебных программ вставлять: Матрица компетентности программиста Как это не удивительно, но довольно много из кандидатов имеют пробелы именно с первой и второй колонкой раздела Теория!!! Если хотите освежить свои знания по алгоритмам и структурам данных, советую онлайн-курс MIT Introduction to Algorithms А так же всем, кто в [...]]]></description>
			<content:encoded><![CDATA[<p>Хорошая структура компетентности программиста, можно прямо в описание учебных программ вставлять: <strong><a title="Матрица компетентности программиста / Programmer Competency Matrix" href="http://dev.by/page/programming_matrix">Матрица компетентности программиста</a></strong></p>
<p>Как это не удивительно, но довольно много из кандидатов имеют пробелы именно с первой и второй колонкой раздела Теория!!!</p>
<p>Если хотите освежить свои знания по алгоритмам и структурам данных, советую онлайн-курс MIT <a title="Introduction to Algorithms" href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/" target="_blank"><strong>Introduction to Algorithms</strong></a></p>
<p>А так же всем, кто в ближайшее время собирается идти на собеседование, советую посмотреть вообщем <strong><a title="Чтобы пройти собеседование на Java-программиста... " href="http://jug-lviv.blogspot.com/2010/09/java.html" target="_blank">стандартный список вопросов по Java</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://jug.ua/2012/02/matrica-kompetentnosti-programmista/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Будущее Java &#8211; грядущие новшества Java 8</title>
		<link>http://jug.ua/2011/12/java-8/</link>
		<comments>http://jug.ua/2011/12/java-8/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 22:02:13 +0000</pubDate>
		<dc:creator>randrey</dc:creator>
				<category><![CDATA[наука]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java 8]]></category>

		<guid isPermaLink="false">http://jug.ua/?p=689</guid>
		<description><![CDATA[По результатам выступлений на конференции &#8220;Сиклум Java Субботник&#8221; и Встречи JUG KPI (посвященных лямбда выражениям (функциям) в Java), несколько небольших примеров и пояснений к презентации &#8220;Будущее Java, грядущие новшества Java 8&#8243; (видео доклада), а также исходный код приводимых примеров. Для начала стоит предупредить, что все излагаемое в презентации может измениться; не думаю, правда, что радикально, [...]]]></description>
			<content:encoded><![CDATA[<p>По результатам выступлений на конференции <a href="http://habrahabr.ru/company/Ciklum/blog/133628/">&#8220;Сиклум Java Субботник&#8221;</a> и <a href="http://jug.ua/2011/11/vstrecha-jug-kpi-1-dekabrya/">Встречи JUG KPI</a> (посвященных лямбда выражениям (функциям) в Java), несколько небольших примеров и пояснений к презентации <a href="http://jug.ua/wp-content/uploads/2011/12/Java8_Ciklum.pdf"><strong>&#8220;Будущее Java, грядущие новшества Java 8&#8243;</strong></a> (<a href="http://www.youtube.com/watch?v=TFH8ZTcxnL0&amp;list=UUlYsF7DXWqjF38dVEIvaEaQ&amp;index=1&amp;feature=plcp">видео доклада</a>), а также <a href="http://jug.ua/wp-content/uploads/2011/12/Java8_examp.zip">исходный код</a> приводимых примеров.</p>
<p>Для начала стоит предупредить, что все излагаемое в презентации может измениться; не думаю, правда, что радикально, но все же. Так, к примеру, за время, прошедшее между двумя докладами, <em>defender methods</em> успели окончательно сменить название на <em>virtual extension methods</em>.</p>
<p>И второе, те примеры кода, которые приводились во время презентации, работают! Точнее, почти работают&#8230; Вы можете скачать предварительную версию <a href="http://jdk8.java.net/lambda/">JDK 8 с поддержкой лямбда-выражений</a> и начать экспериментировать.</p>
<p><span id="more-689"></span></p>
<ul>
<li><strong><em>Virtual extension methods</em></strong></li>
</ul>
<p>Итак, предположим, мы имеем интерфейс <strong><em>NewInterface</em></strong> и хотим в него добавить новый метод <strong><em>void test()</em></strong> без необходимости его реализации в классах, которые реализуют данный интерфейс. Для этого в третьей строке, после описания метода, добавляем ключевое слово <strong><em>default</em></strong> и указываем имя класса, а также статического метода в данном классе, который будет вызываться в случае обращения к методу <strong><em>void test()</em></strong>.</p>
<pre class="brush: java; title: ; notranslate">
interface NewInterface{
void test2();
void test() default DefaultClass.test;
          //default { DefaultClass.test(this);};
}</pre>
<p>Код в третьей строке и будет тем самым <em>virtual extension method</em>.</p>
<p>В одном из описаний упоминается, что к методу вызываемому по умолчанию, после слова default можно обращаться так, как сделано в 4 строке, но в данный момент такой код не компилируется.</p>
<p>Класс <strong><em>DefaultClass</em></strong> выглядит следующим образом:</p>
<pre class="brush: java; title: ; notranslate">
class DefaultClass {
    public static void test(NewInterface ni){
        System.out.println(&quot;Default Hello&quot;);
    }
}
</pre>
<p>Теперь можно написать класс <strong><em>NewClass</em></strong> реализующий наш интерфейс <strong><em>NewInterface</em></strong>:</p>
<pre class="brush: java; title: ; notranslate">
class NewClass implements NewInterface{
	public void test2(){
		System.out.println(&quot;My Hello&quot;);
	}
}
</pre>
<p>Метод test2() &#8220;нормальный&#8221;, поэтому его мы обязаны реализовать. Если мы реализуем и метод <strong><em>void test()</em></strong>, то при обращении к нему будет вызываться данная реализации, иначе &#8211; дефолтная реализация из класса <strong><em>DefaultClass</em></strong>.</p>
<p>Протестируем то, что получилось, выполнив следующий код:</p>
<pre class="brush: java; title: ; notranslate">
public class Java8DefenderTest {
    public static void main(String[] args) {
        NewInterface ni = new NewClass();
		ni.test2();
		ni.test();
	}
}
</pre>
<p>Компиляция проходит без ошибок, а вот при запуске получаем следующее:<br />
<code><br />
My Hello<br />
Exception in thread "main" java.lang.AbstractMethodError: java8defender.NewClass.test()V<br />
at java8defender.Java8DefenderTest.main(Java8DefenderTest.java:26)<br />
</code><br />
И с этим, к сожалению, я пока не знаю что делать :( Можно было бы предположить, что поддержка <em>virtual extension methods</em> еще не реализована, но новые методы по работе с коллекциями их уже успешно используют.</p>
<p>С тем, как с помощью <em>virtual extension methods</em> реализовать множественное наследование поведения, вы можете ознакомиться на слайде 11 презентации.</p>
<p>Дополнительную информацию о <em>virtual extension methods</em> можно почерпнуть из документа <a href="http://cr.openjdk.java.net/~briangoetz/lambda/Defender%20Methods%20v4.pdf">&#8220;Interface evolution via virtual extension methods&#8221;</a>, а для любителей дискретной математики и формальных грамматик из <a href="http://cr.openjdk.java.net/~briangoetz/lambda/featherweight-defenders.pdf">&#8220;Featherweight Defenders: A formal model for virtual extension methods in Java&#8221;</a>.</p>
<ul>
<li><strong><em>Лямбда-выражения</em></strong></li>
</ul>
<p>Говоря короток, лямбда-выражение &#8211; это удобный способ реализации анонимного класса на основе интерфейса, содержащего единственный метод. Интерфейс содержащий единственный метод называется <em>функциональным интерфейсом</em> (<em>functional interface</em>). К примеру, такие интерфейсы как <em>Runnable, Callable, EventHandler и Comparator</em> являются функциональными.</p>
<p>Рассмотрим пример. Пусть у нас есть следующий интерфейс:</p>
<pre class="brush: java; title: ; notranslate">
interface F1{
	int add(int x, int y);
 }
</pre>
<p>Его реализация с помощью анонимного класса и вызов метода add(int x, int y) будут следующими:</p>
<pre class="brush: java; title: ; notranslate">
F1 fun = new F1(){
	public int add(int x, int y){
		return x+y;
	}
};
fun.add(3,5);
</pre>
<p>С помощью лямбда-выражения данный анонимный класс переписывается следующим образом:</p>
<pre class="brush: java; title: ; notranslate">
F1 func1 = (a,b) -&gt; a+b;
int i = 5, j = 13;
func1.add(i,j);
</pre>
<p>В круглых скобках указываются входные параметры (в соответствии с параметрами метода), а после стрелки &#8211; тело (реализация) того самого единственного метода, который был объявлен в интерфейсе. При желании его (тело) можно заключить в фигурные скобки и написать <em>return</em>:</p>
<pre class="brush: java; title: ; notranslate">
F1 func1 = (a,b) -&gt; {
        System.out.println(&quot;a=&quot; + a);
        System.out.println(&quot;b=&quot; + b);
        return a+b;
}
int i = 5, j = 13;
func1.add(i,j);
</pre>
<p>В блоке кода может быть реализована и любая другая функциональность, а также могут выполняться обращения к переменным за пределами лямбда-выражения. Ограничение: внешние переменные должны быть т.н. <em>effectively final</em>, то есть вести себя как переменная перед которой стоял бы модификатор <em>final</em>.</p>
<p>Основное значение и преимущество лямбда-выражений состоит в том, что их можно передавать в качестве параметров в методы в удобном компактном виде (пример на слайде 26). Так же планируется, что в будущем можно будет в качестве параметров передавать ссылки на методы и конструкторы, без их непосредственного вызова. К примеру:</p>
<pre class="brush: java; title: ; notranslate">
String::isEmpty
&quot;abc&quot;::length
Person::getLastName
ArrayList&lt;String&gt;::new
</pre>
<p>Но на данный момент эта функциональность еще не работает.</p>
<p>Детальнее про <em>лямбда-выражения</em> можно почитать в проекте <a href="http://jcp.org/aboutJava/communityprocess/edr/jsr335/index.html">Lambda Specification</a> либо в более короткой статье <a href="http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-4.html">State of the Lambda</a> (кстати обнаружил ее новую версию лишь сейчас).</p>
<ul>
<li><strong><em>Functional Collection Patterns</em></strong></li>
</ul>
<p>Судя по тому, что написано в <a href="http://openjdk.java.net/jeps/">JDK Enhancement Proposals</a> (JEP), <em>virtual extension methods</em> и <em>лямбда-выражения</em> добавляются в Java с целью введение функциональных методов (функций высшего порядка) по работе с коллекциями &#8211; Functional Collection Patterns. Эти методы: filter, map, reduce (свертка), а так же целый ряд других, уже добавлены в интерфейс <a href="http://hg.openjdk.java.net/lambda/lambda/jdk/file/a08e29fbdb3b/src/share/classes/java/lang/Iterable.java"><em>Iterable.java</em></a> с использованием <em>virtual extension methods</em>. Данные методы будут работать с коллекциями и в качестве параметров будут принимать <em>лямбда-выражения</em>, которые и будут определять, чего именно мы хотим добиться от нашей коллекции:</p>
<pre class="brush: java; title: ; notranslate">
List&lt;Student&gt; students = ...
double highestScore =
    students.filter(s -&gt; s.getGradYear() == 2010 || s.getGradYear() == 2011)
        .map(s -&gt; s.getScore())
	  //.map(Student::getScore) //либо указатель на функцию, пока не работает
	    .reduce(0.0, (left, right) -&gt; (left &gt; right) ? left : right );
</pre>
<p>Но основной целью является даже не добавление методов по работе с коллекциями, а добавление параллельных версий этих методов, оптимизированных для оптимальной работы с большими объемами данных на многоядерных (многопроцессорных) системах. Параллелизм будет основываться на подходе «divide-and-conquer» с использование <em>Fork-Join framework</em> из Java 7. Загляните в исходный код <a href="http://hg.openjdk.java.net/lambda/lambda/jdk/file/a08e29fbdb3b/src/share/classes/java/util/ParallelIterables.java"><em>ParallelIterables.java</em></a> и увидите там универсальный алгоритм для параллельной работы с коллекциями.</p>
<p>К сожалению, статей и материалов по данной тематике я не нашел. Разве только презентация Brian Goetz <a href="http://blogs.oracle.com/briangoetz/resource/devoxx-lang-lib-vm-co-evol.pdf"><strong>&#8220;Language / Library / VM co-evolution in Java SE 8&#8243;</strong></a> с конференции <a href="http://www.devoxx.com/display/DV11/Home">Devoxx 2011</a>. Ну а так же исходный код будущей Java SE 8 ;)</p>
<p>Так что пока ждемс &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://jug.ua/2011/12/java-8/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Отчет про конференцию “День технологий Java”</title>
		<link>http://jug.ua/2011/10/java-day-report/</link>
		<comments>http://jug.ua/2011/10/java-day-report/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 19:25:40 +0000</pubDate>
		<dc:creator>randrey</dc:creator>
				<category><![CDATA[программирование]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://jug.ua/?p=643</guid>
		<description><![CDATA[19 октября, в Киеве, при поддержке Oraclе и образовательного центра i-Klass, прошла конференция &#8220;Java Day&#8221;, организатором которой выступила компания EPAM Systems. Как оказалось, очень удачным  было решение организаторов разбавить серьезные технические доклады, докладами философской и немного провокационной направленности, с поиском «вечной профессии» в этом мире. Это давало слушателям возможность отдыха и существенно улучшало восприятие последующих [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">19 октября, в Киеве, при поддержке <span style="color: #ff0000;"><em><strong>Oraclе</strong></em></span> и образовательного центра <em><strong><a href="http://www.i-klass.com/rus">i-Klass</a></strong></em>, прошла конференция <em><strong><a href="http://jug.ua/2011/09/konferenciya-den-texnologij-java/"><em>&#8220;Java Day&#8221;</em></a></strong></em>, организатором которой выступила компания <a href="http://www.epam-group.ru/"><em><strong>EPAM Systems</strong></em></a>.<br />
Как оказалось, очень удачным  было решение организаторов разбавить серьезные технические доклады, докладами философской и немного провокационной направленности, с поиском «вечной профессии» в этом мире. Это давало слушателям возможность отдыха и существенно улучшало восприятие последующих технических докладов.</p>
<p style="text-align: justify;"><span id="more-643"></span>Конференция открылась словами приветствия главного организатора конференции <em><strong>Александра Орехова</strong></em> (EPAM Systems) и представителя украинского отделения компании Oracle – <em><strong>Алексея Шерешеня</strong></em>.</p>
<p style="text-align: justify;">Далее пошли доклады. Больше всего их (3 доклада) было у <em><strong>Сергея Куксенко</strong></em>, сотрудника центра разработки Oracle в Санкт-Петербурге. Первый его доклад был посвящен <a href="http://jug.ua/%20http://jug.ua/wp-content/uploads/2011/09/j1-benchmarking-spb.pdf">тестированию производительности Java</a>. Основным лейтмотивом данного доклада было то, что искусство тестирование производительности состоит не в том, чтобы что-то померить, а в том, чтобы помереть то, что действительно имеет значение и получить действительно более-менее объективные результаты. Сергей, как всегда, был на высоте! Обычно на <a href="http://jug.ua/materials/"><em><strong>JavaOne</strong></em></a> и других конференциях Сергей выступает со своим коллегой Алексеем Шипилёвым,  и во время выступлений ребят зал бывает полностью заполнен, включая занятость всех удобных для стояния мест. Хоть стараюсь слушать их доклады на каждой из конференций, но все время узнаю что-то новое. В этот раз стало открытием то, что получаемый в результате компиляции байт-код не может служить основой для выводов о реальном поведении программы. Истинной же является ассемблерный код выдаваемый JIT-компилятором (ну, в общем-то, логично). Как его можно посмотреть? Сходите по <a href="http://wikis.sun.com/display/HotSpotInternals/PrintAssembly">ссылке</a>.<br />
Поучительной  также была история о том, как производительность приложения после перезапуска Windows вдруг оказывалась на 15% быстрее, чем обычно. А причина крылась в том, что после перезагрузки Windows синхронизировал свое время по NTP и переводил часы вперед. Прямо как ситуация с нейтрино, скорость которого в результате эксперимента вдруг оказалась <a href="http://pti.kpi.ua/news/37-science/332-2011-10-06-14-02-52">быстрее скорости света</a>.<br />
После данного доклада сложилось ощущения, что в большинстве случаев попытки измерить производительность приводят даже не к получению средней температуры по палате, а скорее к выяснению средней температуру по больнице.</p>
<p style="text-align: justify;">Следующим выступал <em><strong>Игорь Блинов</strong></em>, автор книги <a href="http://book.epam.by/">«Java. Промышленное программирование»</a>. Игорь является доцентом Белорусского Государственного Университета и руководителем образовательных программ по Java в EPAM Systems в Минске. В светлые времена Sun Microsystems, благодаря огромным скидкам на сдачу экзамена SCJP, Игорь поставил сертификацию своих студентов на поток.<br />
Хоть доклад Игоря был посвящен <a href="http://jug.ua/wp-content/uploads/2011/09/java7andjdk7.pdf">Java 7 и JDK7</a>, но в нем скорее анализировалась полезность новшеств Java 7 и оценивалось какое будущее ждет Java вообще. Так, к примеру, Игорь сказал, что уже не будет сильно удивлен, если вдруг в некой следующей версии Java появятся классические указатели из С++ и соответствующая арифметика для работы с ними ;) Вообще, в последнее время на конференциях и не только довольно часто подымается вопрос о том, а что же дальше будет с платформой. И сами разработчики Java соглашаются, что все тяжелее становиться тянуть и поддерживать совместимость, при этом добавляя новые возможности. Так что ждем революционных изменений в Java 8 &#8211; модулей и замыканий.</p>
<p style="text-align: justify;">Следующим снова выступал <em><strong>Сергей Куксенко</strong></em> с докладом <a href="http://jug.ua/wp-content/uploads/2011/09/java-jmm-2011-v8.pdf">«Модель памяти Java в деталях»</a>. Сразу же после начало доклада методом опроса зала выяснилось, что людей читавших спецификацию Java не так уж и много, а дочитавших до 17 главы, где и описывается модель память, вообще единицы.  Примеры, которые приводились в докладе, показали, что без конкретных знаний модели памяти и принципов работы потоков, на здравый смысл полагаться не стоит. Всем советую посмотреть презентацию и разобрать примеры, которые в ней приводятся (а еще, наверно, прочесть 17 главу спецификации ;).</p>
<p style="text-align: justify;">Далее был невероятно интересным доклад <em><strong>Виктора Тесленко</strong></em> <a href="http://jug.ua/wp-content/uploads/2011/09/ActorsInJava.pdf">про акторов</a>. Во-первых, понравился сам подход и переход на совершенно новый уровень абстракции при построении архитектуры системы. Во-вторых, то о чем когда-то рассказывалось в университетских курсах в разделе сетей Петри, и что оставалось долгое время на уровне моделей вдруг оказалось уже реализованным в Фреймворке <strong></strong><a href="http://akka.io/"><strong>Akka</strong></a>. Детально про модель акторов можно почитать <a href="http://en.wikipedia.org/wiki/Actor_model">тут</a>, про саму Akka тут <a href="http://akka.io/">akka.io</a>, и о ее использовании <a href="http://habrahabr.ru/blogs/java/125717/">тут</a>.</p>
<p style="text-align: justify;">Следующим докладом был <a href="http://jug.ua/wp-content/uploads/2011/09/CLSJ.pdf">доклад-отдых</a> от журналиста и аналитика <em><strong>Андрея Зубинского</strong></em>, посвященный рассуждениям на тему будущего GUI для десктопных приложений на Java, выгодности компании Майкрософт конфликта между Oracle и Google, о печальной 3-х летней истории JavaFX и ее непонятном будущем, а так же о том, что лозунг &#8220;Write once, run anywhere&#8221; не всегда хорош. Было интересно послушать с учетом того, что сам пару раз выступал с докладом про JavaFX, правда, в те времена, когда JavaFX был еще скриптовым. Надо будет разобраться с <a href="http://www.javafx.com/">новой версией</a> ;)</p>
<p style="text-align: justify;">Затем был доклад <em><strong>Елены Сироты</strong></em> (руководителя Java-лаборатории, компании EPAM Systems в Киеве), посвященный <a href="http://jug.ua/wp-content/uploads/2011/09/CDI-in-Java-EE-6.pdf">Context Dependency Injection (CDI) в Java EE 6</a>. Доклады по CDI довольно сложная тема с точки зрения его подачи и восприятия слушателями. Поначалу обычно бывает все понятно, но как только на слайдах докладчика начинают возникать массы разнообразных аннотаций, то начинаешь теряться. Фрагменты кода с предыдущих слайдов забываются и очень сложно представить себе общую картину работы системы: кого, что и куда мы инжектим, в какой момент времени контейнером создается объект, откуда и как он выбирается, где он живет и т.п. Наверно, данная тема требует самостоятельной медитации над исходным кодом и экспериментов. Так же было бы в  начале интересно увидеть реализацию демонстрируемой функциональности с использованием стандартных EJB и ManagedBean, а потом реализацию того же самого с использованием и CDI. Исходный код, фрагменты которого приводились на слайде, доступен по ссылке.</p>
<p style="text-align: justify;">Последним был <a href="http://jug.ua/wp-content/uploads/2011/09/000-iklass-Bfuture-withJava.v.2.pdf">доклад</a> <em><strong>Игоря Паламарчука</strong></em>, директора учебного центра «i-Klass», о том, в какие стороны лучше смотреть для построения успешной карьеры, и о том, что собственно простого программирования уже не совсем достаточно.</p>
<p style="text-align: justify;">Ну и в конце была сессия вопросов-ответов к Сергею Куксенко, где он поделился еще несколькими интересными <a href="http://jug.ua/wp-content/uploads/2011/09/link.pdf">ссылками</a> и <a href="http://jug.ua/wp-content/uploads/2011/09/java-perf-bof-jee-v3.pdf">презентацией</a>.</p>
<p style="text-align: justify;">Вот так прошла конференция. Хотелось бы ее сделать регулярным мероприятием, а так же расширить как количество слушателей так и докладчиков.</p>
<p style="text-align: justify;">Еще один отзыв о конференции от Николая Алименкова  можно почитать <a href="http://xpinjection.com/2011/10/20/javaday-in-kiev-report/">тут</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jug.ua/2011/10/java-day-report/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Шлях PHP-програміста</title>
		<link>http://jug.ua/2011/10/way-of-php-programmer/</link>
		<comments>http://jug.ua/2011/10/way-of-php-programmer/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 22:35:56 +0000</pubDate>
		<dc:creator>randrey</dc:creator>
				<category><![CDATA[наука]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://jug.ua/?p=627</guid>
		<description><![CDATA[Що треба щоб грати на барабані? – Ну, що там, взяв та барабаниш! Що треба щоб грати на скрипці? – Довго та нудно вчитись поки вийдуть якісь приємні для слуху звуки. В чомусь схожа ситуація і з програмуванням на PHP. Як виявилось, моя ремарка у попередній статті  стосовно «PHP-програмістів» багато кого зачепила. На справді, саме [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: right;"><em>Що треба щоб грати на барабані? – Ну, що там, взяв та барабаниш!</em><br />
<em>Що треба щоб грати на скрипці? – Довго та нудно вчитись поки вийдуть якісь приємні для слуху звуки.</em></p>
<p style="text-align: justify;">В чомусь схожа ситуація і з програмуванням на PHP. Як виявилось, моя ремарка <a href="http://jug.ua/2011/09/shlyax-programista/">у попередній статті</a>  стосовно «PHP-програмістів» багато кого зачепила. На справді, саме з таким ставленням Ви і можете зіштовхнутись потрапивши у професійне середовище, і Вам доведеться доводити рівень своєї компетенції, як PHP-програміста (тут вже без лапок і цілком серйозно).</p>
<p style="text-align: justify;"><span id="more-627"></span>У цій статті хотів би, по-перше, вибачитись перед тими людьми, кого мимоволі образив, і пояснити чому склалась саме така ситуація.</p>
<p style="text-align: justify;">Одразу ж скажу, що не маю ніякого упередженого ставлення до PHP чи будь якої іншої мови (звісно крім Java $). І дійсно, як можна ставитись до мови на якій розроблені найбільші соціальні мережі <em>Facebook</em> та <em>ВКонтакте</em>, а також найбільш популярна система для Інтернет-крамниць <em>Magento</em>. Крім цього, світ IT все більше вимагає те що зветься <a href="http://blogs.computerworld.com/15032/polyglot_programming_development_in_multiple_languages">&#8220;polyglot programming&#8221;</a>. Тобто програми, і навіть їх окремі частини, можуть розроблятись з використанням тієї мови, яка буде найбільш зручна та ефективна для вирішення певної задачі.</p>
<p style="text-align: justify;"><a href="http://openjdk.java.net/projects/mlvm/"><img class="alignright" style="border: 3px solid white;" title="Da Vinci" src="http://openjdk.java.net/projects/mlvm/images/helicopter.png" alt="" width="214" height="152" /></a></p>
<p style="text-align: justify;">До речі, у віртуальній машині Java є проект під назвою <a href="http://openjdk.java.net/projects/mlvm/index.html"><strong><em>Da Vinci Machine</em></strong></a>, в рамках якого в Java Virtual Machine вже реалізована підтримка таких мов як <em>Ruby (JRuby), Python (Jython), JavaScript</em> та ін. А також, є проект <strong><em><a href="http://www.caucho.com/">Resin</a></em></strong> – <em>“100% Java implementation of PHP 5”</em>.</p>
<p style="text-align: justify;">Що ці всі мови дозволяють робити? Користуватись всіма компоненти та сервісами з яких складається Java-платформа, і при цьому програмувати на тій мові, яка найбільш зручна та ефективна для вирішення вашої задачі. Теоретично, гадаю, без особливих проблем (крім авторських прав) можна було б включити до вище наведеного переліку і C# з Visual Basic .NET ;)</p>
<p style="text-align: justify;">Тепер переходимо до «але» та PHP.</p>
<p style="text-align: justify;">Так от, що стосується  PHP, то тут склалась така ситуація, що ця мова здається настільки легкою, що на ній без особливих зусиль щось пишуть школярі, вже навіть не старших, а середніх класів. Кажу це як людина, яка приймала участь у оцінці фінальних робіт на конкурсах школярів, які проводили компанії Intel (<a href="http://www.isef.kpi.ua">Intel Techno</a>) та Oracle (<a href="http://www.thinkquest.org/en/">ThinkQuest</a>). PHP там був на другому місці за популярністю (на першому був Flash). І от, деякі з цих школярів починають вважати себе досвідченими «PHP-програмістів» (тут знову в лапках), і прямо про це заявляють мотивуючи тим, що вже на комерційній основі розробляють сайти.</p>
<p style="text-align: justify;">Така сама ситуація була колись і з програмістами на Delphi (до речі, мова на який написаниі <em>Skype</em> та <em>The Bat!</em>). Від тих програм на Delphi, які були у великій кількості незрозуміло як написані переважно для наших державних структур просто хочеться тікати, як від якогось жаху!</p>
<p style="text-align: justify;">Так от, свою попередню статтю я закінчив не закликом «Не ставайте «PHP-програмістами!», а скоріше проханням «Не поспішайте ставати «PHP-програмістами». Це значить, що не треба поспішати барабанити по барабану, а необхідно, щоб навчитись гарно грати на ньому, так само багато вчитись, як і грі на скрипці. Від того, що PHP задається легкою не слідує те, що часу для його вивчення треба витратити менш ніж для Java.</p>
<p style="text-align: justify;">Як м<a href="http://i.imgur.com/1gF1j.jpg"><img class="alignleft" title="as seen by ..." src="http://i.imgur.com/1gF1j.jpg" alt="" width="261" height="169" /></a>ені розповідали в одній із компаній для підготовки PHP-програмістів застосовують наступну методику. Спочатку людей вчать Java Enterprise Edition, особливу увагу приділяючи саме архітектурі та шаблонам проектування, які там реалізовані. Після цього від них вимагають реалізовувати той самий архітектурний підхід при розробці програм на PHP.</p>
<p style="text-align: justify;">І на останок,<strong> <a title="as seen by ..." href="http://i.imgur.com/1gF1j.jpg">картинка</a></strong>, яка має всіх примирити.</p>
]]></content:encoded>
			<wfw:commentRss>http://jug.ua/2011/10/way-of-php-programmer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Конкурс по программированию на языке Java – «Oracle Java Olympic»</title>
		<link>http://jug.ua/2011/10/oracle_java_olympic/</link>
		<comments>http://jug.ua/2011/10/oracle_java_olympic/#comments</comments>
		<pubDate>Sat, 22 Oct 2011 11:50:34 +0000</pubDate>
		<dc:creator>randrey</dc:creator>
				<category><![CDATA[анонс]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[olympic]]></category>

		<guid isPermaLink="false">http://jug.ua/?p=582</guid>
		<description><![CDATA[Конкурс проходит в четыре этапа: 1. Заочный этап: online-тестирование (1 &#8211; 15 декабря 2011 г) 2. Очный этап: решение практических задач (14 &#8211; 29 февраля 2012 г) 3. Всеукраинский Финал: решение практических задач (март 2012 г) 4. Международный Финал: решение практических задач (май 2012 г) Участие в конкурсе могут принять студенты учреждений высшего и среднего [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Конкурс проходит в четыре этапа: </strong><a title="IT-planet" href="http://world-it-planet.org/"><img class="alignright size-full wp-image-623" title="Oracle Java Olympic" src="http://jug.ua/wp-content/uploads/2011/10/java_olympic.png" alt="Oracle Java Olympic" width="122" height="86" /></a><br />
1. Заочный этап: online-тестирование (1 &#8211; 15 декабря 2011 г)<br />
2. Очный этап: решение практических задач (14 &#8211; 29 февраля 2012 г)<br />
3. Всеукраинский Финал: решение практических задач (март 2012 г)<br />
4. Международный Финал: решение практических задач (май 2012 г)</p>
<div align="justify"><strong>Участие в конкурсе могут принять</strong> студенты учреждений высшего и среднего профессионального образования независимо от формы обучения не старше 25 лет, которые в период <strong>с 1 по 30 ноября 2011 года <a title="IT-planet" href="http://world-it-planet.org/">зарегистрировались на сайте</a></strong> и заполнили заявку на участие в данном конкурсе.</div>
<div align="justify"><a title="IT-planet" href="http://world-it-planet.org/">Источник</a></div>
]]></content:encoded>
			<wfw:commentRss>http://jug.ua/2011/10/oracle_java_olympic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Конференция &#8220;День технологий Java&#8221;</title>
		<link>http://jug.ua/2011/09/konferenciya-den-texnologij-java/</link>
		<comments>http://jug.ua/2011/09/konferenciya-den-texnologij-java/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 09:42:44 +0000</pubDate>
		<dc:creator>randrey</dc:creator>
				<category><![CDATA[анонс]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://jug.ua/?p=541</guid>
		<description><![CDATA[19 октября, Конгресс-холл Президент-отеля &#8220;Киевский&#8221;, ул.Госпитальная, 12, Киев Конференция по технологиям для разработки программного обеспечения на платформе Java, которую организует компания &#8220;ЭПАМ Системз&#8221; при поддержке компании Oracle. Программа мероприятия: 9.30 &#8211; 9.40 Алексей Шерешень, (Head of Oracle HW department West CIS), ПриветствиеАлександр Орехов («ЭПАМ Системз», Киев), Вступительное слов 9.40 &#8211; 10.20 Сергей Куксенко (Oracle), «Искусное [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><strong>19 октября, Конгресс-холл Президент-отеля &#8220;Киевский&#8221;, ул.Госпитальная, 12, Киев</strong></p>
<p style="text-align: left;">Конферен<a href="http://javadayinua.timepad.ru/event/11980"><img class="alignleft" title="Java Day" src="http://www.javaone.ru/javaday/templates/oracle/images/logo.png" alt="" width="99" height="84" /></a>ция по технологиям для разработки программного обеспечения на платформе Java, которую организует компания<strong> &#8220;ЭПАМ Системз&#8221;</strong> при поддержке компании <strong>Oracle</strong>.</p>
<p style="text-align: left;"><strong><span style="text-decoration: underline;">Программа мероприятия:</span></strong></p>
<table width="100%" border="0" cellspacing="0" cellpadding="1">
<tbody>
<tr align="center">
<td align="center" width="20%">9.30 &#8211; 9.40</td>
<td align="left">Алексей Шерешень, (Head of Oracle HW department West CIS), <strong>Приветствие</strong>Александр Орехов («ЭПАМ Системз», Киев), <strong>Вступительное слов </strong></td>
</tr>
<tr align="center">
<td align="center">9.40 &#8211; 10.20</td>
<td align="left">Сергей Куксенко (Oracle), <a title="(The Art of) (Java) Benchmarking" href="%20http://jug.ua/wp-content/uploads/2011/09/j1-benchmarking-spb.pdf"><strong> «Искусное тестирование производительности (Java)»</strong></a></td>
</tr>
<tr align="center">
<td align="center">10.20 &#8211; 11.10</td>
<td align="left">Игорь Блинов («ЭПАМ Системз», Минск), <a title="JAVA 7 &amp; JDK7" href="http://jug.ua/wp-content/uploads/2011/09/java7andjdk7.pdf"><strong>«Java 7 и JDK7» </strong></a></td>
</tr>
<tr align="center">
<td align="center">11.10 – 11.30</td>
<td align="left">Перерыв на кофе</td>
</tr>
<tr align="center">
<td align="center">11.30 – 12.15</td>
<td align="left">Сергей Куксенко (Oracle), <strong> <a title="Java Memory Model" href="http://jug.ua/wp-content/uploads/2011/09/java-jmm-2011-v8.pdf">«Модель памяти Java в деталях»</a> </strong></td>
</tr>
<tr align="center">
<td align="center">12.15 – 13.00</td>
<td align="left">Виктор Тесленко (директор ООО «Арбайтен медиа», сертифицированный тренер по технологиям Java), <strong> <a title="АКТЁРЫ В JVM" href="http://jug.ua/wp-content/uploads/2011/09/ActorsInJava.pdf">«Актёры в JVM: архитектура для конкурентных отказоустойчивых приложений в картинках»</a> </strong></td>
</tr>
<tr align="center">
<td align="center">13.00 – 13.30</td>
<td align="left">Андрей Зубинский (журналист, аналитик компании DD&amp;IIP), <a title="Java на стороне клиента" href="http://jug.ua/wp-content/uploads/2011/09/CLSJ.pdf"><strong> «Java FX и новые версии Java SE для десктоп-приложений: основные тенденции» </strong></a></td>
</tr>
<tr align="center">
<td align="center">13.30 – 14.15</td>
<td align="left">Перерыв на обед</td>
</tr>
<tr align="center">
<td align="center">14.15 – 15.00</td>
<td align="left">Елена Сирота («ЭПАМ Системз», Киев), <strong> <a title="Contexts and Dependency Injection in Java EE 6" href="http://jug.ua/wp-content/uploads/2011/09/CDI-in-Java-EE-6.pdf">«Dependency Injection in Java EE 6»</a>, исходный код примеров<a title="Contexts and Dependency Injection in Java EE 6" href="http://jug.ua/wp-content/uploads/2011/09/CDI-in-Java-EE-6.pdf"><br />
</a></strong></td>
</tr>
<tr align="center">
<td align="center">14.15 – 15.00</td>
<td align="left">Игорь Паламарчук (директор учебного центра «i-Klass»), <strong> <a title="Java и тенденции" href="http://jug.ua/wp-content/uploads/2011/09/000-iklass-Bfuture-withJava.v.2.pdf">«Java и тенденции развития архитектуры современных информационных систем. Перспективы для бизнеса»</a></strong><br />
<strong> </strong></td>
</tr>
<tr align="center">
<td align="center">15.00 – 15.45</td>
<td align="left">Сергей Куксенко (Oracle), <strong> Сессия вопросов и ответов по производительности Java. Дополнительно: <a title="Java Platform Performance BoF" href="http://jug.ua/wp-content/uploads/2011/09/java-perf-bof-jee-v3.pdf"><strong>&#8220;Java Platform Performance BoF&#8221;</strong></a></strong>; <strong><a title="Диагностирование проблем и настройка GC в HotSpot JVM" href="http://jug.ua/wp-content/uploads/2011/09/link.pdf">&#8220;Диагностирование проблем и настройка GC в HotSpot JVM&#8221;</a> </strong></td>
</tr>
</tbody>
</table>
<table width="100%" border="1" frame="void" rules="none">
<caption><em><strong>Организаторы</strong></em></caption>
<tbody>
<tr align="center">
<td align="center" width="50%"><a href="http://www.epam-group.ru"><img class="aligncenter" title="Epam" src="http://upload.wikimedia.org/wikipedia/de/1/19/EPAM_logo.svg" alt="EPAM" width="164" height="51" /></a></td>
<td align="left"><a href="http://www.oracle.com/ru/index.html"><strong><img class="aligncenter" title="Oracle" src="http://upload.wikimedia.org/wikipedia/commons/5/50/Oracle_logo.svg" alt="Oracle" width="234" height="33" /></strong></a></td>
</tr>
<tr align="center">
<td align="center" width="50%"><a href="http://www.i-klass.com/rus"><img class="aligncenter" title="i-class" src="http://www.i-klass.com/web/themes/default/img/logo.png" alt="" width="152" height="65" /></a></td>
<td align="left"><a href="http://jug.ua/wp-content/uploads/2009/05/jug-kpi.jpg"><strong><img class="aligncenter" title="JUG KPI" src="http://jug.ua/wp-content/uploads/2009/05/jug-kpi.jpg" alt="" /></strong></a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://jug.ua/2011/09/konferenciya-den-texnologij-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Шлях програміста</title>
		<link>http://jug.ua/2011/09/shlyax-programista/</link>
		<comments>http://jug.ua/2011/09/shlyax-programista/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 23:27:11 +0000</pubDate>
		<dc:creator>randrey</dc:creator>
				<category><![CDATA[наука]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://jug.ua/?p=533</guid>
		<description><![CDATA[Ця замітка адресована початківцям – студентам першокурсникам (але сподіваюсь що вона буде корисною й іншим людям). Знаю, що багато з Вас задавались питанням: «А чи стану я програмістом?». Відповідь на нього, поки що, навряд чи Вам хтось зможе дати, але вона з’явиться згодом, коли Ви почнете рухатись по обраному Вами професійному шляху. Щоб допомогти зорієнтуватись, [...]]]></description>
			<content:encoded><![CDATA[<p>Ця замітка адресована початківцям – студентам першокурсникам (але сподіваюсь що вона буде корисною й іншим людям). Знаю, що багато з Вас задавались питанням: «А чи стану я програмістом?». Відповідь на нього, поки що, навряд чи Вам хтось зможе дати, але вона з’явиться згодом, коли Ви почнете рухатись по обраному Вами професійному шляху. Щоб допомогти зорієнтуватись, наведу «дорожню карту», на якій представлені основні блоки дисциплін, що є необхідними до вивчення.</p>
<p><span id="more-533"></span></p>
<p><a href="http://jug.ua/wp-content/uploads/2011/09/DevEdu.png"><img class="size-medium wp-image-534 alignleft" style="border: 0pt none; margin: 4px;" title="DevEdu" src="http://jug.ua/wp-content/uploads/2011/09/DevEdu-241x300.png" alt="" width="193" height="240" /></a></p>
<p>У складанні цієї «дорожньої карти» приймав участь цілий колектив людей, з декількох компаній, які професійно займаються як системним так і промисловим програмуванням.<br />
Хотів би відмітити, що багато початківців намагаються пропустити перший блок &#8211; «Основи програмування», до речі він є одними з найскладніших, і перейти одразу ж до так званого промислового програмування, переважно на мові PHP. Результатом цього є   вихідний код на який без сліз важко дивитись, де людині якось вдається реалізувати відомі лінійні алгоритми з експоненційною складністю, а яким чином даний код працює не розуміє навіть його автор. У професійному середовищі для таких «програмістів» є свій діагноз – «PHP-програміст». Отож, не поспішайте ставати «PHP-програмістами» ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://jug.ua/2011/09/shlyax-programista/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Android и iPhone – войны браузеров</title>
		<link>http://jug.ua/2010/10/android-i-iphone-%e2%80%93-vojny-brauzerov/</link>
		<comments>http://jug.ua/2010/10/android-i-iphone-%e2%80%93-vojny-brauzerov/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 13:32:51 +0000</pubDate>
		<dc:creator>ibm_dw</dc:creator>
				<category><![CDATA[программирование]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://jug.ua/?p=512</guid>
		<description><![CDATA[Разнообразные пользовательские приложения, работающие на платформах iPhone и Android, завоевали широкую популярность у владельцев мобильных устройств. Развитие мобильных и Web-технологий открывает новые возможности в сфере мобильных Web-приложений. Часть 1.WebKit спешит на помощь В рамках статьи рассматривается построение простого приложения для мониторинга сети, которое может выполняться как на браузере настольного компьютера, так и на обоих мобильных [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jug.ua/wp-content/uploads/2010/10/android_vs_iphone.jpg"><img class="alignleft size-thumbnail wp-image-513" style="margin: 5px" src="http://jug.ua/wp-content/uploads/2010/10/android_vs_iphone-150x150.jpg" alt="" width="150" height="150" /></a>Разнообразные пользовательские приложения, работающие на платформах iPhone и Android, завоевали широкую популярность у владельцев мобильных устройств. Развитие мобильных и Web-технологий открывает новые возможности в сфере мобильных Web-приложений.</p>
<p><a href="http://www.ibm.com/developerworks/ru/library/os-androidiphone1/index.html?S_TACT=105AGX99&amp;S_CMP=GR01" target="_blank">Часть 1.WebKit спешит на помощь</a></p>
<p>В рамках статьи рассматривается построение простого приложения для мониторинга сети, которое может выполняться как на браузере настольного компьютера, так и на обоих мобильных браузерах.</p>
<p><a href="http://www.ibm.com/developerworks/ru/library/os-androidiphone2/index.html?S_TACT=105AGX99&amp;S_CMP=GR01" target="_blank">Часть 2. Разработка приложения для браузера на платформе iPhone или Android </a></p>
<p>В этой статье мы продолжим наше знакомство с мобильными Web-технологиями и закончим разработку Web-приложения для мониторинга сети, которое будет выполняться на браузерах iPhone и Android. Наше приложение будет использовать локальное SQL-хранилище и технологию Ajax, обеспечивающую широкую функциональность приложений для мобильных браузеров. Кроме того, приложение будет использовать популярную JavaScript-библиотеку jQuery.</p>
<p><a href="http://www.ibm.com/developerworks/ru/?S_TACT=105AGX99&amp;S_CMP=GR01">Источник IBM developerWorks Россия</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jug.ua/2010/10/android-i-iphone-%e2%80%93-vojny-brauzerov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

