<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8439594666176756133</id><updated>2026-03-27T21:59:00.134+03:00</updated><category term="3D"/><category term="GameDev"/><category term="Web"/><category term="3D Моделирование"/><category term="Programming"/><category term="C#"/><category term="MS 70-483"/><category term="3Ds MAX"/><category term="Android"/><category term="HTML"/><category term="ИСИС"/><category term="Spacedraw"/><category term="Unreal Engine"/><category term="UNIX"/><category term="Java Script"/><category term="Unity3D"/><category term="boooring"/><category term="Текстурирование"/><category term="мувики"/><category term="AIX"/><category term="Administration"/><category term="Blender"/><category term="Modx"/><category term="PHP"/><category term="Unreal Editor"/><category term="железо"/><category term="HLAG"/><category term="SubDivFormer"/><category term="Substance Painter"/><category term="WIP"/><category term="размышления"/><category term="рендер"/><category term="Joomla"/><category term="Level Design"/><category term="Linux"/><category term="Python"/><category term="dDO"/><category term="web-дизайн"/><category term="анимация"/><category term=".NET"/><category term="2D"/><category term="3Ds MAX to Blender"/><category term="Angular.js"/><category term="Astrophotography"/><category term="Eve Online"/><category term="GUI"/><category term="HP-UX"/><category term="Java"/><category term="Java EE"/><category term="JavaScript"/><category term="JsEnCo"/><category term="Photoshop"/><category term="React"/><category term="SSD"/><category term="Solaris"/><category term="Truesculpt"/><category term="WAS"/><category term="Warhammer 40k"/><category term="Wh30k"/><category term="Windows"/><category term="Workplace"/><category term="dart"/><category term="emacs"/><category term="misc"/><category term="spacemacs"/><category term="Скульптинг"/><category term="блог"/><category term="взгляд"/><category term="видеоурок"/><category term="обзор"/><category term="хостинг"/><category term="юмор"/><title type='text'>Coding || 3D | blog</title><subtitle type='html'>by Rvach.Flyver</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>130</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-9074722436072599900</id><published>2021-08-01T16:34:00.009+03:00</published><updated>2021-08-01T16:34:56.497+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Warhammer 40k"/><category scheme="http://www.blogger.com/atom/ns#" term="Wh30k"/><title type='text'>Warhammer 30000 - The Last Church</title><content type='html'>&lt;p&gt;&amp;nbsp;I recommend to everyone interested in Warhammer 40000 to read or look the story called &quot;The Last Church&quot;:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&quot;&quot; class=&quot;BLOG_video_class&quot; height=&quot;360&quot; src=&quot;https://www.youtube.com/embed/jSEVCs8o0H8&quot; width=&quot;640&quot; youtube-src-id=&quot;jSEVCs8o0H8&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/9074722436072599900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2021/08/warhammer-30000-last-church.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/9074722436072599900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/9074722436072599900'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2021/08/warhammer-30000-last-church.html' title='Warhammer 30000 - The Last Church'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/jSEVCs8o0H8/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-7923278530928728111</id><published>2020-11-27T23:47:00.009+03:00</published><updated>2020-11-27T23:48:35.925+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript"/><category scheme="http://www.blogger.com/atom/ns#" term="JsEnCo"/><title type='text'>JsEnCo - JavaScript Engines Comparator v1 alpha</title><content type='html'>&lt;p&gt;Today I&#39;ve completed working on my tool for comparison of javascript performance on different engines with CPU and RAM metrics.&lt;br /&gt;&lt;br /&gt;It appears as my investigation of how JS engines optimizes the code because I needed simple way of checking my understanding and assumption.&lt;/p&gt;&lt;p&gt;By default each test run all scripts in &lt;b&gt;&#39;/tests&#39;&lt;/b&gt; folder one by one by engines.&amp;nbsp;&lt;br /&gt;While running CPU and RAM usages is monitored.&lt;br /&gt;After tests are executed by all engines (depends on options) results are saved in &lt;b&gt;&#39;/results/data&#39;&lt;/b&gt; folder.&lt;br /&gt;Depending on settings an http-server is started at the end and web-gui appears at &lt;b&gt;&#39;http://localhost:3333&#39;.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;A simple web-gui is available to compare results:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicoKdevfGpWINnB8s-LYyBvcloXvPeOYXKxkvnmisWmw7MFR6ZakezrZ7sVjoqpvZcNuhKzJY3DcUJNf3AAaS52cU4YbJ8B4ntwQE4BOoEszs6tm7il9Zb7ykcBneCrvYI7ZzyQpNMHFk/s1881/Screen+Shot+2020-11-27+at+11.45.31+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;968&quot; data-original-width=&quot;1881&quot; height=&quot;329&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicoKdevfGpWINnB8s-LYyBvcloXvPeOYXKxkvnmisWmw7MFR6ZakezrZ7sVjoqpvZcNuhKzJY3DcUJNf3AAaS52cU4YbJ8B4ntwQE4BOoEszs6tm7il9Zb7ykcBneCrvYI7ZzyQpNMHFk/w640-h329/Screen+Shot+2020-11-27+at+11.45.31+PM.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Check it out at: &lt;a href=&quot;https://github.com/rv4Flyver/jsenco&quot;&gt;https://github.com/rv4Flyver/jsenco&lt;/a&gt;&lt;/p&gt;&lt;p&gt;It is possible to run it as nodejs app or using docker image.&lt;/p&gt;&lt;p&gt;I&#39;m going to publish the image to DockerHub soon.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/7923278530928728111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2020/11/jsenco-javascript-engines-comparator-v1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/7923278530928728111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/7923278530928728111'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2020/11/jsenco-javascript-engines-comparator-v1.html' title='JsEnCo - JavaScript Engines Comparator v1 alpha'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicoKdevfGpWINnB8s-LYyBvcloXvPeOYXKxkvnmisWmw7MFR6ZakezrZ7sVjoqpvZcNuhKzJY3DcUJNf3AAaS52cU4YbJ8B4ntwQE4BOoEszs6tm7il9Zb7ykcBneCrvYI7ZzyQpNMHFk/s72-w640-h329-c/Screen+Shot+2020-11-27+at+11.45.31+PM.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-2301303973832225214</id><published>2019-04-23T11:17:00.000+03:00</published><updated>2019-04-23T11:17:04.080+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="emacs"/><category scheme="http://www.blogger.com/atom/ns#" term="spacemacs"/><title type='text'>Emacs for MacOS</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
To download latest recommended emacs build for MacOS you have to options&lt;br /&gt;
&lt;pre&gt;  1) https://emacsformacosx.com/ (then access it from Launchpad )
  2) https://github.com/d12frosted/homebrew-emacs-plus (the use emacs from console)
&lt;/pre&gt;
&lt;br /&gt;
The first option is the simplest and fastest one, while the second is more feature rich (see readme of repository).&lt;br /&gt;
&lt;br /&gt;
Also I recommend for newcomers (in case of struggling with emacs interface) to try spacemacs&lt;br /&gt;
&lt;pre&gt;http://spacemacs.org/&lt;/pre&gt;
&lt;pre&gt;
&lt;/pre&gt;
&lt;pre&gt;It way more user-friendly and has some features you can like very much (like `hybrid` editing mode).&lt;/pre&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/2301303973832225214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2019/04/emacs-for-macos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/2301303973832225214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/2301303973832225214'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2019/04/emacs-for-macos.html' title='Emacs for MacOS'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-7587436998388190340</id><published>2019-04-01T11:12:00.000+03:00</published><updated>2019-04-09T11:21:32.337+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GameDev"/><title type='text'>Unreleased Game on ID Tech4</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Here is some sreenshots from unrleased game I&#39;ve worked on more than 3 years ago:&lt;/div&gt;
&lt;div style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnYB58C21F-FzFVOUkcVf5TIDjzTKzYS-ybdbE5T598QIfNAnA0Sg15lnm0hkckndtSFvvOgxkzxM1H4c2gOD7xmOcr9RDoMUJvfzP5M_bDcNaVDiYWMszAnMKHWtN1cNDCxmTN96Yp_E/s1600/2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1000&quot; data-original-width=&quot;1600&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnYB58C21F-FzFVOUkcVf5TIDjzTKzYS-ybdbE5T598QIfNAnA0Sg15lnm0hkckndtSFvvOgxkzxM1H4c2gOD7xmOcr9RDoMUJvfzP5M_bDcNaVDiYWMszAnMKHWtN1cNDCxmTN96Yp_E/s640/2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhspB4TpmPCWrk-fpazxqV1Z4y-pQFHT206j0dvxKTI2dbD7n5n4hysVeUyu1rMOmjLxAHwLgY9fpBhHynvAjRVRbnU_wIIiIA5EqaxtIVDBjp1-RIQNGI5MvO9E3fYa8cH4SwWfoJIp78/s1600/3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1000&quot; data-original-width=&quot;1600&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhspB4TpmPCWrk-fpazxqV1Z4y-pQFHT206j0dvxKTI2dbD7n5n4hysVeUyu1rMOmjLxAHwLgY9fpBhHynvAjRVRbnU_wIIiIA5EqaxtIVDBjp1-RIQNGI5MvO9E3fYa8cH4SwWfoJIp78/s640/3.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwsq1JdOXqymxllvWOowfKbVow84eiQ2la6VlSVGgO8EokIkRRWP7TNmaHQZyFlouuFRoUpnwFE57-y3sqofciRL6eARzot88yO-lIdPDZKQbx5PackSk_Fg6fa4LjkcT7H9ns19OZA10/s1600/1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1000&quot; data-original-width=&quot;1600&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwsq1JdOXqymxllvWOowfKbVow84eiQ2la6VlSVGgO8EokIkRRWP7TNmaHQZyFlouuFRoUpnwFE57-y3sqofciRL6eARzot88yO-lIdPDZKQbx5PackSk_Fg6fa4LjkcT7H9ns19OZA10/s640/1.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Some early experiments with water:&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD_DbVjnLVsVz_2Tq9-RDS7GDEdeAzyGeA9CkPBJOYa2Pwu7DOfSDc2zHkxRA35AW0GFLi6wf439P3u8ZagYz1Pp-2D2tA0Q8ps4VnCGTm0ZDc0sGpz6YLWJ0A3msIaw14Pzku5xvTtG8/s1600/d3-water.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;600&quot; data-original-width=&quot;800&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD_DbVjnLVsVz_2Tq9-RDS7GDEdeAzyGeA9CkPBJOYa2Pwu7DOfSDc2zHkxRA35AW0GFLi6wf439P3u8ZagYz1Pp-2D2tA0Q8ps4VnCGTm0ZDc0sGpz6YLWJ0A3msIaw14Pzku5xvTtG8/s640/d3-water.gif&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Animation of characters:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1cMwMDT1sswgo0TY7CQBKIXuS8oFhCs7I596-ZzJKjIpygJOkP8G7CuJmXqe0HtjWIYhz6rCvkq1RpK8cpB_64LF53hZiy1qo47Dg1ibuCuZxSs3gj1c2X8v4HBkZqKaZftoEZBORoEY/s1600/HeadDrop-Model-Auto.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;720&quot; data-original-width=&quot;1280&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1cMwMDT1sswgo0TY7CQBKIXuS8oFhCs7I596-ZzJKjIpygJOkP8G7CuJmXqe0HtjWIYhz6rCvkq1RpK8cpB_64LF53hZiy1qo47Dg1ibuCuZxSs3gj1c2X8v4HBkZqKaZftoEZBORoEY/s640/HeadDrop-Model-Auto.gif&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Broken weapon animation :D&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr2pJEhysL-GZz_Tp23SV0_0hHlfchYTw5kOWYmhcdgVsDirwWmdpdYzrpaeaoYzNjqDQ7avoDAR30QRufvA3NMBMcurO3MibtMhxjeukipjHtMkmshclms3Oymq3GiZ3VGcUCjRanZG4/s1600/HeadDrop-Weapon-PistolModelReplacement.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;720&quot; data-original-width=&quot;1280&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr2pJEhysL-GZz_Tp23SV0_0hHlfchYTw5kOWYmhcdgVsDirwWmdpdYzrpaeaoYzNjqDQ7avoDAR30QRufvA3NMBMcurO3MibtMhxjeukipjHtMkmshclms3Oymq3GiZ3VGcUCjRanZG4/s640/HeadDrop-Weapon-PistolModelReplacement.gif&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
HUD:&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrqipQ1sVn-2eY3xBnXkohmRyyhOSjBgjq5rEryRCsLj3eotkitPVvkavSRkMOEaNXyxdxJ5_YXsbPWeyUt98X4E4VJLOM4hSNEdulKjDyVVuICeKsmyx5MoVTEOQ7OWKWhk6dPu04N04/s1600/HUD-System-Prototype.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;758&quot; data-original-width=&quot;1296&quot; height=&quot;374&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrqipQ1sVn-2eY3xBnXkohmRyyhOSjBgjq5rEryRCsLj3eotkitPVvkavSRkMOEaNXyxdxJ5_YXsbPWeyUt98X4E4VJLOM4hSNEdulKjDyVVuICeKsmyx5MoVTEOQ7OWKWhk6dPu04N04/s640/HUD-System-Prototype.gif&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/7587436998388190340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2019/04/unreleased-game-on-id-tech4.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/7587436998388190340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/7587436998388190340'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2019/04/unreleased-game-on-id-tech4.html' title='Unreleased Game on ID Tech4'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnYB58C21F-FzFVOUkcVf5TIDjzTKzYS-ybdbE5T598QIfNAnA0Sg15lnm0hkckndtSFvvOgxkzxM1H4c2gOD7xmOcr9RDoMUJvfzP5M_bDcNaVDiYWMszAnMKHWtN1cNDCxmTN96Yp_E/s72-c/2.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-1734481366532745903</id><published>2019-03-27T14:29:00.002+03:00</published><updated>2019-03-27T14:33:12.781+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Eve Online"/><title type='text'>Eve Online Stranger Diary</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Recently I&#39;ve found out a great article about&amp;nbsp;&lt;a href=&quot;http://gamingwithdaopa.ellatha.com/eveonline/pros-and-cons-of-each-race/&quot;&gt;pros and cons of each rase in EVE&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
To sum up they are:&lt;br /&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;th&gt;R A C E&lt;/th&gt;&lt;th&gt;P R O S&lt;/th&gt;&lt;th&gt;C O N S&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;b&gt;Amarr&lt;/b&gt;&lt;/td&gt;&lt;td&gt;armor, beam weaponry, drones&lt;/td&gt;&lt;td&gt;slow, limited damage types&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;b&gt;Caldari&lt;/b&gt;&lt;/td&gt;&lt;td&gt;shield tech, hybrid turrets and missiles&lt;/td&gt;&lt;td&gt;missiles are slow, limited damage types, weak agains EM damage&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;b&gt;Gallente&lt;/b&gt;&lt;/td&gt;&lt;td&gt;armor, hybrid turrets and drones&lt;/td&gt;&lt;td&gt;drones specific cons (travel time, can be destroyed), limited damage types&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;b&gt;Minmatar&lt;/b&gt;&lt;/td&gt;&lt;td&gt;projectile weapons, speed, armor/shield&lt;/td&gt;&lt;td&gt;high skill req-s, ship generally has lower hit points then others&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
So as far as I understand when creating a character only the race choice matters. Race affects starting skills, ship and level limits.&lt;br /&gt;
&lt;br /&gt;
In the article mentioned before there are good list of highest possible skill limits for alpha clones.&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Tips for busy people&lt;/h2&gt;
Also I&#39;ve found a very good video how to play efficiently and waste less time:&lt;br /&gt;
&lt;iframe allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;800&quot; src=&quot;https://www.youtube.com/embed/uOjr09UXnsk?list=WL&quot; width=&quot;100%&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Tips for beginners&lt;/h2&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Try everything at the beginning and then stick to whatever you like (PvP, PvE, mining, visit wormholes, trade)&lt;/li&gt;
&lt;li&gt;Join a corporation which shares your interests.&lt;/li&gt;
&lt;li&gt;Go from smallest to largest ships to obtain all required skills.&lt;/li&gt;
&lt;li&gt;High security space in fact not so secure, you can be easily killed for valuable cargo.&lt;/li&gt;
&lt;li&gt;Don&#39;t be bothered because of scams, they are everywhere and this is a part of a game.&lt;/li&gt;
&lt;li&gt;And as a result of last point: &lt;b&gt;Do not fly what you afraid to loose&lt;/b&gt; :)&lt;/li&gt;
&lt;li&gt;Do not waste to much on EVE and prevent life from happening with you (:&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/1734481366532745903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2019/03/eve-online-stranger-diary.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/1734481366532745903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/1734481366532745903'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2019/03/eve-online-stranger-diary.html' title='Eve Online Stranger Diary'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/uOjr09UXnsk/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-6996987761312943175</id><published>2019-02-15T16:15:00.002+03:00</published><updated>2019-03-27T14:34:19.369+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dart"/><title type='text'>No Dart for Chrome :(</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Some time ago I for the first time faced Dart and it fascinated me.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;optionally strongly typed, because Dart can infer types;&lt;/li&gt;
&lt;li&gt;top-level functions and variables support;&lt;/li&gt;
&lt;li&gt;generic-types;&lt;/li&gt;
&lt;li&gt;lexical closures (available for class declarations&amp;nbsp; as well);&lt;/li&gt;
&lt;li&gt;implicit interfaces;&lt;/li&gt;
&lt;li&gt;out of the box Future and Streams;&lt;/li&gt;
&lt;li&gt;StringBuffer for efficient creation of long strings dynamically;&lt;/li&gt;
&lt;li&gt;class mixins using with statement;&lt;/li&gt;
&lt;li&gt;entry point in the main function;&lt;/li&gt;
&lt;/ul&gt;
But fascination was broken and as it appears I&#39;ve missed a lot, just a single line:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;i&gt;We have decided not to integrate the Dart VM into Chrome.&lt;/i&gt;&lt;/blockquote&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;Source: https://news.dartlang.org/2015/03/dart-for-entire-web.html&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/6996987761312943175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2019/02/dart-for-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/6996987761312943175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/6996987761312943175'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2019/02/dart-for-web.html' title='No Dart for Chrome :('/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-6466637971069277995</id><published>2018-12-03T16:23:00.004+03:00</published><updated>2018-12-03T16:24:50.018+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HLAG"/><title type='text'>HLAG goes opensource!</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I&#39;ve finally managed to find some spare time and push HLAG code to github, here it is:&lt;br /&gt;
&lt;a href=&quot;https://github.com/rv4Flyver/rv4hlag&quot;&gt;https://github.com/rv4Flyver/rv4hlag&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
To play, please, read &lt;a href=&quot;https://github.com/rv4Flyver/rv4hlag#how-to-play&quot;&gt;how-to-play&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/6466637971069277995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2018/12/hlag-goes-opensource.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/6466637971069277995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/6466637971069277995'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2018/12/hlag-goes-opensource.html' title='HLAG goes opensource!'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-2122559550382138253</id><published>2017-04-18T10:30:00.003+03:00</published><updated>2017-04-18T10:30:45.101+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java Script"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'></title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Recently I have found a really neat vertical accordion in jQuery:
&lt;br /&gt;
&lt;pre&gt;$(document).ready(function(){
$(&quot;.accordion-toggle&quot;).click(function() {

 
      if($(this).next(&quot;div&quot;).is(&quot;:visible&quot;)){
        $(this).next(&quot;div&quot;).slideUp(&quot;slow&quot;);
        $(this).children().toggleClass(&quot;fa-angle-up fa-angle-down&quot;);
      } else {
        $(&quot;.accordion-toggle&quot;).next(&quot;div&quot;).slideUp(&quot;slow&quot;);
        $(&quot;.accordion-toggle i&quot;).attr(&quot;class&quot;, &quot;fa fa-angle-down&quot;);
        $(this).next(&quot;div&quot;).slideDown(&quot;slow&quot;);
        $(this).children().toggleClass(&quot;fa-angle-up fa-angle-down&quot;);
      }
});
});&lt;/pre&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;http://jsbin.com/cizoziqiji/2/edit?html,css,js,output&quot;&gt;Go to jsbin.com for preview&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/2122559550382138253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2017/04/recently-i-have-found-really-neat.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/2122559550382138253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/2122559550382138253'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2017/04/recently-i-have-found-really-neat.html' title=''/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-4400135434320021293</id><published>2017-03-27T09:58:00.001+03:00</published><updated>2017-03-27T09:58:18.554+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Administration"/><category scheme="http://www.blogger.com/atom/ns#" term="Workplace"/><title type='text'>rsync on Windows with Git Bash 2.x (mingw64)</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Download latest&amp;nbsp;&lt;a href=&quot;https://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/&quot;&gt;MSYS Package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Copy following files from&amp;nbsp;\msys\bin:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;msys-1.0.dll&lt;/li&gt;
&lt;li&gt;msys-iconv-2.dll&lt;/li&gt;
&lt;li&gt;msys-intl-8.dll&lt;/li&gt;
&lt;li&gt;msys-popt-0.dll&lt;/li&gt;
&lt;li&gt;rsync.exe&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Paste copied files to&amp;nbsp;&amp;nbsp;&quot;C:\Program Files\Git\mingw64\bin&quot;&lt;/li&gt;
&lt;li&gt;Run Git Bash and test rsync:&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img src=&quot;data:image/png;base64,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&quot; /&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/4400135434320021293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2017/03/rsync-on-windows-with-git-bash-2x.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/4400135434320021293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/4400135434320021293'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2017/03/rsync-on-windows-with-git-bash-2x.html' title='rsync on Windows with Git Bash 2.x (mingw64)'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-6984125960876981638</id><published>2017-01-17T20:46:00.001+03:00</published><updated>2018-07-21T00:40:10.097+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HLAG"/><title type='text'>Public HLAG Prototype Release (v0.2)</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;b&gt;HLAG &lt;/b&gt;is my attempt to remake a great forgotten game and try to give it another birth.&lt;br /&gt;
In additional I working on entire game infrastructure, because nowadays game itself means almost nothing, this is proved by many great games that have been undeservedly forgotten by most of gamers.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;720&quot; src=&quot;https://www.youtube.com/embed/9t8S5Dp3Isc?list=PLEt5n4-C-VLEZ3o4MBBVbq4eeGqzpNqjK&quot; width=&quot;100%&quot;&gt;&lt;/iframe&gt;

&lt;i&gt;Here is YouTube playlist related to this project: &lt;a href=&quot;https://www.youtube.com/watch?v=QBpB2zWOckI&amp;amp;list=PLEt5n4-C-VLEZ3o4MBBVbq4eeGqzpNqjK&quot;&gt;HLAG&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
So here is the link to game launcher:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;http://195.123.209.124:8080/hlag/builds/launcher.exe&quot;&gt;DOWNLOAD GAME LAUNCHER (Win 64)&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://www.dropbox.com/s/1z8kn4wlyrk325t/hlag-nightly.zip?dl=0&quot;&gt;DOWNLOAD NIGHTLY BUILD OF HLAG&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Instructions:&lt;/h4&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Download&lt;/li&gt;
&lt;li&gt;Unpack into some folder&lt;/li&gt;
&lt;li&gt;Execute run.bat&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Currently done:&lt;/h4&gt;
- prototype game client&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
- test game server&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
- repository server&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
- prototype service (serving user related data, updates server, servers list, but functionality for creation of tournaments/championships is implemented and have not consumed by the launcher yet)&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
- game launcher (connect/host game, edit config, join messaging server, consume players/teams data, servers list, news, user registration)&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Public Issue Tracker on Bitbucket&lt;/h3&gt;
If you have found an issue, please report it here:&amp;nbsp;&lt;a href=&quot;https://bitbucket.org/Rvach-Flyver/hlag-full/issues&quot;&gt;https://bitbucket.org/Rvach-Flyver/hlag-full/issues&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/6984125960876981638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2017/01/public-hlag-prototype-release.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/6984125960876981638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/6984125960876981638'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2017/01/public-hlag-prototype-release.html' title='Public HLAG Prototype Release (v0.2)'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/9t8S5Dp3Isc/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-8248019245708169949</id><published>2016-10-26T16:51:00.000+03:00</published><updated>2019-03-28T16:52:55.398+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HLAG"/><title type='text'>HLAG - Dev Log</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
A Small Preface&lt;/h3&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Sometimes Step Forward is a Step Backward&lt;/h4&gt;
I&#39;m going to make real one of my dreams I have during playing Adrenaline Gamer mod. That dream is a worthy successor of the game.&lt;br /&gt;
&lt;br /&gt;
Years passed, different modern engines and technologies were investigated and learned by me. With time came knowledge and understanding and I realized that sometimes step forward is a step backward and maybe one of the better solutions is to develop &lt;b&gt;Adrenaline Gamer&lt;/b&gt; using predecessor engine which, I must admit, evolved greatly since 1996 and continues that progress thanks to many talented people.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
QuakeLife&lt;/h4&gt;
&lt;div&gt;
One day, digging the Internet (in particular github), I found an interesting project called &lt;b&gt;QuakeLife&lt;/b&gt;. At he beginning, the initial idea of the project was behind the curtains for me as there were no description in the github repository and I tried to compile it and run with &lt;b&gt;Darkplaces &lt;/b&gt;engine and saw nothing special (at first glance)... It allowed to play &lt;b&gt;HL&amp;nbsp;&lt;/b&gt;maps in &lt;b&gt;Quake&lt;/b&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Then I realized that it can be greatest possible starting point for a remake.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Code Quake&lt;/h4&gt;
&lt;div&gt;
I was really amazed when find out that there are two popular protocols in &lt;b&gt;QuakeOne&lt;/b&gt;:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;QuakeWorld&amp;nbsp;&lt;/li&gt;
&lt;li&gt;NetQuake&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
So... jumping in coding before reading some information was my first mistake...&lt;br /&gt;
It appears that &lt;b&gt;Darkplaces &lt;/b&gt;does not support multicast, userinfo and other features that &lt;b&gt;QuakeWorld &lt;/b&gt;supports. And as far as I could understand from the &lt;b&gt;QuakeLife &lt;/b&gt;code this functionality was used in it.&lt;br /&gt;
&lt;br /&gt;
Obviously better option is to use &lt;b&gt;FTE &lt;/b&gt;as it deviate from &lt;b&gt;QuakeWorld &lt;/b&gt;and with time gets NetQuake protocol support. Besides, as I mentioned before, the author of &lt;b&gt;QuakeLife &lt;/b&gt;used it :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Current Status&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Here is some videos showing current status of the project. I&#39;m going to release a prototype with fully reworked assets, maybe with exception of maps, for a small group of people to receive a feedback and adjust my plans for the future.&lt;br /&gt;
&lt;br /&gt;
I&#39;m going to distribute content using my own launcher developed with andgular.js and nw.js as it allows me to easily build and setup another core object of this project - The Infrastructure.&lt;br /&gt;
&lt;br /&gt;
...&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Plans&lt;/h3&gt;
&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Implement &amp;amp; Test Prototype&lt;/li&gt;
&lt;li&gt;Implement, Setup &amp;amp; Test Basic Infrastracture (Launcher, Services, Servers)&lt;/li&gt;
&lt;li&gt;Release Private Prototype&lt;/li&gt;
&lt;li&gt;Release Public Prototype&lt;/li&gt;
&lt;li&gt;Deside what to do with all of that (I hope I&#39;ll continue development)&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/8248019245708169949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2016/10/hlag-dev-log.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/8248019245708169949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/8248019245708169949'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2016/10/hlag-dev-log.html' title='HLAG - Dev Log'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-1449814782408396658</id><published>2016-02-06T17:44:00.002+03:00</published><updated>2016-02-12T11:47:36.444+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java Script"/><category scheme="http://www.blogger.com/atom/ns#" term="React"/><title type='text'>React Native Android - Attach. Start. Debug!</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhnVveMRHtEAZfnZza_DfdpMtNUgI6PH5-AnUFUkrMcnOYgxeXySqYtvA5HTtpVJ7kGBjy427HuZXZqa1plGHr0QKQs8jfXBoBz5Q0pBGD-Wo0Rxbsl2oB1x4cp6swIjfXLZev7x9Cbak/s400/react-native.png&quot; style=&quot;float: right; padding: 0px 0 0 5px;&quot; width=&quot;400&quot; /&gt;
&lt;br /&gt;
One day I decided to learn smth that will enable me to use my knowledge of web-development in mobile-development, so I can just jump in it with minimum effort. And I started to look for such technology:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;Cordova&lt;/b&gt; should be used when you have already had an existing mobile website which can be exposed as an app, and don&#39;t care about smooth animations, integration of the every possible platrofm feature. In that way you don&#39;t need developers for each major frontend platform, but only web-developers, that you already have.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;React Native&lt;/b&gt; should be used when you have a team of React.js (or simply JavaScript) developers, thus enable them to use the same language (and probably framework) for the website, mobile app, and server. It is very good compromise when choosing between Cordowa and Native.&amp;nbsp;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Native&lt;/b&gt;, of cource, should be used when you want the absolute best user experience, latest features of the platform.
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;This info was found here: &lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;https://www.reddit.com/r/javascript/comments/3wi2ty/cordova_vs_react_native_vs_native_ios_and_android/cxwpydg&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;hr /&gt;
The focus of React Native is on developer efficiency across all the platforms you care about — learn once, write anywhere.&lt;br /&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Prerequisites&lt;/h3&gt;
Install &amp;amp; configure:&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;GIT&lt;/li&gt;
&lt;li&gt;latest JDK&lt;/li&gt;
&lt;li&gt;Android SDK&lt;/li&gt;
&lt;li&gt;
Define the ANDROID_HOME environment variable
&lt;pre&gt;# ANDROID_HOME C:\Users\User\AppData\Local\Android\android-sdk
# Path ;%ANDROID_HOME%\tools\;%ANDROID_HOME%\platform-tools\
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
(optionally) Use gradle daemon to decrease build time
&lt;pre&gt;For more info go here: https://docs.gradle.org/2.9/userguide/gradle_daemon.html
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Configure your SDK
&lt;ul&gt;
&lt;li&gt;Open the Android SDK Manager&lt;/li&gt;
&lt;li&gt;Check Android SDK Build-tools version 23.0.1&lt;/li&gt;
&lt;li&gt;Check Android 6.0 (API 23)&lt;/li&gt;
&lt;li&gt;Check Android Support Repository&lt;/li&gt;
&lt;li&gt;Install Packages&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
React-Native AwesomeProject Init&lt;/h3&gt;
&lt;pre&gt;$ npm install -g react-native-cli
$ react-native init AwesomeProject

# Add Android Support to Existing Project:
# 1. Update the react-native dependency in your package.json file to the latest version
# 2. $ npm install
# 3. $ react-native android

# On Windows the packager won&#39;t be started automatically, so start it manually:
$ cd MyAwesomeApp
$ react-native start
# If you hit a ERROR Watcher took too long to load on Windows, increase 
# MAX_WAIT_TIME in ...\AwesomeProject\node_modules\react-native\packager\react-packager\src\FileWatcher\
&lt;/pre&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Connect to the device
&lt;/h3&gt;
&lt;pre&gt;# Do not forget to enable usb-debugging in your device.
# Connect your device to the PC and then run:
| adb devices
# You should see the list of devices attached
| List of devices attached
| * daemon not running. starting it now on port 5037 *
| * daemon started successfully *
| 8T9PH6PFMFQW55YP        device
# If instead of &#39;device&#39; you see &#39;unauthorized&#39;, take your device and click yes to authorize the computer.
&lt;/pre&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Connect to the development server
&lt;/h3&gt;
&lt;pre&gt;
# To be able to connect to development server from you device you can use adb reverse (Android 5.0+) or Wi-Fi
| $ adb reverse tcp:8081 tcp:8081
# How to connect to dev server via Wi-Fi you can find out here: 
# https://facebook.github.io/react-native/docs/running-on-device-android.html#configure-your-app-to-connect-to-the-local-dev-server-via-wi-fi
&lt;/pre&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Run &amp;amp; Debug on Device&lt;/h3&gt;
&lt;pre&gt;# Try to run app on your device
| $ cd AwesomeProject
| $ react-native run-android
# It is possible that you will run into the same issue that I&#39;ve faced: 
| Execution failed for task &#39;:app:installDebug&#39;.
| &amp;gt; com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: Unable to upload some APKs
# So what you should do is:
#  go toAweSomeProject\android\build.gradle
#  find and set(you can try other versions of grandle):
    dependencies {
        classpath &#39;com.android.tools.build:gradle:&lt;b&gt;1.2.3&lt;/b&gt;&#39;

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
# Try to execute &#39;react-native run-android&#39; again.
&lt;/pre&gt;
&lt;br /&gt;
Now let&#39;s try to open dev-tools in application, but here you can run into problem of another kind, if popups are restricted for the application:
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;460&quot; src=&quot;https://www.youtube.com/embed/hZfcIT74PS8&quot; width=&quot;100%&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7bbkBtEXKheU50P4KJgzTBJT7sIwH67CHvd23MNSRex-NAzDxPCM8qSJBtP3gG5cG9Tcc5JE8_R5ZeioHv4w1gOX_uaUNFf9BWl1yngL3O4T_kcpSQARbOyE8BDK-Wtu5fGinO1Fd_5A/s1600/Screenshot_2016-02-06-11-30-58_com.awesomeproject.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7bbkBtEXKheU50P4KJgzTBJT7sIwH67CHvd23MNSRex-NAzDxPCM8qSJBtP3gG5cG9Tcc5JE8_R5ZeioHv4w1gOX_uaUNFf9BWl1yngL3O4T_kcpSQARbOyE8BDK-Wtu5fGinO1Fd_5A/s400/Screenshot_2016-02-06-11-30-58_com.awesomeproject.png&quot; width=&quot;225&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
After you complete these steps call dev-menu and:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;enable Live Reload&lt;/li&gt;
&lt;li&gt;cick Debug JS (now open Chrome and open http://localhost:8081/debugger-ui)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Some goodies&lt;/h3&gt;
&lt;pre&gt;# Good catalog of react native components:
  https://js.coach/react-native

# Stackoverflow:
  http://stackoverflow.com/questions/tagged/react-native
&lt;/pre&gt;
&lt;pre&gt;#&amp;nbsp;react-developer-tools:
  https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en&lt;/pre&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/1449814782408396658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2016/02/react-native-android-start-debug.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/1449814782408396658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/1449814782408396658'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2016/02/react-native-android-start-debug.html' title='React Native Android - Attach. Start. Debug!'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhnVveMRHtEAZfnZza_DfdpMtNUgI6PH5-AnUFUkrMcnOYgxeXySqYtvA5HTtpVJ7kGBjy427HuZXZqa1plGHr0QKQs8jfXBoBz5Q0pBGD-Wo0Rxbsl2oB1x4cp6swIjfXLZev7x9Cbak/s72-c/react-native.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-1043932291772925362</id><published>2016-01-22T14:15:00.000+03:00</published><updated>2016-01-22T14:18:29.987+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="misc"/><title type='text'>Save your eyes on Ubuntu with Cinnamon</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7dwHs5Te9Olx8s-jnT0B6ARnxc4uEaRSecvKhNwyAA7wqrNB6BMzpp1w2ZYmf6pXqFVyPMZD42mLdUebPJSmIjcXlyoP-v15Zfnng-LZUmo2bvAx_C-wjqfdNuq35DiPujumCv97_CM0/s1600/Screenshot+from+2015-10-28+16%253A44%253A02.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7dwHs5Te9Olx8s-jnT0B6ARnxc4uEaRSecvKhNwyAA7wqrNB6BMzpp1w2ZYmf6pXqFVyPMZD42mLdUebPJSmIjcXlyoP-v15Zfnng-LZUmo2bvAx_C-wjqfdNuq35DiPujumCv97_CM0/s1600/Screenshot+from+2015-10-28+16%253A44%253A02.png&quot; style=&quot;width: 90%&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;Ubuntu with Cinnamon:&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
set&amp;nbsp;Global Dark Theme mode&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Run Tweak Tool&lt;/li&gt;
&lt;li&gt;Go to Appearance&lt;/li&gt;
&lt;li&gt;Set Global Dark Theme to ON&lt;/li&gt;
&lt;li&gt;Set Window to Crux&lt;/li&gt;
&lt;li&gt;Set GTK+ to 05-Crunchy-green&lt;/li&gt;
&lt;li&gt;Set Icons to Humanity-Dark&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Install following themes:&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;05-Crunchy-green&lt;/li&gt;
&lt;li&gt;Dark_Void&lt;/li&gt;
&lt;li&gt;delorean-dark&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
and configure them:&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Windows borders: 05-Crunchy-green&lt;/li&gt;
&lt;li&gt;Icons: Default&lt;/li&gt;
&lt;li&gt;Controls: delorean-dark&lt;/li&gt;
&lt;li&gt;Desktop: delorean-dark&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Chrome: &lt;/b&gt;&lt;br /&gt;
download extension Stylish here:&lt;br /&gt;
&lt;pre&gt;https://chrome.google.com/webstore/detail/stylish/fjnbnpbmkenffdnngjfgmeleoegfcffe?utm_source=chrome-app-launcher-info-dialog&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Krusader:&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Import Colors From File (Google Drive :/ Work / Krusader Colors )&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;Eclipse:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Install &lt;b&gt;Theme Colors&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Go to &lt;b&gt;Window - Preferences - General - Appearance:&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Set theme:&amp;nbsp;&lt;b&gt;High Contrast;&amp;nbsp;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Set Color and font theme&lt;b&gt;: Classic Theme.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Go to &lt;b&gt;Color Theme &lt;/b&gt;install&lt;b&gt; Dark Visual Studio&lt;/b&gt; and choose it.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/1043932291772925362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2016/01/save-your-eyes-on-ubuntu-with-cinnamon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/1043932291772925362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/1043932291772925362'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2016/01/save-your-eyes-on-ubuntu-with-cinnamon.html' title='Save your eyes on Ubuntu with Cinnamon'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7dwHs5Te9Olx8s-jnT0B6ARnxc4uEaRSecvKhNwyAA7wqrNB6BMzpp1w2ZYmf6pXqFVyPMZD42mLdUebPJSmIjcXlyoP-v15Zfnng-LZUmo2bvAx_C-wjqfdNuq35DiPujumCv97_CM0/s72-c/Screenshot+from+2015-10-28+16%253A44%253A02.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-1966022768352456940</id><published>2015-12-21T13:48:00.000+03:00</published><updated>2015-12-21T13:59:17.418+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java EE"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>Java EE - Overview</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;
Terms&lt;/h3&gt;
&lt;b&gt;RI&lt;/b&gt; - Reference Implementation : glassfish.java.net/downloads/ri/
&lt;br /&gt;
&lt;b&gt;JCP&lt;/b&gt; - Java Community Process : work on making decisions of JSR
&lt;br /&gt;
&lt;b&gt;JSR&lt;/b&gt; - Java Specification Request : request for smth  
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: right;&quot;&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;
JEE Application Server&lt;/h3&gt;
It is a piece of software which takes care of the business logic.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Tiers&lt;/b&gt;&lt;br /&gt;
- 2-tier system: client - database&lt;br /&gt;
- 3-tier system: client - application server - database.&lt;br /&gt;
- 3-tier systems are also called N-tier or Multi-tier.&lt;br /&gt;
* all components of the system can be on the same machine.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Application server consists of:
&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;container of web-apps (JSP, JSF etc)&lt;/li&gt;
&lt;li&gt;EJB-container&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;EJB can be treated as:&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;component&lt;/b&gt; - addition to POJO, described with annotation&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;session beans&lt;/i&gt; - for business logic description&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;stateful - preserve state between client calls&lt;/li&gt;
&lt;li&gt;stateless - do not preserve their state between calls&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;i&gt;message-driven beans&lt;/i&gt; - also used for business logic but never are called by clients directly&lt;/li&gt;
&lt;li&gt;&lt;i&gt;entities&lt;/i&gt; - data storage&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;framework&lt;/b&gt; - technology which provides a lot of ready-to-use implementations (security, transactions handling, work with data etc)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: orange;&quot;&gt;So, in a few words:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;i&gt;EJB is for core logic of an application.&lt;/i&gt;&lt;/blockquote&gt;
&lt;b&gt;EJB container&lt;/b&gt; can inject datasources (for instance JDBC datasources) and other resources, that the program only references by name, and that are really defined in the application server.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;JPA is a part of EJB specification&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;b&gt;JPA&lt;/b&gt; is just a specification, here is a list of implementations used in different application servers:&lt;br /&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;b&gt;App Server&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;JPA Implementation&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;GlassFish v3/v4&lt;/td&gt;&lt;td&gt;EclipseLink&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;JBoss&lt;/td&gt;&lt;td&gt;Hibernate&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;WebLogic 10.3.1+&lt;/td&gt;&lt;td&gt;OpenJPA/Kodo or EclipseLink&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;WebSphere 6.1+&lt;/td&gt;&lt;td&gt;OpenJPA&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;background-color: black;&quot;&gt;&lt;span style=&quot;color: orange;&quot;&gt;&lt;b&gt;&amp;nbsp;!&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;color: white;&quot;&gt;&lt;b&gt;JPA 2.0&amp;nbsp;&lt;/b&gt;&lt;b&gt;RI&amp;nbsp;&lt;/b&gt;is &lt;b&gt;EclipseLink&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/1966022768352456940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2015/12/java-ee-overview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/1966022768352456940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/1966022768352456940'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2015/12/java-ee-overview.html' title='Java EE - Overview'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-406645058397756757</id><published>2015-10-13T14:26:00.000+03:00</published><updated>2016-11-22T12:42:48.016+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AIX"/><category scheme="http://www.blogger.com/atom/ns#" term="boooring"/><category scheme="http://www.blogger.com/atom/ns#" term="UNIX"/><title type='text'>AIX - filesystem</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
AIX Logical Volume Manager (LVM)
&lt;/h3&gt;
&lt;pre&gt;http://www.datadisk.co.uk/html_docs/hp/aix_lvm.htm&lt;/pre&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Volume Groups and Filesystems&amp;nbsp;&lt;/h3&gt;
Find out the VG.
&lt;br /&gt;
&lt;pre&gt;# lslv hd1
LOGICAL VOLUME: hd1 &lt;b&gt;VOLUME GROUP: rootvg&lt;/b&gt;
LV IDENTIFIER: 0007b8420000d9000000011f2491100e.8 PERMISSION: read/write
VG STATE: active/complete LV STATE: opened/syncd
TYPE: jfs2 WRITE VERIFY: off
MAX LPs: 512 PP SIZE: 128 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 20 PPs: 20
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: minimum RELOCATABLE: yes
INTRA-POLICY: center UPPER BOUND: 32
MOUNT POINT: /home LABEL: /home
MIRROR WRITE CONSISTENCY: on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
#
&lt;/pre&gt;
&lt;br /&gt;
How much space is available in the VG?
&lt;br /&gt;
&lt;pre&gt;# lsvg rootvg
VOLUME GROUP: rootvg VG IDENTIFIER: 0007b8420000d9000000011f2491100e
VG STATE: active &lt;b&gt;PP SIZE: 128 megabyte(s)&lt;/b&gt;
VG PERMISSION: read/write &lt;b&gt;TOTAL PPs: 599 (76672 megabytes)&lt;/b&gt;
MAX LVs: 256 &lt;b&gt;FREE PPs: 282 (36096 megabytes)&lt;/b&gt;
LVs: 13 USED &lt;b&gt;PPs: 317 (40576 megabytes)&lt;/b&gt;
OPEN LVs: 11 QUORUM: 2 (Enabled)
TOTAL PVs: 1 VG DESCRIPTORS: 2
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 1 AUTO ON: yes
MAX PPs per VG: 32512
MAX PPs per PV: 1016 MAX PVs: 32
LTG size (Dynamic): 256 kilobyte(s) AUTO SYNC: no
HOT SPARE: no BB POLICY: relocatable
#
&lt;/pre&gt;
&lt;br /&gt;
Use chfs command to expand
&lt;br /&gt;
&lt;pre&gt;chfs -a size=3G /home
chfs -a size=3000M /home
chfs -a size=+1G /home
chfs -a size=+500M /home
&lt;/pre&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Mounting an NFS file system explicitly&amp;nbsp;&lt;/h3&gt;
To mount an NFS directory explicitly, use the following procedure:
&lt;br /&gt;
&lt;pre&gt;Verify that the NFS server has exported the directory:
showmount -e ServerName
where ServerName is the name of the NFS server. This command displays the names of the directories currently exported from the NFS server. If the directory you want to mount is not listed, export the directory from the server.
Note: The showmount command will not work for file systems that were exported only as NFS version 4 file systems. For NFS version 4, the client can mount the root filesystem for the server and traverse the exported directory structure. Individual exported file systems do not have to be explicitly mounted to be accessed by the client.
Establish the local mount point using the mkdir command. A null (empty) directory that acts as the mount point (or place holder) of an NFS mount must be present for NFS to complete a mount successfully. This mount point can be created like any other directory, and no special attributes are needed.
Type:
mount ServerName:/remote/directory /local/directory
where ServerName is the name of the NFS server, /remote/directory is the directory on the NFS server you want to mount, and /local/directory is the mount point on the NFS client.
On the client machine, type the following SMIT fast path:
smit mknfsmnt
Make changes to the following fields that are appropriate for your network configuration. Your configuration might not require completing all of the entries on this screen.
Note: If the SMIT interface is being used, press the Tab key to change to the correct value for each field, but do not press Enter until completing step 7.
PATHNAME of mount point.
PATHNAME of remote directory.
HOST where remote directory resides.
MOUNT now, add entry to /etc/filesystems or both?
/etc/filesystems entry will mount the directory on system RESTART.
MODE for this NFS file system.
Change or use the default values for the remaining entries, depending on your NFS configuration.
When you finish making all the changes on this screen, SMIT mounts the NFS file system.
When the Command: field shows the OK status, exit SMIT.
The NFS file system is now ready to use.

SOURCE: https://www-01.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.networkcomm/nfs_mounting_xplicit.htm
&lt;/pre&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/406645058397756757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2015/10/aix-filesystem.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/406645058397756757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/406645058397756757'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2015/10/aix-filesystem.html' title='AIX - filesystem'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-6271258643652109879</id><published>2015-09-30T23:16:00.000+03:00</published><updated>2015-10-12T13:45:06.287+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>1Z0-803 Java SE 7 Programmer I Passed</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDiHnIxoDOEG3UnJ7hQWWgTkrMvkrZIe167Vzr4Uo6sT8D4bcx2urkt_ArAVZrQHojeqGjvGQNeDWuZ2hj2l8QTuQX3kif51c6VuM8XwvXcCDXwp9N0qt5GYb9AM7cqHwWdKq8a3jBVWE/s1600/OCA_Java7.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDiHnIxoDOEG3UnJ7hQWWgTkrMvkrZIe167Vzr4Uo6sT8D4bcx2urkt_ArAVZrQHojeqGjvGQNeDWuZ2hj2l8QTuQX3kif51c6VuM8XwvXcCDXwp9N0qt5GYb9AM7cqHwWdKq8a3jBVWE/s1600/OCA_Java7.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Today I&#39;ve passed Java SE 7 Programmer I Exam with a score of 88%.&lt;br /&gt;
Unlike my preparation for MS 70-483: Programming in C#, I did not make any notes to the blog and Java projects to study every nuances necessary for this level of Java Certification Exams, especially taking into account the knowledge of C#. The only things I&#39;ve done are: reading appropriate literature (see below), making drafts of a future set articles dedicated to comparison of C# and Java, and ofc some notes of major differences between tese languages within the scope of topics covered by the Java Programmer I Exam. Here they are:
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;pre&gt;----------------------------------------------------
docs.oracle.com/javase/tutorial/extra/certification/javase-7-programmer1.html
OCA/OCP Java® SE 7 Programmer I &amp;amp; II Study Guide
----------------------------------------------------
_________
MODIFIERS
    Good table for revising modifiers: http://bmanolov.free.fr/javamodifiers.php

_________
T Y P E S

 For an integer the JVM looks for matches in the following order: int, long, Integer....
 _ _ _ _ _ _
 PTIMITIVES
        0) Primitives are passed by value, for passing-by-reference purpose corresponding wrappers can be used.

        1) Completely legal:
            short sh = 0512;
            byte b = -0;

        2) Char value van be assigned to an int value, but this rule is inapplicable for arrays.
            * that is why char even can be passed to a method taking int as a param
            * integer cannot be passed instead of char because of narrowing conversion

        3) defaut values of primitive data types and objects:
            char                  -&amp;gt;            \u0000
            byte, short, int      -&amp;gt;            0
            long                  -&amp;gt;            0L
            float                 -&amp;gt;            0f
            double                -&amp;gt;            0d    
            boolean               -&amp;gt;            false
            Objects(inc. String)  -&amp;gt;            null        
 _ _ _ _ 
 ARRRAYS
        char[] chArr = new char[] {&#39;1&#39;, &#39;2&#39;, &#39;3&#39;};
    
        Frack this sh*t! Equals arrays shit declaration:
            int []arr[] = {{1,2,3},{1,2,3}};
            int arr[][] = {{1,2,3},{1,2,3}};
            int[][] arr = {{1,2,3},{1,2,3}};

        It&#39;s incorrect to specify the size of an array with a square brackets when declaring, instantiating and initializing an array in a single line

        Correct multidimensional array declaration in init:
            String[][] strArr = new String[][] {{},{}};

        Arrays have an ATTRIBUTE (NOT A METHOD) called length.

  _ _ _ _ _ _ 
  ArrayList&amp;lt;e&amp;gt;
            benefits:
                *reduces memory footprint
                *dynamically resizes based on the number of elements
      ___________________________________________
      ArrayList&amp;lt;string&amp;gt; ejg = new ArrayList&amp;lt;&amp;gt;() is legal object initialization
      ___________________________________________
      ArrayList&amp;lt;string&amp;gt;() ejg = new ArrayList&amp;lt;&amp;gt;()
          ejg.get(0)                     // throws an exception
          System.out.println(ejg);    // prints []
      ___________________________________________
      ArrayList&amp;lt;string&amp;gt;() ejg = new ArrayList&amp;lt;&amp;gt;();
      ejg.add(0, &quot;first&quot;);               // OK
      ejg.add(10, &quot;lol&quot;);                // Cannot add at index which is OutOfBounds

      .add(index, obj)   // inserts obj at specified index position
            
        Array
            void array.copy(Object src, int srcPos, Object dest, int destPos, int length2Copy)
 _ _ _ _
 STRINGS
        String content cannot be compared using == &amp;lt;= ... only using .equals(String str) method.
        Strings have only .length(), not an attribute. (Arrays have attribute .length, not a method)
        _ _ _ _
        String

            .charAt(int index)
            .concat(String str)
            .contains(CharSequence s)
            .isEmpty()
            .getChars(int srcBegin, int srcEnd,         // Characters are copied from this sequence 
                      char[] dst, int dstBegin)         // into the destination character array dst.
            .getBytes()
            .equals(Object obj)

            .equalsIgnoreCase(String anotherString)
             int compareTo(String anotherString) / compareToIgnoreCase(String anotherString)
             
            .regionMatches(int toffset, String other, int offset, int len)
            .matches(String regex)
            
            .startsWith(String prefix) / startsWith(String prefix, int toffset)
            .endsWith(String suffix)
            
            .indexOf(int ch) / indexOf((int ch, int fromIndex))
            .lastIndexOf(int ch, int fromIndex)
            
            .replace(char oldChar,char newChar)
            .replaceFirst(String regex, String replacement)
            .replaceAll(String regex, String replacement)
            .reverse()
            
            .substring(int beginIndex) / substring(int beginIndex, int endIndex)
            CharSequence subSequence(int beginIndex, int endIndex)
            .split(String regex, int limit)
            .trim()
            
            .length()
            .toLowerCase() / toLowerCase(Locale locale)
            .toUpperCase() / toUpperCase(Locale locale)

            .toCharArray()
            .valueOf(Object obj)
            .intern()
            
        _ _ _ _ _ _ _ 
        StringBuilder
        
            StringBuilder by default takes the initialize size as length+16 which is 0+16. so capacity would return 16 here.
            StringBuilder.insert() can be used to insert number, string, char or CharSequence
            
            StringBuilder   append(Object obj)
              
            int             capacity()
            int             charAt(char ch)

            StringBuilder   delete(int start, int end)
            StringBuilder   deleteCharAt(int index)

            void            ensureCapacity(int minimumCapacity)

            // Characters are copied from this sequence into the destination character array dst.
            void            getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

            StringBuilder   insert(int indexToInsert, char[] charArr, int charArrStart, int charArrLen)
            StringBuilder   insert(int offset, Object obj)
            int             indexOf(String str)
            int             indexOf(String str, int fromIndex)
            
            int             lastIndexOf(String str)
            int             lastIndexOf(String str, int fromIndex)
            int             length()

            StringBuilder   reverse()

            // replace only characters from start to end exclusively, 
            // the rest of original string is shifted by the rest elements of the replacement string
            StringBuilder   replace(int start, int end, String str)     
            
            String          toString()

            // if &amp;lt; than current length, characters with index &amp;gt; newLength will be cut off, 
            // if greater - &#39;\u0000&#39; will be inserted
            void            trimToSize() 
            void            setLength(int newLength)
                                                                        
            void            setCharAt(int index, char ch)
            String          substring(int start)
            String          substring(int start, end)
            CharSequence    subSequence(int start, int end)
 
  
  
__________
EXCEPTIONS
    - Exceptions are classes. If you try to catch an exception from its derived class afterwards, the code wont compile.
    - When overriding class method throws should be omitted or be of the same, derived type, however, an overriding method can throw RuntimeException and derived, not thrown by the overriden method.
                  Exception
                 /
        Throwable
                 \
                  Error
    - java.lang.Throwable is the base class of all exceptions
    - Error is not an exception coz it is not a sublacc of Exception
    - checked exceptions must be a part of methods signatur if not catched in the body

    SHould be never handled:
     StackOverflowError
     OutOfMemoryError
           
    Exception inheritance tree
        IOException
        BadStringOperationException
        CertificateException
        CloneNotSupportedException (class do not overrides clone method of Object)
        DataFormatException 
        NotBoundException (A NotBoundException is thrown if an attempt is made to lookup or unbind in the registry a name that has no associated binding.)
        ParseException (Signals that an error has been reached unexpectedly while parsing.) 
        TimeoutException (Exception thrown when a blocking operation times out. ) 
        
    RuntimeException inheritance tree
        NullPointerException
        IndexOutOfBoundsException
            ArrayIndexOutOfBoundsException
            StringIndexOutOfBoundsException
       IllegalArgumentException
            NumberFormatException
        SecurityException

    The rule that &quot;if a base class&#39; method doesn&#39;t throw an exception, an overriding method in the 
    derived class can&#39;t thow an exception&quot; aolies only to checked exceptions. A base or overriden 
    method is free to throw any Error or runtime exception.

    ExceptionInInitializerError may be throw by JVM when a static initializer in your code throws
    a NullPointerException.

    NumberFormatException is thrown by multiple methods from Java API when invalid numbers are passed
    on a Strings to be converted to the specified number format. 
    NumberFormatException is a subclass of IllegalArgumentException
__________________________
INHERITANCE &amp;amp; POLYMORPHISM
    - polymorphism does not apply to static methods and depends only of type of a variable, not the object

    - polymorphic methods are also called overridden methods

    - interfaces can only extends other interfaces

    - class cannot implement two interfaces with the sme method having different return types, 
      even if types pass IS-A  test (compile-time error)

______
SCOPES
    1) If access modifier is not specified it considered to be default, 
       which means that member can be accessed by any class within the package.
    2) protected modifier extends package accessibility to child classes from other packages.

____________
CONTROL FLOW
 _ _ _ _
 SWITCH
        valid types:
            byte, int, Integer, String 
    
        0) SWITCH is based on labels, so when executed it jumps to the first matching label or default 
           and starts execute everything after it.
        
        1) Compile-time constants, including expressions and final variables, 
           are permissible in case labels:

           final int someNumber = 10;
           switch (num) {
               case 10*3 : ...
               case 10/3 : ...        // decimal part will be discarded and 3 will be compared with num
               someNumber: ...
           }

        * Java compiler does not consider a final variable which was not asigned value at initialization
          considered not to be a compile-time constant and thus cannot be applied to switch case statement.

        2) Default statement case executes only of no matching values are found.
        

______________
INITIALIZATION
 ______________________________________________________________________________________
 Java VM calls and  executes the main method
     - a class shouldn&#39;t define multiple main methods, which used to start an app;
     - more than one class in app can define main method;
     - the main method must accept String[] of varargs String...;
 ______________________________________________________________________________________

    STATIC AND INSTANCE INITIALIZERS
     This shit is legal :(
         class Ideone
         {
             static {
                 System.out.println(&quot;Static Initializer 1&quot;);
             }
             {
                 System.out.println(&quot;Non-Static Initializer 1&quot;);
             }
             public static void main (String[] args) throws java.lang.Exception
             {
                 ...
             }
             static {
                 System.out.println(&quot;Static Initializer 2&quot;);
             }
             {
                 System.out.println(&quot;Non-Static Initializer 2&quot;);
             }
         }
     * static constructors are invoked at first mention of a Class in any line of code.
     * if you do not assign explicit values to instance variables of class, they are initialized 
       to their default values, even if no-arg constructor is declared with empty body.
_______
CASTING
 When mathematical operations is perfomed on any primitives than smaller than int, the result is 
 automatically cast to an integer.

 Legal: int iNum = (int)123.456; // iNum = 123


_________
OPERATORS
 ^ - XOR (true if only one of operands is true, otherwise - false)
 


_____________
PAY ATTENTION
 - comments can appear at any position in a source files
 - a base class can user reference variables and objects of its derived classes
 - instanceof
 - on the methods name when overloading
    - &quot;0123456&quot;.substring(0,5) // 0 inclusive and 5 exclusive, so the output is: 01234;
    - ClassCastExceptions are arisen at runtime;
    - you should not implement an interface if it is already implemented by a super class;
    - there is no difference how any times you will import a package;
    - the path of imported class used in an import statement isn&#39;t related to the class&#39;s physical location.

    When + operator encounters a String object, it trells all remaining operands as String objects.
    Concatenation runs from left2right, and if either operand is a String, the operands are concatenated.
    If both operands are numbers, they are added together.


 Interfaces and their methods are implicitly abstract and adding that modifier makes no difference. The method must be implemented by any (concrete) implementing class.

 Default no-args constructor generated by the compiler only if the class has no constructor defined explicitly.

_________________            
PACKAGES &amp;amp; IMPORT
    Automatically imported:
        Java.lang
        Pachage with no name 
        
    import static allowes to import static members
        import static java.lang.Math.PI;
        //или все целиком:
        import static java.lang.Math.*;

&lt;/pre&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/6271258643652109879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2015/09/1z0-803-java-se-7-programmer-i-passed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/6271258643652109879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/6271258643652109879'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2015/09/1z0-803-java-se-7-programmer-i-passed.html' title='1Z0-803 Java SE 7 Programmer I Passed'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDiHnIxoDOEG3UnJ7hQWWgTkrMvkrZIe167Vzr4Uo6sT8D4bcx2urkt_ArAVZrQHojeqGjvGQNeDWuZ2hj2l8QTuQX3kif51c6VuM8XwvXcCDXwp9N0qt5GYb9AM7cqHwWdKq8a3jBVWE/s72-c/OCA_Java7.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-4304669688625815291</id><published>2015-09-07T13:54:00.000+03:00</published><updated>2016-11-22T12:37:16.400+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AIX"/><category scheme="http://www.blogger.com/atom/ns#" term="boooring"/><category scheme="http://www.blogger.com/atom/ns#" term="UNIX"/><title type='text'>AIX - HTTPD + MySQL + PHP - Installation of Apache HTTP Server, Mysql and PHP</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Prerequisites&lt;/h3&gt;
RPM package manager should be installed first, which is available from the Linux Affinity image repository as installp/ppc/rpm.rte.&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Installing HTTPD&lt;/h3&gt;
1: First of all we need to look through dependencies of the package, for example here we could do this:&lt;br /&gt;
&lt;pre&gt;oss4aix.org/download/rpmdb/deplists/aix71
&lt;/pre&gt;
2: Download all packages into empty folder on our AIX server.&lt;br /&gt;
3: Installing all rpms in the folder:
&lt;br /&gt;
&lt;pre&gt;rpm -Uvh *.rpm
&lt;/pre&gt;
4: Then you could check following directories for apache httpd related files
&lt;br /&gt;
&lt;pre style=&quot;text-align: left;&quot;&gt;find / -name &#39;httpd*&#39;
...
/etc/rc.d/init.d/httpd
/opt/freeware/sbin/apachectl
/opt/freeware/sbin/httpd
/opt/freeware/etc/httpd/conf/
/opt/freeware/doc/httpd-2.2.21
...
&lt;/pre&gt;
5: Starting and Stopping&lt;br /&gt;
https://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-apache-startstop.html
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Installing MySQL&lt;/h3&gt;
https://www.linkedin.com/pulse/20140518134129-2919137-your-first-hour-with-mysql-on-aix
Dependencies&lt;br /&gt;
&lt;pre style=&quot;text-align: left;&quot;&gt;bash-4.2-12.aix5.1.ppc.rpm
gdbm-1.10-1.aix5.1.ppc.rpm
gettext-0.10.40-8.aix5.2.ppc.rpm
info-5.1-2.aix5.1.ppc.rpm
libgcc-4.8.2-1.aix7.1.ppc.rpm
libiconv-1.14-2.aix5.1.ppc.rpm
libidn-1.31-1.aix5.1.ppc.rpm
mysql-5.1.73-1.aix5.1.ppc.rpm
mysql-libs-5.1.73-1.aix5.1.ppc.rpm
openssl-1.0.1e-2.aix5.1.ppc.rpm
perl-5.8.8-2.aix5.1.ppc.rpm
perl-DBD-MySQL-4.022-1.aix5.1.ppc.rpm
perl-DBI-1.623-1.aix5.1.ppc.rpm
zlib-1.2.3-4.aix5.2.ppc.rpm

&lt;/pre&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Installing PHP
&lt;/h3&gt;
&lt;span style=&quot;background-color: black; color: orange;&quot;&gt;&lt;b&gt;!!!&lt;/b&gt;&lt;/span&gt; You can install the lates versions of HTTPD and PHP precompiled binaries and their&#39;s dependencies avaliable in oss4aix repository and after installation of mod_php or php itself, face the error when trying to start httpd server:&lt;br /&gt;
&lt;pre&gt;httpd: Syntax error on line 528 of /opt/freeware/etc/httpd/conf/httpd.conf: 
Syntax error on line 6 of /opt/freeware/etc/httpd/conf/extra/httpd-php.conf: 
Cannot load /opt/freeware/lib/httpd/modules/libphp5.so into server: 
\t0509-022 Cannot load module /opt/freeware/lib/httpd/modules/libphp5.so.
\n\t0509-026 System error: Cannot run a file that does not have a valid format.
&lt;/pre&gt;
&lt;br /&gt;
To resolve this issue I had to reinstall httpd and some of its dependencies and use an older version, like this:
&lt;br /&gt;
&lt;pre&gt;wget ftp://www.oss4aix.org/latest/aix71/db4-4.7.25-2.aix5.1.ppc.rpm
rpm -Uhv db4-4.7.25-2.aix5.1.ppc.rpm

wget http://www.oss4aix.org/download/RPMS/apache/httpd-2.2.29-2.aix5.1.ppc.rpm
rpm -Uhv httpd-2.2.29-2.aix5.1.ppc.rpm

wget ftp://www.oss4aix.org/latest/aix71/mod_php_ap22-5.5.26-1.aix5.1.ppc.rpm
rpm -Uhv mod_php_ap22-5.5.26-1.aix5.1.ppc.rpm

wget ftp://www.oss4aix.org/latest/aix71/php-common-5.5.26-1.aix5.1.ppc.rpm
rpm -Uhv php-common-5.5.26-1.aix5.1.ppc.rpm
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/4304669688625815291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2015/09/aix-httpd-mysql-php-installation-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/4304669688625815291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/4304669688625815291'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2015/09/aix-httpd-mysql-php-installation-of.html' title='AIX - HTTPD + MySQL + PHP - Installation of Apache HTTP Server, Mysql and PHP'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-3488699937039165761</id><published>2015-09-02T18:27:00.000+03:00</published><updated>2015-09-02T18:33:07.362+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AIX"/><category scheme="http://www.blogger.com/atom/ns#" term="boooring"/><category scheme="http://www.blogger.com/atom/ns#" term="UNIX"/><title type='text'>AIX - Console installation of IBM Installation Manager</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h2&gt;
&lt;/h2&gt;
&lt;h2&gt;
Preparations&lt;/h2&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
GTK2 installation&amp;nbsp;&lt;/h3&gt;
Make sure &lt;b&gt;gtk2&lt;/b&gt; is installed on your system, if not you should install it and all its dependencies:
&lt;br /&gt;
&lt;pre&gt;atk-1.12.3-2.aix5.2.ppc.rpm
cairo-1.8.8-1.aix5.2.ppc.rpm
expat-2.0.1-1.aix5.2.ppc.rpm
fontconfig-2.4.2-1.aix5.2.ppc.rpm
freetype2-2.3.9-1.aix5.2.ppc.rpm
gettext-0.10.40-6.aix5.1.ppc.rpm
glib2-2.12.4-2.aix5.2.ppc.rpm
gtk2-2.10.6-4.aix5.2.ppc.rpm
libjpeg-6b-6.aix5.1.ppc.rpm
libpng-1.2.32-2.aix5.2.ppc.rpm
libtiff-3.8.2-1.aix5.2.ppc.rpm
pango-1.14.5-4.aix5.2.ppc.rpm
pixman-0.12.0-3.aix5.2.ppc.rpm
xcursor-1.1.7-3.aix5.2.ppc.rpm
xft-2.1.6-5.aix5.1.ppc.rpm
xrender-0.9.1-3.aix5.2.ppc.rpm
zlib-1.2.3-3.aix5.1.ppc.rpm
&lt;/pre&gt;
&lt;blockquote&gt;
&lt;span style=&quot;background-color: black;&quot;&gt;&lt;span style=&quot;color: orange;&quot;&gt;&lt;b&gt;!!!&lt;/b&gt;&lt;/span&gt;&lt;/span&gt; Note that if you download and install RPMs individually, you should be avare that the following libraries are incompatible:&amp;nbsp;
&lt;br /&gt;
&lt;b&gt;glib2-2.14.6-2&lt;/b&gt; and &lt;b&gt;gtk2-2.10.6-5
&lt;/b&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
Alternatively you can download all these files as a &lt;b&gt;bundle&lt;/b&gt;:
&lt;br /&gt;
&lt;pre&gt;1. Download the gtk2_bundle_v2.tar package (version &#39;v2&#39;) containing all the RPMs and the install script to a new directory from here ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/ezinstall/ppc/ 
    #wget ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/ezinstall/ppc/gtk2_bundle_v2.tar

2. Decompress the tar file. 
    #tar -xvf gtk2_bundle_&lt;version&gt;.tar to decompress the file.

3. Open the decompressed directory gtk2_bundle_&lt;version&gt; and run the install.sh script. The script will check if the required RPMs are installed at the compatible level. If they are not, the script will prompt to install the compatible versions.

4. Verify the environment variable LIBPATH contains a path to the installed libraries. For example LIBPATH=/opt/freeware/lib/
&lt;/version&gt;&lt;/version&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Create user and usergroup for WAS&lt;/h3&gt;
As you know for security reasons work process on the &lt;b&gt;Unix&lt;/b&gt; systems should be done from the name of &lt;b&gt;non-root&lt;/b&gt; users, so:&lt;br /&gt;
&lt;pre style=&quot;text-align: left;&quot;&gt;#mkuser wasuser
#mkgroup was
#chgroup users=&quot;wasuser&quot; was
&lt;/pre&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
&lt;/h2&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
IBM Installation Manager Installation&lt;/h2&gt;
Unpack &lt;b&gt;Installation Manager&lt;/b&gt; agent into directory and set permissions:&lt;br /&gt;
&lt;pre&gt;chown user:group /directory
chmod 755 /directory
chmod 777 /directory/configuration
&lt;/pre&gt;
&lt;br /&gt;
Go into &lt;b&gt;/directory&lt;/b&gt; and run
&lt;br /&gt;
&lt;pre&gt;su - wasuser
$./userinstc -c
&lt;/pre&gt;
&lt;br /&gt;
You will see:
&lt;br /&gt;
&lt;pre&gt;Preprocessing the input.
Loading repositories...
Preparing and resolving the selected packages...


=====&amp;gt; IBM Installation Manager&amp;gt; Install

Select packages to install:
     1. [X] IBM Installation Manager 1.8.2.1

     O. Check for Other Versions, Fixes, and Extensions

     N. Next,      C. Cancel
-----&amp;gt; [N] 
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Licenses step:&lt;/b&gt;&lt;br /&gt;
&lt;pre&gt;=====&amp;gt; IBM Installation Manager&amp;gt; Install&amp;gt; Licenses

Read the following license agreements carefully.
View a license agreement by entering the number:
     1. IBM Installation Manager - License Agreement

Options:
     A. [X] I accept the terms in the license agreement
     D. [ ] I do not accept the terms in the license agreement

     B. Back,      N. Next,      C. Cancel
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Location step:&lt;/b&gt;&lt;br /&gt;
&lt;pre&gt;=====&amp;gt; IBM Installation Manager&amp;gt; Install&amp;gt; Licenses&amp;gt; Location

Installation Manager installation location:
        /home/wasuser/IBM/InstallationManager/eclipse

Options:
     L. Change Installation Manager Installation Location  

     B. Back,      N. Next,      C. Cancel
-----&amp;gt; [N] 
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Summary step:&lt;/b&gt;&lt;br /&gt;
&lt;pre&gt;=====&amp;gt; IBM Installation Manager&amp;gt; Install&amp;gt; Licenses&amp;gt; Location&amp;gt; Summary

Target Location:
  Package Group Name         :  IBM Installation Manager
  Installation Directory     :  /home/wasuser/IBM/InstallationManager/eclipse

Packages to be installed:
        IBM Installation Manager 1.8.2.1

Options:
     G. Generate an Installation Response File

     B. Back,      I. Install,      C. Cancel

                 25%                50%                75%                100%
------------------|------------------|------------------|------------------|
............................................................................
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Completion step:&lt;/b&gt;&lt;br /&gt;
&lt;pre&gt;=====&amp;gt; IBM Installation Manager&amp;gt; Install&amp;gt; Licenses&amp;gt; Location&amp;gt; Summary&amp;gt; 
  Completion

The install completed successfully.

Options:
     R. Restart Installation Manager
-----&amp;gt; [R] 
&lt;/pre&gt;
&lt;br /&gt;
IBM Installation Manager:
&lt;br /&gt;
&lt;pre&gt;=====&amp;gt; IBM Installation Manager

Select:
     1. Install - Install software packages
     2. Update - Find and install updates and fixes to installed software packages
     3. Modify - Change installed software packages
     4. Roll Back - Revert to an earlier version of installed software packages
     5. Uninstall - Remove installed software packages

Other Options:
     L. View Logs
     S. View Installation History
     V. View Installed Packages
        ------------------------
     P. Preferences
        ------------------------
     A. About IBM Installation Manager
        ------------------------
     X. Exit Installation Manager

-----&amp;gt; 

&lt;/pre&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
The Summary&lt;/h3&gt;
Do not forget to check if you have enough free space for installation. While installing Installation Manager I run into following issue:
&lt;br /&gt;
&lt;pre&gt;=====&amp;gt; IBM Installation Manager&amp;gt; Error

ERROR: The following errors were generated while installing.

Details:
CRIMA1179E: Available disk space at /home is insufficient. Total required space is 342.51 MB. Total available space is 253.33 MB.

     O. OK,      D. Hide Details
-----&amp;gt; [O] 
&lt;/pre&gt;
Thanks to the great ability provided by IBM AIX system I just left failed installation and increase the size of the /home directory:
&lt;br /&gt;
&lt;pre&gt;#chfs -a size=+1G /home
&lt;/pre&gt;
And after that repeated aforementioned installation steps.
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/3488699937039165761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2015/09/aix-console-installation-of-ibm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/3488699937039165761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/3488699937039165761'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2015/09/aix-console-installation-of-ibm.html' title='AIX - Console installation of IBM Installation Manager'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-2147165368857422925</id><published>2015-09-02T18:20:00.000+03:00</published><updated>2015-09-09T14:07:10.967+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AIX"/><category scheme="http://www.blogger.com/atom/ns#" term="boooring"/><category scheme="http://www.blogger.com/atom/ns#" term="UNIX"/><category scheme="http://www.blogger.com/atom/ns#" term="WAS"/><title type='text'>AIX - Console installation of IBM WebSphere Application Server using IBM Installation Manager</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
Here I describe step-by-step installation process of IBM WebSphere Apllication Server V8.5 using Installation Manager of the same company.&lt;br /&gt;
You could read about Installation Manager &lt;a href=&quot;http://rvach.blogspot.com/2015/09/aix-console-installation-of-ibm.html&quot;&gt;here&lt;/a&gt;.
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBauPhwDpiOYkRzjeXlWWaStZ-LQcuIwRp9a5QmQxHk1utrOLPEhizFbxbErLIGioj_nE6FLxqSbc7EGh5HvBksJ_aM6Gx6PvewgNs2BFJweGLT4RqsZGXQCceAgBSb1OoLwHFTBlismw/s1600/websphere.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBauPhwDpiOYkRzjeXlWWaStZ-LQcuIwRp9a5QmQxHk1utrOLPEhizFbxbErLIGioj_nE6FLxqSbc7EGh5HvBksJ_aM6Gx6PvewgNs2BFJweGLT4RqsZGXQCceAgBSb1OoLwHFTBlismw/s1600/websphere.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;Filesystem preparation&lt;/h2&gt;
1. Create empty directory for mounting filesystem and set permissions:&lt;br /&gt;
&lt;pre&gt;# cd /opt/IBM/
# mkdir WebSphere
# chown wasuser:was WebSphere
&lt;/pre&gt;
2. Make logical volume of type jfs2 with name waslv in rootvg volumegroup of 3Gb on hdisk0:&lt;br /&gt;
&lt;pre&gt;# mklv -t jfs2 -y waslv rootvg 3G hdisk0
&lt;/pre&gt;
3. Create fylesystem of type jfs2 in waslv logical volume, mount on /opt/IBM/WebSphere,
        set size of 3Gb, set automount
&lt;br /&gt;
&lt;pre&gt;# crfs -v jfs2 -d waslv -m /opt/IBM/WebSphere -a size=3G -a log=INLINE -A yes
&lt;/pre&gt;
&lt;h2&gt;
&lt;/h2&gt;
&lt;h2&gt;
WebSphere Application Server installation:&lt;/h2&gt;
1. Generate responce file install.xml for WAS installation using Installation Manager&lt;br /&gt;
2. Place generated file into &lt;b&gt;/home/wasuser/was_install.xml&lt;/b&gt;&lt;br /&gt;
3. Go to InstallationManager &lt;b&gt;imcl&lt;/b&gt; utility:&lt;br /&gt;
&lt;pre&gt;# cd /home/wasuser/IBM/InstallationManager/eclipse/tools
&lt;/pre&gt;
&lt;br /&gt;
4. Here you could run installation process by two ways:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; A. using responce file:&lt;br /&gt;
&lt;pre&gt;  bash-4.2$ ./imcl -acceptLicense input /home/wasuser/install.xml
  Installed com.ibm.websphere.BASE.v85_8.5.1.20121017_1724 to the /opt/IBM/WebSphere/AppServer directory.
  Installed com.ibm.websphere.IBMJAVA.v70_7.0.2000.20121005_1500 to the /opt/IBM/WebSphere/AppServer directory.
              :
&lt;/pre&gt;
* install.xml file you could create in the likeness of example
&lt;br /&gt;
&lt;pre&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;agent-input clean=&#39;true&#39; temporary=&#39;true&#39;&amp;gt;
        &amp;lt;variables&amp;gt;
            &amp;lt;variable name=&#39;sharedLocation&#39; value=&#39;/home/wasuser/IBM/IBMIMShared&#39;/&amp;gt;
        &amp;lt;/variables&amp;gt;
    &amp;lt;server&amp;gt;
        &amp;lt;repository location=&#39;/opt/IBM/repos/WASRepository/&#39;/&amp;gt;
    &amp;lt;/server&amp;gt;
    &amp;lt;profile id=&#39;IBM WebSphere Application Server V8.5&#39; installLocation=&#39;/opt/IBM/WebSphere/AppServer&#39;&amp;gt;
        &amp;lt;data key=&#39;eclipseLocation&#39; value=&#39;/opt/IBM/WebSphere/AppServer&#39;/&amp;gt;
        &amp;lt;data key=&#39;user.import.profile&#39; value=&#39;false&#39;/&amp;gt;
        &amp;lt;data key=&#39;cic.selector.os&#39; value=&#39;aix&#39;/&amp;gt;
        &amp;lt;data key=&#39;cic.selector.arch&#39; value=&#39;ppc&#39;/&amp;gt;
        &amp;lt;data key=&#39;cic.selector.ws&#39; value=&#39;motif&#39;/&amp;gt;
        &amp;lt;data key=&#39;cic.selector.nl&#39; value=&#39;en&#39;/&amp;gt;
    &amp;lt;/profile&amp;gt;
    &amp;lt;install modify=&#39;false&#39;&amp;gt;
        &amp;lt;offering id=&#39;com.ibm.websphere.BASE.v85&#39; profile=&#39;IBM WebSphere Application Server V8.5&#39; features=&#39;core.feature,ejbdeploy,thinclient,embeddablecontainer,com.ibm.sdk.6_64bit&#39; installFixes=&#39;all&#39;/&amp;gt;
        &amp;lt;offering id=&#39;com.ibm.websphere.IBMJAVA.v70&#39; profile=&#39;IBM WebSphere Application Server V8.5&#39; features=&#39;com.ibm.sdk.7&#39; installFixes=&#39;all&#39;/&amp;gt;
    &amp;lt;/install&amp;gt;
    &amp;lt;preference name=&#39;com.ibm.cic.common.core.preferences.eclipseCache&#39; value=&#39;/home/wasuser/IBM/IBMIMShared&#39;/&amp;gt;
    &amp;lt;preference name=&#39;com.ibm.cic.common.core.preferences.connectTimeout&#39; value=&#39;30&#39;/&amp;gt;
    &amp;lt;preference name=&#39;com.ibm.cic.common.core.preferences.readTimeout&#39; value=&#39;45&#39;/&amp;gt;
    &amp;lt;preference name=&#39;com.ibm.cic.common.core.preferences.downloadAutoRetryCount&#39; value=&#39;0&#39;/&amp;gt;
    &amp;lt;preference name=&#39;offering.service.repositories.areUsed&#39; value=&#39;true&#39;/&amp;gt;
    &amp;lt;preference name=&#39;com.ibm.cic.common.core.preferences.ssl.nonsecureMode&#39; value=&#39;false&#39;/&amp;gt;
    &amp;lt;preference name=&#39;com.ibm.cic.common.core.preferences.http.disablePreemptiveAuthentication&#39; value=&#39;false&#39;/&amp;gt;
    &amp;lt;preference name=&#39;http.ntlm.auth.kind&#39; value=&#39;NTLM&#39;/&amp;gt;
    &amp;lt;preference name=&#39;http.ntlm.auth.enableIntegrated.win32&#39; value=&#39;true&#39;/&amp;gt;
    &amp;lt;preference name=&#39;com.ibm.cic.common.core.preferences.preserveDownloadedArtifacts&#39; value=&#39;false&#39;/&amp;gt;
    &amp;lt;preference name=&#39;com.ibm.cic.common.core.preferences.keepFetchedFiles&#39; value=&#39;false&#39;/&amp;gt;
    &amp;lt;preference name=&#39;PassportAdvantageIsEnabled&#39; value=&#39;false&#39;/&amp;gt;
    &amp;lt;preference name=&#39;com.ibm.cic.common.core.preferences.searchForUpdates&#39; value=&#39;false&#39;/&amp;gt;
    &amp;lt;preference name=&#39;com.ibm.cic.agent.ui.displayInternalVersion&#39; value=&#39;false&#39;/&amp;gt;
    &amp;lt;preference name=&#39;com.ibm.cic.common.sharedUI.showErrorLog&#39; value=&#39;true&#39;/&amp;gt;
    &amp;lt;preference name=&#39;com.ibm.cic.common.sharedUI.showWarningLog&#39; value=&#39;true&#39;/&amp;gt;
    &amp;lt;preference name=&#39;com.ibm.cic.common.sharedUI.showNoteLog&#39; value=&#39;true&#39;/&amp;gt;
&amp;lt;/agent-input&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; B.  using installation manager menu
&lt;br /&gt;
&lt;pre&gt;| ./imcl -c  
| =====&amp;gt; IBM Installation Manager
| 
| Select:
|      1. Install - Install software packages
|      2. Update - Find and install updates and fixes to installed software packages
|      3. Modify - Change installed software packages
|      4. Roll Back - Revert to an earlier version of installed software packages
|      5. Uninstall - Remove installed software packages
| 
| Other Options:
|      L. View Logs
|      S. View Installation History
|      V. View Installed Packages
|         ------------------------
|      P. Preferences
|         ------------------------
|      A. About IBM Installation Manager
|         ------------------------
|      X. Exit Installation Manager
| 
| -----&amp;gt; 
&lt;/pre&gt;
&lt;br /&gt;
Enter P for entering Preferences menu:
&lt;br /&gt;
&lt;pre&gt;| =====&amp;gt; IBM Installation Manager&amp;gt; Preferences
|
| Select:
|      1. Repositories
|      2. Appearance
|      3. Files for Rollback
|      4. SSL/TLS
|      5. HTTP/FTP Proxy
|      6. Passport Advantage
|      7. Secure Storage
|      8. Updates
| 
|      R. Return to Main Menu
| -----&amp;gt; [1] 
&lt;/pre&gt;
&lt;br /&gt;
Enter 1 for editing Repositories and Add repository by specifying full path to 
               a root folder of repository (this usually contains repository.conf file)
&lt;br /&gt;
&lt;pre&gt;               
| =====&amp;gt; IBM Installation Manager&amp;gt; Preferences&amp;gt; Repositories
|
| Repositories:
|      1. [X] /TivoliProducts/WAS8.5/Extended
| 
| Other Options:
|      D. Add Repository
| 
|      S. [X] Search service repositories during installation and updates
| 
|      R. Restore Defaults
|      A. Apply Changes and Return to Preferences Menu
|      P. Temporarily Keep Changes and Return to Preferences Menu
| 
| -----&amp;gt; 
&lt;/pre&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/2147165368857422925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2015/09/aix-console-installation-of-ibm_2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/2147165368857422925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/2147165368857422925'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2015/09/aix-console-installation-of-ibm_2.html' title='AIX - Console installation of IBM WebSphere Application Server using IBM Installation Manager'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBauPhwDpiOYkRzjeXlWWaStZ-LQcuIwRp9a5QmQxHk1utrOLPEhizFbxbErLIGioj_nE6FLxqSbc7EGh5HvBksJ_aM6Gx6PvewgNs2BFJweGLT4RqsZGXQCceAgBSb1OoLwHFTBlismw/s72-c/websphere.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-2621437034665103873</id><published>2015-08-24T17:07:00.000+03:00</published><updated>2016-11-22T12:46:55.515+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Administration"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><title type='text'>Installing several versions of Apache Tomcat on the same machine as services</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
If you face folloving failure message:
&lt;br /&gt;
&lt;pre&gt;C:\Program Files\Apache\Tomcat\6.0.9\bin\service.bat install
Installing the service &#39;Tomcat6&#39; ...
Using CATALINA_HOME:    C:\Program Files\Apache\Tomcat\6.0.9
Using CATALINA_BASE:    C:\Program Files\Apache\Tomcat\6.0.9
Using JAVA_HOME:        C:\Oracle\Middleware\jdk160_11
Using JVM:              C:\Oracle\Middleware\jdk160_11\jre\bin\server\jvm.dll
Failed installing &#39;Tomcat6&#39; service
&lt;/pre&gt;
&lt;br /&gt;
Find and replace SERVICE_NAME and DISPLAYNAME with a unique values such as: 
&lt;br /&gt;
&lt;pre&gt;rem Set default Service name
set SERVICE_NAME=Tomcat6
set PR_DISPLAYNAME=Apache Tomcat 6
&lt;/pre&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/2621437034665103873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2015/08/installing-several-versions-of-apache.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/2621437034665103873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/2621437034665103873'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2015/08/installing-several-versions-of-apache.html' title='Installing several versions of Apache Tomcat on the same machine as services'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-4003958241397354668</id><published>2015-08-21T19:30:00.000+03:00</published><updated>2015-08-21T19:30:01.348+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Solaris"/><category scheme="http://www.blogger.com/atom/ns#" term="UNIX"/><title type='text'>Solaris - Install Mysql Server</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqqPj3TrrFm8gPbVlBHC_ORbBXC6T3awG8kRJLXVRFfU2a6lR_Jr5FsR0aAzXnxDqDq5xe4FkKINLx9suhQgEor1nlRDmzUo8SQ3L52B3Hy_SwOK8ZfjEV4gkHsCp4FuM8WnCJ50kOLn0/s1600/solaris.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqqPj3TrrFm8gPbVlBHC_ORbBXC6T3awG8kRJLXVRFfU2a6lR_Jr5FsR0aAzXnxDqDq5xe4FkKINLx9suhQgEor1nlRDmzUo8SQ3L52B3Hy_SwOK8ZfjEV4gkHsCp4FuM8WnCJ50kOLn0/s1600/solaris.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Download package with mysql package for specific server type from packages repository like ftp.ussg.iu.edu/solaris/freeware/sparc/5.10, for instance:&lt;br /&gt;
&lt;pre&gt;ftp.ussg.iu.edu/solaris/freeware/sparc/5.10/mysql-5.0.67-sol10-sparc-local.gz
&lt;/pre&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
Unpack gz archive by executing following command:&lt;br /&gt;
&lt;pre&gt;# gzip -d mysql-5.0.67-sol10-sparc-local.gz
&lt;/pre&gt;
&lt;br /&gt;
Then execute following command:
&lt;br /&gt;
&lt;pre&gt;# pkgadd -d mysql-5.0.67-sol10-sparc-local
&lt;/pre&gt;
&lt;br /&gt;
Configure MySQL:
&lt;br /&gt;
&lt;pre&gt;# groupadd mysql
# useradd -g mysql mysql
# cd /usr/local
# chown -R mysql:mysql mysql
# chmod -R 770 /var/mysql
&lt;/pre&gt;
&lt;br /&gt;
Then initialize MySQL database:
&lt;br /&gt;
&lt;pre&gt;# cd /usr/local/mysql/bin
# ./mysql_install_db --user=mysql
&lt;/pre&gt;
&lt;br /&gt;
Now you can start MySQL Server:
&lt;br /&gt;
&lt;pre&gt;# /usr/local/mysql/share/mysql/mysql.server start
&lt;/pre&gt;
Create startup/shutdown script:
&lt;br /&gt;
&lt;pre&gt;# vi /etc/init.d/mysql.rc
&lt;/pre&gt;
&lt;br /&gt;
And fill it in with the following simple code:
&lt;br /&gt;
&lt;pre&gt;#!/sbin/sh
# script starts or stops all hardcoded mysql servers
# depending on passed parameter
# Parameters:
#       $1 - start/stop

ulimit -c 0

# Shutdown if instance of a specified tomcat server version
# running
# Parameters:
#       $1 - apache tomcat version
ShutdownIfRunning()
{
        count=`ps -ef | grep -i mysql | egrep -v grep | wc -l`
        if [ $count -gt 0 ]
        then
           /usr/local/mysql/share/mysql/mysql.server stop
        fi
}

case &quot;$1&quot; in
start )
        /usr/local/mysql/share/mysql/mysql.server start
        ;;
stop )
        ShutdownIfRunning
        ;;
* )
        echo &quot;Usage: $0 (start | stop)&quot;
        exit 1
esac
&lt;/pre&gt;
&lt;br /&gt;
Do not forget to make it executable:
&lt;br /&gt;
&lt;pre&gt;chmod +x /etc/init.d/mysql.rc&lt;/pre&gt;
&lt;br /&gt;
Now create a symlink to this script in appropriate runcom directory:
&lt;br /&gt;
&lt;pre&gt;# ln -s /etc/init.d/mysql.rc /etc/rc3.d/S100mysql.rc
# ln -s /etc/init.d/mysql.rc /etc/rc3.d/K100mysql.rc
&lt;/pre&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/4003958241397354668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2015/08/solaris-install-mysql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/4003958241397354668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/4003958241397354668'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2015/08/solaris-install-mysql-server.html' title='Solaris - Install Mysql Server'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqqPj3TrrFm8gPbVlBHC_ORbBXC6T3awG8kRJLXVRFfU2a6lR_Jr5FsR0aAzXnxDqDq5xe4FkKINLx9suhQgEor1nlRDmzUo8SQ3L52B3Hy_SwOK8ZfjEV4gkHsCp4FuM8WnCJ50kOLn0/s72-c/solaris.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-5754293942051166524</id><published>2015-08-20T12:19:00.001+03:00</published><updated>2015-08-20T13:06:02.111+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Administration"/><category scheme="http://www.blogger.com/atom/ns#" term="HP-UX"/><category scheme="http://www.blogger.com/atom/ns#" term="UNIX"/><title type='text'>HP-UX - Software Installation - Installing depot packages</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf30HHPgyw9XhzdikEIII8lKYpk4gjlE6S1rsQWNGI1NzYHCaEdG7bJGK2TLRJOF7J8yEwrPWvr6XOSQ98vfU-DQIzvHRdTNgLmV9Gu4HughteyULH1n6sOL1RytzCNkAddOYAWuTHt0g/s1600/hpux-home-logo.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;126&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf30HHPgyw9XhzdikEIII8lKYpk4gjlE6S1rsQWNGI1NzYHCaEdG7bJGK2TLRJOF7J8yEwrPWvr6XOSQ98vfU-DQIzvHRdTNgLmV9Gu4HughteyULH1n6sOL1RytzCNkAddOYAWuTHt0g/s320/hpux-home-logo.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Here is general overview of depot packages installation process step-by-step.&lt;br /&gt;
&lt;br /&gt;
1: Go to &lt;b&gt;hpux.connect.org.uk&lt;/b&gt; and search for a packages you need. &amp;nbsp;You can find out the version and architecture of your HP-UX by folowing commands:&lt;/div&gt;
OS Version:
&lt;br /&gt;
&lt;pre&gt;# uname -r
B.11.31
&lt;/pre&gt;
Architecture:
&lt;br /&gt;
&lt;pre&gt;# uname -m                                                                        
ia64
&lt;/pre&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
2: Pay attention on run-time dependencies. Before downloading them look at the 3rd step.&lt;br /&gt;
&lt;br /&gt;
3: Check if required packages are not already installed:
&lt;br /&gt;
&lt;pre&gt;swlist | grep pachagename
&lt;/pre&gt;
&lt;br /&gt;
4: Download all required packages, upload it to the server and unpack using guzip:
&lt;br /&gt;
&lt;pre&gt;gunzip packagename.depot.gz
&lt;/pre&gt;
&lt;br /&gt;
5: Run installation process by executing following command:
&lt;br /&gt;
&lt;pre&gt;swinstall -s /fullPathToPackage/pachageName.depot
&lt;/pre&gt;
&lt;br /&gt;
6: Mark package by pressing space on it, then press &lt;b&gt;TAB&lt;/b&gt; and move to &lt;b&gt;Actions&lt;/b&gt; menu, and then press &lt;b&gt;Shift+I&lt;/b&gt; or select manually &lt;b&gt;Install&lt;/b&gt;...
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOJE6rnA3vNaB9Tvq2dv0TlD4a-zt1A5VYf0kf3XvlfF9jLd4MJGewKQy8QPFF9jFb17NYXuRMoiQjTzLzfo3rQSxGH7hUzelUK5vJ9_95dsANuh1AlVbH5tP7-QxTkIuN9SQpUG8WHIc/s1600/HP-UX-Depot-Installation-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOJE6rnA3vNaB9Tvq2dv0TlD4a-zt1A5VYf0kf3XvlfF9jLd4MJGewKQy8QPFF9jFb17NYXuRMoiQjTzLzfo3rQSxGH7hUzelUK5vJ9_95dsANuh1AlVbH5tP7-QxTkIuN9SQpUG8WHIc/s1600/HP-UX-Depot-Installation-1.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
7: &lt;b&gt;Install Analysis&lt;/b&gt; will check requirements and when status will be &quot;&lt;b&gt;Ready&lt;/b&gt;&quot; press &lt;b&gt;Shift+O&lt;/b&gt; to start the installation process.
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjph4S_dcNz55hSyvVGlliSbUTK3lAu-R-paX96TFBGunxPGe6XxUjQTpE-TxsSvuYwQ6mcs4q1YUrqppSo_6boCcLnERhP54yBU7ELAbIivNtztgb33WYPTiqydATUve1FDoM2UsTL6kg/s1600/HP-UX-Depot-Installation-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjph4S_dcNz55hSyvVGlliSbUTK3lAu-R-paX96TFBGunxPGe6XxUjQTpE-TxsSvuYwQ6mcs4q1YUrqppSo_6boCcLnERhP54yBU7ELAbIivNtztgb33WYPTiqydATUve1FDoM2UsTL6kg/s1600/HP-UX-Depot-Installation-2.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
8: &lt;b&gt;Install Window&lt;/b&gt; appear, wait until the &lt;b&gt;Status&lt;/b&gt; field becomes &lt;b&gt;Completed&lt;/b&gt;, then press &lt;b&gt;Shift+D&lt;/b&gt; to close window.
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhskRe7CbOPQMFM5rtuxQ3jK8sS2gvSl_a6N5q9_ZwFQ94Nkk8iVt5nJSQTwJUAQfFlWcaDPY9n8vU5kF9l2nZTIfjyghuSPiuQ_EQ4_3GE6kVaGmgFf5AaUSdDcNvH7q7BWnHeX11GoKA/s1600/HP-UX-Depot-Installation-3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhskRe7CbOPQMFM5rtuxQ3jK8sS2gvSl_a6N5q9_ZwFQ94Nkk8iVt5nJSQTwJUAQfFlWcaDPY9n8vU5kF9l2nZTIfjyghuSPiuQ_EQ4_3GE6kVaGmgFf5AaUSdDcNvH7q7BWnHeX11GoKA/s1600/HP-UX-Depot-Installation-3.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
9: Press &lt;b&gt;TAB&lt;/b&gt;, then &lt;b&gt;Shift+F&lt;/b&gt; or select manually &lt;b&gt;File&lt;/b&gt;, and finally select &lt;b&gt;Exit&lt;/b&gt; or simply press &lt;b&gt;Shift+E&lt;/b&gt; to exit installation manager.&lt;br /&gt;
&lt;br /&gt;
10: Check if package was successfully installed:
&lt;br /&gt;
&lt;pre&gt;swlist | grep pachagename
&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/5754293942051166524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2015/08/hp-ux-software-installation-installing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/5754293942051166524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/5754293942051166524'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2015/08/hp-ux-software-installation-installing.html' title='HP-UX - Software Installation - Installing depot packages'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf30HHPgyw9XhzdikEIII8lKYpk4gjlE6S1rsQWNGI1NzYHCaEdG7bJGK2TLRJOF7J8yEwrPWvr6XOSQ98vfU-DQIzvHRdTNgLmV9Gu4HughteyULH1n6sOL1RytzCNkAddOYAWuTHt0g/s72-c/hpux-home-logo.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-8206878438501850688</id><published>2015-08-19T10:20:00.002+03:00</published><updated>2015-09-09T14:04:42.266+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Angular.js"/><category scheme="http://www.blogger.com/atom/ns#" term="Java Script"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>End to end testing with Protractor + Selenium</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;style&gt;
pre {width: 100%; background-color: rgb(44,44,44); color: white;}
pre b {color: rgb(219, 102, 13)}
&lt;/style&gt;

&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h2 style=&quot;clear: both; text-align: left;&quot;&gt;
Intro&lt;/h2&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;http://ramonvictor.github.io/protractor/slides/img/protractor-architecture.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://ramonvictor.github.io/protractor/slides/img/protractor-architecture.png&quot; height=&quot;320&quot; width=&quot;280&quot; /&gt;&lt;/a&gt;
  &lt;/div&gt;
&lt;div&gt;
Protractor and Selenium is used as default &lt;b&gt;e2e&lt;/b&gt; tools for creating and managing tests for &lt;b&gt;Angular.js&lt;/b&gt;, in particular yeoman generator called &lt;b&gt;generator-gulp-angular&lt;/b&gt;&amp;nbsp;is using them.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Protractor&lt;/b&gt; is an e2e test framework for Angular apps.&lt;br /&gt;
&lt;b&gt;Selenium&lt;/b&gt; is used to interact with the browser.&lt;br /&gt;
&lt;b&gt;Jasmine&lt;/b&gt; is used for writing tests code.
&lt;br /&gt;
&lt;br /&gt;
I will assume that we are using &lt;b&gt;yeoman&lt;/b&gt; generated &lt;b&gt;angular application&lt;/b&gt; using &lt;b&gt;generator-gulp-angular&lt;/b&gt; which automatically creates all necessary folder structure and downloads appropriate packages. 
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
protractor.conf.js&lt;/h2&gt;
&lt;pre style=&quot;text-align: left;&quot;&gt;exports.config = {
    &lt;b&gt;seleniumAddress&lt;/b&gt;: &#39;http://localhost:4444/wd/hub&#39;,

    &lt;b&gt;capabilities&lt;/b&gt;: {
      &#39;browserName&#39;: &#39;chrome&#39;
    },

    //*optional
    &lt;b&gt;multiCapabilities&lt;/b&gt;: [
       {
         &#39;browserName&#39; : &#39;chrome&#39;
       },
       {
         &#39;browserName&#39; : &#39;firefox&#39;
       }
    ],

    //*optional
    // gives ability to run specific suite of tests with command-parameter:
    // protractor protractor.conf.js --suite homepage
    &lt;b&gt;suites&lt;/b&gt;: {  
      homepage: &#39;tests/e2e/homepage/**/*Spec.js&#39;,
      search: [&#39;tests/e2e/contact_search/**/*Spec.js&#39;]
    },

    &lt;b&gt;specs&lt;/b&gt;: [&#39;example-spec.js&#39;],

    //*optional
    &lt;b&gt;onPrepare&lt;/b&gt;: function() {
      browser.driver.manage().window().setSize(1600, 800);
    },

    &lt;b&gt;jasmineNodeOpts&lt;/b&gt;: {
      showColors: true,
      realtimeFailure: true // show errors in a real time - immediately after happening 
    },  // This can be changed via the command line as:
    
    //*optional  
    // --params.login.user &#39;ngrocks&#39;
    // can be accessed via browser.params in tests
    &lt;b&gt;params&lt;/b&gt;: {
      login: {
        user: &#39;protractor-br&#39;,
        password: &#39;#ng123#&#39;
      }
    },
};
  &lt;/pre&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Writing tests: As in unit tests with Karma &amp;amp; Jasmine &lt;/h3&gt;
&lt;pre&gt;describe(&#39;description&#39;, function() {
     it(&#39;test description&#39;, function() {

     });
  });
  &lt;/pre&gt;
This is because Protractor uses Jasmine for its test syntax.
  &lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Writing Tests Code - Searching elements&lt;/h3&gt;
&lt;pre&gt;&lt;b&gt;element&lt;/b&gt;( 
     // each line is a possible variant:
     by.binding(&#39;appName&#39;)
     by.model(&#39;myModel&#39;)
     by.css(&#39;[ng-click=&quot;openPage()&quot;]&#39;)
     by.repeater(&#39;user in users&#39;)
     by.xpath(&#39;following-sibling::span&#39;)
     // ...
  );

  // the same is for:
  &lt;b&gt;element&lt;/b&gt;.all(...);
  &lt;/pre&gt;
Best practices is to avoid using &lt;b&gt;by.css&lt;/b&gt; and stick to other options of searching elements (if possible ofc).
  &lt;br /&gt;
Another option is t use &lt;b&gt;protractor.findElement()&lt;/b&gt; or &lt;b&gt;protractor.findElements&lt;/b&gt; instead of methods mentioned above correspondingly.
  &lt;br /&gt;
The main difference between protractor&#39;s methods and element is that any search of element will be started exactly AFTER the angular finish his work. 
  &lt;br /&gt;
Another way to make protractor not to wait for Angular to finish its work is:
&lt;br /&gt;
&lt;pre style=&quot;text-align: left;&quot;&gt;beforeEach(function() {
   return browser.ignoreSynchronization = true;
});
&lt;/pre&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Writing Tests Code - Executing Events&lt;/h3&gt;
&lt;pre&gt;&lt;b&gt;element&lt;/b&gt;(...)
     // each line is a possible variant:
     .click();
     .sendKeys(&quot;Hi!&quot;, protractor.Key.ENTER);

  // the same is for:
  &lt;b&gt;element&lt;/b&gt;.all(...);
  &lt;/pre&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
  Writing Tests Code - Protractor methods are return promises&lt;/h3&gt;
&lt;pre style=&quot;text-align: left;&quot;&gt;// Example of getText() promise
  &lt;b&gt;element&lt;/b&gt;(..).getText()
    .then(function(val) {
      expect(val).toEqual(&#39;23545&#39;);
    });
&lt;/pre&gt;
&lt;h3 style=&quot;font-family: &#39;Times New Roman&#39;; text-align: left; white-space: normal;&quot;&gt;
Writing Tests Code - Page Objects - Separate Test logic and operations on the elements&lt;/h3&gt;
&lt;div&gt;
A good practice in writing e2e tests is to separate test logic from operations on the elements like getting/setting/clicking. For every view/page or group of views/pages it is possible to separate out some actions and create for them so called &lt;b&gt;page objects&lt;/b&gt;: files with code containing methods related to interacting with page, for instance:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;page.po.js&lt;/b&gt; - contains methods for navigating/logging in or out&lt;/li&gt;
&lt;li&gt;&lt;b&gt;home.po.js&lt;/b&gt; - defines methods for interacting with pagination and list of records&lt;/li&gt;
&lt;li&gt;&lt;b&gt;record.po.js&lt;/b&gt; - specifies methods for getting/setting/interacting with elements when doing CRUD actions with some record.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
  Protractor Test Control Flow&lt;/h2&gt;
&lt;b&gt;WebDriverJS&lt;/b&gt; maintains a queue of pending promises, called the control flow, to keep execution organized.
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://raw.githubusercontent.com/ramonvictor/gulp-protractor-qa/master/assets/gulp-protractor-qa.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;396&quot; src=&quot;https://raw.githubusercontent.com/ramonvictor/gulp-protractor-qa/master/assets/gulp-protractor-qa.gif&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
  Debugging Protractor Tests&lt;/h2&gt;
&lt;pre&gt;gulp-protractor-qa&lt;/pre&gt;
It warns you on the fly whether all element() selectors could be found within your AngularJS view files.
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Export xml results of your Automated Suites&lt;/h2&gt;
&lt;pre style=&quot;text-align: left;&quot;&gt;//config.js
exports.config = {
  onPrepare: function() {
    var folderName = (new Date()).toString().split(&#39; &#39;).splice(1, 4).join(&#39; &#39;);
    var mkdirp = require(&#39;mkdirp&#39;);
    var newFolder = &quot;./reports/&quot; + folderName;
    require(&#39;jasmine-reporters&#39;);

    mkdirp(newFolder, function(err) {
      if (err) {
        console.error(err);
      } else {
        jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter(newFolder, true, true));
      }
    });
  },
};
&lt;/pre&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Possible Errors You can face&lt;/h3&gt;
&lt;pre&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;UnknownError: Error Message =&amp;gt; &#39;[ng:btstrpd] App Already Bootstrapped with this Element&lt;/span&gt;&lt;/pre&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
sollution: &lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
before any browser.get use:
&lt;br /&gt;
&lt;pre&gt;browser.driver.get(&#39;about:blank&#39;);
// source http://www.sebdangerfield.me.uk/2014/01/angularjs-protractor-app-already-bootstrapped-error/&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/8206878438501850688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2015/08/end-to-end-testing-with-protractor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/8206878438501850688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/8206878438501850688'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2015/08/end-to-end-testing-with-protractor.html' title='End to end testing with Protractor + Selenium'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-6731618615073595099</id><published>2015-06-21T12:44:00.001+03:00</published><updated>2016-11-22T12:47:23.992+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Administration"/><category scheme="http://www.blogger.com/atom/ns#" term="boooring"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>Настройка Sendmail</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;/div&gt;
__________&lt;br /&gt;
SENDMAIL
&lt;br /&gt;
&lt;pre&gt;# install sendmail and sendmail configuration tool
    yum install sendmail sendmail-cf -y

## ISSUES
sendmail can be substituded by postfix sendmail command
it can be checked by calling:
    sendmail -v blah@blah.net
and checking if the firs line contains
    ... ESTMP Postfix
If it is, you deal with postfix and it is another subject to discuss, 
the only thing I can say is that the postfix MTA config is situated in /etc/postfix/
and very similar and simpler that sendmail&#39;s one, though I do not understand well either
sendmails&#39; nor postfix&#39;s ones D:


## CONFIG /etc/mail/
- aliases
- access
- local-host-names
- mailertable
- virtusertable
- sendmail.mc
After editing them always call make to generate .db and .cf files.
If you change .mc - sendmail service restart is necessary.

В файле virtusertable мы указываем sendmail, куда направлять почту, пришедшую на адреса в доменах определённых в файле local-host-names.
http://linux.ufaras.ru/sendmail.html#1.1

&lt;/pre&gt;
________&lt;br /&gt;
POSTFIX (sendmail)&lt;br /&gt;
&lt;br /&gt;
headercheck(does not work for me with sendmail command)&lt;br /&gt;
&lt;pre&gt;So if someone stumbles over this like I did: the answer is indeed header_checks and it works as such:

Add the following line to /etc/postfix/main.cf:

header_checks = regexp:/etc/postfix/header_checks
Add the new file /etc/postfix/header_checks with this content:

/^To:.*@allowed-domain.com/  DUNNO
/^To:.*@/   REDIRECT redirect@example.com
Replace allowed-domain.com with the domain your mailserver should still send mails to. Replace redirect@example.com with the email address all other emails should be redirected to.

If you need to allow multiple domains, the first line should look like this:

/^To:.*@(allowed-domain.com|another-domain.com)/  DUNNO
Instead of redirecting you can simple drop all other mails. Replace the second line above with:

/^To:.*@/   DISCARD No outgoing mails allowed
Explanation:

Postfix goes through the mail headers one-by-one.
Each header line gets matched against the header_checks file line-by-line.
If it matches the first line (To: contains the allowed domain), it skips to the next header line and starts the header checks again from the top. Since no other line will match, this means the mail gets delivered.
If it matches the second line (To: contains another external email address), it redirects the mail.
&lt;/pre&gt;
&lt;br /&gt;
virtual&lt;br /&gt;
&lt;pre&gt;1. Edit /etc/postfix/virtual
This is a plaintext file where you can specify the domains and users to accept mail for. Each virtual domain should begin with a single line containing the domain name. The subsequent lines define addresses at the domain that are deliverable. Mail will be delivered to local usernames on the right side, as demonstrated in the example below. The condition @domain allows you to deliver &quot;all other&quot; mail to the indicated user. You can list multiple domains in this file; just repeat the format demonstrated below.

example.com  this-text-is-ignored
postmaster@example.com postmaster
address1@example.com destuser1
address2@example.com destuser2 
@example.com  destuser1
&lt;/pre&gt;
&lt;pre&gt;2. Edit /etc/postfix/main.cf

You have to tell postfix where to look for these virtual alias mappings; the appropriate configuration directive is in the main postfix configuration file. This tells postfix to use the db-format (hash) version of your virtual mappings. Note that your system must have db support for this to work; also, the actual db file is not created until you run &#39;postmap&#39; in step 3.

virtual_alias_maps = hash:/etc/postfix/virtual
&lt;/pre&gt;
&lt;pre&gt;3. Refresh configuration and mappings

Since you&#39;ve changed main.cf, you should restart the daemon. The second command below updates the virtual mappings; you must run this &#39;postmap&#39; command when you change your /etc/postfix/virtual file. The &#39;postmap&#39; command actually creates the hash db file that postfix looks for.

postfix reload
postmap /etc/postfix/virtual

&lt;/pre&gt;
&lt;br /&gt;
virtual-regexp&lt;br /&gt;
&lt;pre&gt;Create /etc/postfix/virtual-regexp with the following content:
    /.+@.+/ email@gmail.com
Edit /etc/postfix/main.cf and add regexp:/etc/postfix/virtual-regexp to the virtual_maps configuration. The end result might look like this in main.cf:
    virtual_maps = hash:/etc/postfix/virtual, regexp:/etc/postfix/virtual-regexp
Build the mapfile by typing:
    postmap /etc/postfix/virtual-regexp
This also requires a virtual.db to exist. If it doesn&#39;t create an empty file called virtual and run :
    touch /etc/postfix/virtual &amp;amp;&amp;amp; postmap /etc/postfix/virtual
Voila!
&lt;/pre&gt;
Postfix look for the first pattern match and applies it.
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/6731618615073595099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2016/11/sendmail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/6731618615073595099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/6731618615073595099'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2016/11/sendmail.html' title='Настройка Sendmail'/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8439594666176756133.post-1622538904053431191</id><published>2014-12-06T00:16:00.001+03:00</published><updated>2015-05-23T23:51:56.948+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GameDev"/><title type='text'>Бесплатная 90-дневная подписка на Unreal Engine 4 </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwQPjbIGMH5Y98BBMo40eAxVhtNEv8b4eBPZmM1kHpjTX4tH9zB_wadUBsgJQtw4tqNpdH-aaiZNsvaT7LAX7cq5zuJls7tyqaWCcWXtyhbdAs-cb-0brSRrL1fZd2AWZIDVCZoJQuuUM/s1600/UE4-90daysfree.jpg&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwQPjbIGMH5Y98BBMo40eAxVhtNEv8b4eBPZmM1kHpjTX4tH9zB_wadUBsgJQtw4tqNpdH-aaiZNsvaT7LAX7cq5zuJls7tyqaWCcWXtyhbdAs-cb-0brSRrL1fZd2AWZIDVCZoJQuuUM/s1600/UE4-90daysfree.jpg&quot; width=&quot;100%&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Ludum Dare радует разработчиков игр и не только раздачей вкусных плюшек, самой большой из которых является 90-дневная подписка на пользование Unreal Engine 4. Спешите перейти по &lt;a href=&quot;http://ludumdare.com/compo/2014/11/01/ludum-deals-for-ld31/&quot;&gt;адресу&lt;/a&gt; и получить промо-код!&amp;nbsp;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://rvach.blogspot.com/feeds/1622538904053431191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rvach.blogspot.com/2014/12/90-unreal-engine-4.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/1622538904053431191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8439594666176756133/posts/default/1622538904053431191'/><link rel='alternate' type='text/html' href='http://rvach.blogspot.com/2014/12/90-unreal-engine-4.html' title='Бесплатная 90-дневная подписка на Unreal Engine 4 '/><author><name>Rv4Flyver</name><uri>http://www.blogger.com/profile/08439795028080821480</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwQPjbIGMH5Y98BBMo40eAxVhtNEv8b4eBPZmM1kHpjTX4tH9zB_wadUBsgJQtw4tqNpdH-aaiZNsvaT7LAX7cq5zuJls7tyqaWCcWXtyhbdAs-cb-0brSRrL1fZd2AWZIDVCZoJQuuUM/s72-c/UE4-90daysfree.jpg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>