<?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: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-6991819378046651085</id><updated>2012-01-30T04:44:19.577-08:00</updated><category term='mail'/><category term='continuous integration'/><category term='tools'/><category term='development'/><category term='SIP'/><category term='maven'/><category term='IntelliJ IDEA'/><category term='youtube'/><category term='delete from disk'/><category term='firefox'/><category term='design pattern'/><category term='restore'/><category term='license'/><category term='applet;'/><category term='windows'/><category term='virtual machine'/><category term='source control'/><category term='system architecture'/><category term='mute'/><category term='rhel 5'/><category term='customization'/><category term='apache'/><category term='linux'/><category term='debug'/><category term='vba'/><category term='hold'/><category term='java'/><category term='ESXi'/><category term='cifs'/><category term='mount'/><category term='macros'/><category term='ssh access'/><category term='engine'/><category term='Asterisk'/><category term='synchronization'/><category term='Mylyn'/><category term='VmWare'/><category term='hudson'/><category term='spell checking'/><category term='utils'/><category term='vitual appliance'/><category term='time'/><category term='outlook'/><category term='interview'/><category term='smbfs'/><category term='groovy'/><category term='Eclipse'/><category term='features'/><category term='ssl'/><category term='foobar'/><category term='SDP'/><category term='fix'/><category term='FreeSwitch'/><category term='ClearCase'/><category term='task-oriented'/><title type='text'>bytes off, baby</title><subtitle type='html'>Yes, I do code!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-1638817833730086566</id><published>2012-01-25T23:08:00.000-08:00</published><updated>2012-01-25T23:11:05.700-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='utils'/><title type='text'>Yet another fast (online!) Java decompiler</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Being lazy to setup &lt;i&gt;jad &lt;/i&gt;on each machine I just found the solution - &lt;a href="http://java.decompiler.free.fr/"&gt;Java Decompiler&lt;/a&gt; with &lt;a href="http://java.decompiler.free.fr/?q=preview"&gt;do-it-online&lt;/a&gt; feature! Another cons - beside core lib it has version with UI.&lt;br /&gt;Happy hacking, brothers!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-1638817833730086566?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/1638817833730086566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2012/01/yet-another-fast-online-java-decompiler.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/1638817833730086566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/1638817833730086566'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2012/01/yet-another-fast-online-java-decompiler.html' title='Yet another fast (online!) Java decompiler'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-7892428869752097172</id><published>2011-02-24T00:48:00.000-08:00</published><updated>2011-02-24T01:45:50.075-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IntelliJ IDEA'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='fix'/><category scheme='http://www.blogger.com/atom/ns#' term='source control'/><title type='text'>IntelliJ IDEA: Clear pending incoming changes</title><content type='html'>Sometimes my IDEA goes crazy - it shows available incoming changes though all project files are up-to-date. In particular, I use IntelliJ IDEA 9.04 and SVN.&lt;br /&gt;&lt;br /&gt;Fix is rough and effective - just clean up IntelliJ IDEA vcs (version control system) cache: delete directories&lt;br /&gt;[user home dir]/.IntelliJIdea90/system/vcs&lt;br /&gt;[user home dir]/.IntelliJIdea90/system/vcsCache&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-7892428869752097172?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/7892428869752097172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2011/02/intellij-idea-clear-pending-incoming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/7892428869752097172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/7892428869752097172'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2011/02/intellij-idea-clear-pending-incoming.html' title='IntelliJ IDEA: Clear pending incoming changes'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-7023638047845335442</id><published>2011-02-16T09:06:00.000-08:00</published><updated>2011-05-31T14:47:29.218-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><category scheme='http://www.blogger.com/atom/ns#' term='continuous integration'/><title type='text'>Most wanted Maven commands</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;... which I used to forget!&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Generate Eclipse project file(s) for your (built with Maven) project&lt;br /&gt;&lt;pre class="brush:plain"&gt;cd [project root dir]&lt;br /&gt;mvn eclipse:clean eclipse:eclipse&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Build project quickly: don't check if there are updated artifacts (i.e., offline mode) and don't run tests&lt;br /&gt;&lt;pre class="brush:plain"&gt;cd [project root dir]&lt;br /&gt;mvn clean install -o -DskipTests&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Run main() method of your java class&lt;br /&gt;&lt;pre class="brush:plain"&gt;mvn exec:java -Dexec.mainClass="com.example.Main" [-Dexec.args="argument1"]&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Build a project module and all modules it depends on&lt;br /&gt;&lt;pre class="brush:plain"&gt;cd [project root dir]&lt;br /&gt;mvn clean install -pl [relative path from current dir to module you want to build] -am&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Continue to build a project from the module on which previous build procedure has been interrupted (for example, because of build failure)&lt;br /&gt;&lt;pre class="brush:plain"&gt;cd [project root dir]&lt;br /&gt;mvn clean install -rf [relative path from current dir to module on which previous build procedure has been interrupted]&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Run specific goal for a given plugin&lt;br /&gt;&lt;pre class="brush:plain"&gt;mvn [plugin groupId]:[plugin artifactId]:[specific goal]&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Initialize new project in maven way&lt;br /&gt;&lt;pre class="brush:plain"&gt;mvn archetype:generate&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-7023638047845335442?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/7023638047845335442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2011/02/most-wanted-maven-commands.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/7023638047845335442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/7023638047845335442'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2011/02/most-wanted-maven-commands.html' title='Most wanted Maven commands'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-5120571518700706197</id><published>2010-12-29T02:22:00.000-08:00</published><updated>2012-01-30T04:44:19.582-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='interview'/><title type='text'>Questions on Java interview</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Guys, I'd like to share with the (big) world my modest Java interviewing experience. Here are the questions which I pester job-candidates with:&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Object Oriented Programming&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Central idea of Object Oriented Programming in one sentence&lt;/li&gt;&lt;li&gt;Central idea of Structured Programming in one sentence&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;b&gt;Core Java&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Multiple inheritance in Java (classes and interfaces)&lt;/li&gt;&lt;li&gt;What are the differences between Interface and Abstract Class?&lt;/li&gt;&lt;li&gt;What final classes in Java SDK you know? Why they are declared final? &lt;/li&gt;&lt;li&gt;What are the (non-) final methods of Object class? Why?&lt;/li&gt;&lt;li&gt;How to override Object.clone() method correctly?&lt;/li&gt;&lt;li&gt;Collections&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What is the difference between ArrayList and Vector?&lt;/li&gt;&lt;li&gt;How to sort a collection of your own classes?&lt;/li&gt;&lt;li&gt;&lt;span style="background-color: #cfe2f3; color: #990000;"&gt;[Senior]&lt;/span&gt; What sorting algorithm is used in Collections.sort()? Why?&lt;/li&gt;&lt;li&gt;How to filter out (i.e., remove some items) from ArrayList while iterating through it?&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Exceptions&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Types and the difference&lt;/li&gt;&lt;li&gt;What kind of exception can you catch?&lt;/li&gt;&lt;li&gt;Is it safe to catch &lt;i&gt;Throwable&lt;/i&gt;?&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Threads&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What are the static and instance methods in a Thread class?&lt;/li&gt;&lt;li&gt;Why static methods in a Thread class are static and instance method are not?&lt;/li&gt;&lt;li&gt;What is the difference between &lt;i&gt;Thread.sleep()&lt;/i&gt; and &lt;i&gt;someObject.wait()&lt;/i&gt; methods?&lt;/li&gt;&lt;li&gt;What are the immutable objects? When to use?&lt;/li&gt;&lt;li&gt;&lt;span style="background-color: #cfe2f3; color: #990000;"&gt;[Senior]&lt;/span&gt; What are the reasons to use utils in the package &lt;i&gt;java.util.concurrency&lt;/i&gt;?&lt;/li&gt;&lt;li&gt;&lt;span style="background-color: #cfe2f3; color: #990000;"&gt;[Senior]&lt;/span&gt; What is a ThreadLocal? How you can use it in production code? &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Serialization&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How to make a class serializable?&lt;/li&gt;&lt;li&gt;Java IDEs shows us warning if the serializable class doesn't declare static final field of type long, "serialVersionUID". Why to worry?&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Quirks&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Is it possible to have two object of the given singleton class in one VM? If so - then how?&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;Enterprise Java&lt;/b&gt;   &lt;br /&gt;&lt;ol&gt;&lt;li&gt;Servlets: when servlet is instantiated?&lt;/li&gt;&lt;li&gt;Servlets: how much servlet' instances of a same class simultaneously live in servlet container?&lt;/li&gt;&lt;li&gt;Are servlets thread-safe? &lt;/li&gt;&lt;/ol&gt;&lt;b&gt;Object-relational mapping&lt;/b&gt;   &lt;br /&gt;&lt;ol&gt;&lt;li&gt;What are the requirements for the Entity?&lt;/li&gt;&lt;li&gt;Is it necessary to override &lt;i&gt;Entity.equals()&lt;/i&gt;? How to implement &lt;i&gt;Entity.equals()&lt;/i&gt;? What are the caveats? &lt;/li&gt;&lt;li&gt;What is lazy loading? Is it dangerous?&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;Simple algorithms&lt;/b&gt; &lt;br /&gt;&lt;ol&gt;&lt;li&gt;Transform given string "Bob doesn't eat dogs" to the new one "dogs eat doesn't Bob". String.split() usage is prohibited.&lt;/li&gt;&lt;li&gt;Bubble sorting. Algorithm improvements.&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;"Mmmmmmmm...." questions&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;What a new trick/feature you'd found in Java?&lt;/li&gt;&lt;li&gt;Which software pattern you are using most? Why?&lt;/li&gt;&lt;li&gt;Why Multiple inheritance is bad?&lt;/li&gt;&lt;li&gt;What is the latest IT technology you'd discovered for yourself?&lt;/li&gt;&lt;li&gt;Which IT achievement you can be proud of?&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;Ideas for pair programming session&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Bubble sorting. Unit tests and&amp;nbsp; algorithm improvements&lt;/li&gt;&lt;li&gt;Modelling computer network. Instances: domains, subdomains, hosts. Operations:add, delete, move, find. Unit tests.&lt;/li&gt;&lt;li&gt;Echo server and client.&lt;/li&gt;&lt;li&gt;Modelling animal farm. Instances: pig, cat, dog. Operations: create, feed, sound. Unit tests.&lt;/li&gt;&lt;li&gt;Modelling computer network. Instances: domains, subdomains, hosts, settings (collection of key-value pairs). Operations: apply setting to host/domain, override set of parameters on host/domain. Unit tests.&lt;/li&gt;&lt;li&gt;Modelling computer network. Instances: domains, subdomains, hosts. Operations: sort hosts according to their nesting(starting from root).&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-5120571518700706197?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/5120571518700706197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2010/12/questions-on-java-interview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/5120571518700706197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/5120571518700706197'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2010/12/questions-on-java-interview.html' title='Questions on Java interview'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-2325684448385472209</id><published>2010-12-24T06:08:00.001-08:00</published><updated>2010-12-24T06:13:04.312-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='synchronization'/><category scheme='http://www.blogger.com/atom/ns#' term='design pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='system architecture'/><title type='text'>Data synchronization design pattern</title><content type='html'>Data synchronization, incremental/bulk updates.. We all know these problematic words but who knows that the restless human mind has already systematized this field?&lt;br /&gt;Lady and gentlemen, let me introduce &lt;a href="http://en.wikipedia.org/wiki/Change_data_capture"&gt;&lt;b&gt;Change data capture&lt;/b&gt;&lt;/a&gt; design pattern.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;Wikipedia says:&lt;br /&gt;Change data capture (CDC) is a set of software design patterns used to determine (and track) the data that has changed so that action can be taken using the changed data. Also, Change data capture (CDC) is an approach to data integration that is based on the identification, capture and delivery of the changes made to enterprise data sources.&lt;br /&gt;&lt;br /&gt;You won't find any concrete class diagram in CDC pattern. But definitely will get some ideas and best-practices of data sync implementation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-2325684448385472209?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/2325684448385472209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2010/12/data-synchronization-design-pattern.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/2325684448385472209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/2325684448385472209'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2010/12/data-synchronization-design-pattern.html' title='Data synchronization design pattern'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-1344609299768815225</id><published>2010-12-20T01:04:00.001-08:00</published><updated>2010-12-20T01:12:30.668-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='ssl'/><title type='text'>Debug SSL-TLS connections in java application</title><content type='html'>I'd lust SSL debugging vastly.. And what?!&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;I'd found this feature not in third-party libs, sniffer applications, firewalls, etc. The miracle was in &lt;strike&gt;my trunks&lt;/strike&gt; JRE!&lt;br /&gt;Java Secure Socket Extension (JSSE) do provides dynamic debug tracing support.&lt;br /&gt;JVM parameter &lt;i&gt;&lt;b&gt;-Djavax.net.debug&lt;/b&gt;&lt;/i&gt; with these options is a magic wand:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;b&gt;all&lt;/b&gt; turn on all debugging&lt;br /&gt;&lt;b&gt;ssl&lt;/b&gt; turn on ssl debugging&lt;/div&gt;&lt;br /&gt;The following can be used with &lt;i&gt;ssl&lt;/i&gt;:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;b&gt;record&lt;/b&gt; enable per-record tracing&lt;br /&gt;&lt;b&gt;handshake&lt;/b&gt; print each handshake message&lt;br /&gt;&lt;b&gt;keygen&lt;/b&gt; print key generation data&lt;br /&gt;&lt;b&gt;session&lt;/b&gt;print session activity&lt;br /&gt;&lt;b&gt;defaultctx&lt;/b&gt; print default SSL initialization&lt;br /&gt;&lt;b&gt;sslctx&lt;/b&gt; print SSLContext tracing&lt;br /&gt;&lt;b&gt;sessioncache&lt;/b&gt; print session cache tracing&lt;br /&gt;&lt;b&gt;keymanager&lt;/b&gt; print key manager tracing&lt;br /&gt;&lt;b&gt;trustmanager&lt;/b&gt; print trust manager tracing&lt;/div&gt;&lt;br /&gt;&lt;i&gt;handshake&lt;/i&gt; debugging can be widened with:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;b&gt;data&lt;/b&gt; hex dump of each handshake message&lt;br /&gt;&lt;b&gt;verbose&lt;/b&gt; verbose handshake message printing&lt;/div&gt;&lt;br /&gt;&lt;i&gt;record&lt;/i&gt; debugging can be widened with:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;b&gt;plaintext&lt;/b&gt; hex dump of record plaintext&lt;br /&gt;&lt;b&gt;packet&lt;/b&gt; print raw SSL/TLS packets&lt;/div&gt;&lt;br /&gt;Run this and you'll see everything:&lt;br /&gt;&lt;pre class="brush:plain"&gt;java -Djavax.net.debug=all MyApp&lt;/pre&gt;&lt;br /&gt;All the stuff for this post has been frankly stolen from &lt;a href="http://docs.huihoo.com/java/se/jdk6/docs/guide/security/jsse/JSSERefGuide.html#Debug"&gt;here&lt;/a&gt;. And real nerds would be interested in &lt;a href="http://docs.huihoo.com/java/se/jdk6/docs/guide/security/jsse/ReadDebug.html"&gt;detailed SSL/TLS debugging&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;P.S.&lt;br /&gt;SSL debug utility is not an officially supported feature of JSSE..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-1344609299768815225?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/1344609299768815225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2010/12/debug-ssl-tls-connections-in-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/1344609299768815225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/1344609299768815225'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2010/12/debug-ssl-tls-connections-in-java.html' title='Debug SSL-TLS connections in java application'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-4581143976268063383</id><published>2010-02-24T03:37:00.001-08:00</published><updated>2010-02-24T03:40:37.387-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='customization'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Puttycyg - the best console for Cygwin</title><content type='html'>I tried many home-grown projects just to feed a lust for a simply.. &lt;b&gt;good&lt;/b&gt; console in Windows. And for sure, cmd.exe is out of comments. I had a wish - putty + Cygwin but I'm too lazy to do it myself. Happily, someone (&lt;a href="http://code.google.com/u/medgar123/"&gt;medgar123&lt;/a&gt;) done it - &lt;a href="http://code.google.com/p/puttycyg/"&gt;puttycyg&lt;/a&gt; is a place for heaven.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;Here is a small screen shot.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://i46.tinypic.com/2n88z2x.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="130" src="http://i46.tinypic.com/2n88z2x.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-4581143976268063383?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/4581143976268063383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2010/02/puttycyg-best-console-for-cygwin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/4581143976268063383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/4581143976268063383'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2010/02/puttycyg-best-console-for-cygwin.html' title='Puttycyg - the best console for Cygwin'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i46.tinypic.com/2n88z2x_th.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-8807384869346134667</id><published>2010-01-28T23:42:00.000-08:00</published><updated>2011-01-25T02:34:27.925-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='fix'/><title type='text'>NUL character in Windows clipboard</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Recently I'd failed to copy/paste simple text block with text editor &lt;a href="http://www.scintilla.org/"&gt;SciTE&lt;/a&gt; - I was able to copy (and paste) only a part of selected text block. Well, I've cowardly thought that the time has come to leave an old good friend and migrate to proven &lt;a href="http://notepad-plus.sourceforge.net/"&gt;Notepad++&lt;/a&gt;. No sooner said than done. And.. the famous Notepad++ couldn't copy the same text block also! Googling help me, I thought and started.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;Firstly, I found out that Notepad uses SciTE component (at-least) for the copy-paste. Then I went deeper and realized that text block which is finally pasted stops on the symbol NUL, i.e., I was able to copy everything up to the first NUL occurrence. And again, Google gave me an answer - this is another one funny Windows limitation. &lt;b&gt;Text with NUL character can't be copy/pasted in Windows.&lt;/b&gt;&lt;br /&gt;But it was really necessary to copy that text! The only way I found was to make Notepad++ interpret NUL characters as white spaces and then - do copy/paste.&lt;br /&gt;I also tried to use a native notepad.exe to open the problematic document - and again, Windows played the worst - NUL character were not shown as NUL, they were automatically transformed to white spaces. As you may guess, copy/pasting of text block with white spaces is affordable even for notepad.exe.&lt;br /&gt;&lt;br /&gt;P.S.&lt;br /&gt;NUL character in Notepad++.&lt;br /&gt;&lt;div class="separator" style="clear: both;"&gt;&lt;a href="http://3.bp.blogspot.com/_gxTnObwBtbY/TT6lwcjmbwI/AAAAAAAABMI/tHOC37TKVB8/s1600/null-character-in-notepad.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="100" width="461" src="http://3.bp.blogspot.com/_gxTnObwBtbY/TT6lwcjmbwI/AAAAAAAABMI/tHOC37TKVB8/s320/null-character-in-notepad.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Look out, you naive copy-pasters!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-8807384869346134667?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/8807384869346134667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2010/01/nul-character-in-windows-clipboard.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/8807384869346134667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/8807384869346134667'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2010/01/nul-character-in-windows-clipboard.html' title='NUL character in Windows clipboard'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_gxTnObwBtbY/TT6lwcjmbwI/AAAAAAAABMI/tHOC37TKVB8/s72-c/null-character-in-notepad.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-4316276617355933286</id><published>2010-01-18T03:47:00.000-08:00</published><updated>2010-08-02T12:41:08.213-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='applet;'/><title type='text'>How to avoid java applet caching</title><content type='html'>If you ever faced with Java applet development you've already noticed annoying caching. Applets could be cached almost everywhere - even on your HTTP proxy. The only real way to clean up cached java applets that I know is:&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Turn of proxy usage in web browser&lt;/li&gt;&lt;li&gt;Clean up browser cache&lt;/li&gt;&lt;li&gt;Close any java program &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Delete java cache from the computer you work on: for example, on Windows, remove directory&lt;br /&gt;&lt;pre class="brush:plain"&gt;%Documents and Settings%\%your_user_name%\Application Data\Sun\Java\Deployment&lt;/pre&gt;If the step 3 haven't been executed you may not be able to delete this directory.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-4316276617355933286?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/4316276617355933286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2010/01/how-to-avoid-java-applet-caching.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/4316276617355933286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/4316276617355933286'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2010/01/how-to-avoid-java-applet-caching.html' title='How to avoid java applet caching'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-1213951109192184108</id><published>2010-01-14T07:14:00.000-08:00</published><updated>2010-01-14T07:21:02.113-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ClearCase'/><category scheme='http://www.blogger.com/atom/ns#' term='customization'/><category scheme='http://www.blogger.com/atom/ns#' term='source control'/><title type='text'>ClearCase: customize associatiions operation - tool</title><content type='html'>I dislike some (to be honest, many of) standard ClearCase tools, for example, xml-files compare tool and file-merge tool. Even more, I already have my lovely tools for everything. The deal is - how to make ClearCase use my custom soft instead of the bundled tools?&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;And the answer is: there is a special ClearCase file which maps file extension, source control function and the tool to execute this function. Map-file can be found here: &lt;pre class="brush:plain"&gt;INSTALLED_CLEARCASE_DIR/lib/mgr/map&lt;/pre&gt;On my Windows dev PC the path is C:\Program Files\Rational\ClearCase\lib\mgrs\map.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-1213951109192184108?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/1213951109192184108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2010/01/clearcase-customize-associatiions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/1213951109192184108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/1213951109192184108'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2010/01/clearcase-customize-associatiions.html' title='ClearCase: customize associatiions operation - tool'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-4553182828035784992</id><published>2009-11-19T07:23:00.000-08:00</published><updated>2009-11-19T07:23:44.962-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='ClearCase'/><category scheme='http://www.blogger.com/atom/ns#' term='source control'/><title type='text'>ClearCase: how to get view private files</title><content type='html'>One of the needed features which is not accessible via ClearCase GUI is: how to get the list of files that are located in a view but not under source control.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;The the answer is&lt;br /&gt;for the dynamic views:&lt;br /&gt;&lt;pre class="brush:text"&gt;cleartool lsprivate&lt;br /&gt;&lt;/pre&gt;and for the snapshot views:&lt;br /&gt;&lt;pre class="brush:text"&gt;cleartool ls -recurse -view_only&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-4553182828035784992?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/4553182828035784992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/11/clearcase-how-to-get-view-private-files.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/4553182828035784992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/4553182828035784992'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/11/clearcase-how-to-get-view-private-files.html' title='ClearCase: how to get view private files'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-5223869399887069112</id><published>2009-11-17T01:36:00.000-08:00</published><updated>2009-11-21T01:15:01.628-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><title type='text'>Linux: runing app in daemon/background mode</title><content type='html'>Every cool guy knows that launching command with ampersand ('&amp;amp;') at the end leads to the background (let's say, console non-blocking) command processing. For sure, we talk about the honest Linux world. Meanwhile, there is a task which is widely used in a day-to-day IT life:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;log in to a Linux server via ssh&lt;/li&gt;&lt;li&gt;launch some application, script which 1) is not designed as a daemon, 2) produces output to std out/ std error:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;./myApp.sh &amp;amp;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;log off from the server.&lt;/li&gt;&lt;/ul&gt;But when you are trying to access your server-side application you've got it stopped! Why?&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;You do remember that you've launched it with the ampersand at the end. The answers - below.&lt;br /&gt;First of all, if your application provides any data to the std out or std error streams then you have to redirect those outputs somewhere, for example, to a log file, or to &lt;i&gt;/dev/null&lt;/i&gt; if the output won't be taken into account.&lt;br /&gt;&lt;pre class="brush:bash"&gt;./myApp.sh &amp;amp;&amp;gt; log.txt &amp;amp;&lt;/pre&gt;Here we've done redirect of both system out and system error streams to the file 'log.txt'. Redirect should be done to detach your app from console which will be destructed upon the logout.&lt;br /&gt;But it not enough to fix our problem: launched command should live after our logout.&lt;br /&gt;And here &lt;i&gt;nohup&lt;/i&gt; goes on:&lt;br /&gt;&lt;pre class="brush:bash"&gt;nohup sh myApp.sh &amp;amp;&amp;gt; log.txt &amp;amp;&lt;/pre&gt;That's it! When you do logout the &lt;i&gt;sshd&lt;/i&gt; application which hosted your appearance on the server is killed so the same signal is sent to each child process of the &lt;i&gt;sshd&lt;/i&gt; - even for the 'myApp.sh'. You may run &lt;i&gt;pstree&lt;/i&gt; on the server to check real process tree. &lt;i&gt;Nohup&lt;/i&gt; makes your application immune to the hangup signal, qoute from man page: "so that the command can continue running in the background after you log out". It should be stated that with &lt;i&gt;nohup&lt;/i&gt; it is not necessary to tun application in background mode.&lt;br /&gt;&lt;pre class="brush:bash"&gt;nohup sh myApp.sh &amp;amp;&amp;gt; log.txt&lt;/pre&gt;It's just a matter of console - it won't be blocked if application has been run with ampersand.&lt;br /&gt;&lt;br /&gt;There is another one useful and mature program called &lt;i&gt;screen&lt;/i&gt; which gives you more opportunities but this another long story to tell. You'll easily find info with "screen linux" request to any search engine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-5223869399887069112?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/5223869399887069112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/11/linux-runing-app-in-daemonbackground.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/5223869399887069112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/5223869399887069112'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/11/linux-runing-app-in-daemonbackground.html' title='Linux: runing app in daemon/background mode'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-8466482794466591518</id><published>2009-11-03T09:47:00.000-08:00</published><updated>2009-11-10T05:55:32.121-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='features'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><title type='text'>How to determine process id of java application</title><content type='html'>There is a classic task - stop or restart some java application on the server where several java apps are running. Common solution is to use "ps" on Linux or Process Explorer on Windows. But there is another one, more handy and useful option: use &lt;a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html"&gt;jps&lt;/a&gt; command which is bundled in JDKthe JAVA_HOME/bin:&lt;br /&gt;I prefer to do it this way:&lt;br /&gt;&lt;pre class="brush:plain"&gt;jps -mlv | grep some_text_to_identify_app&amp;nbsp;&lt;/pre&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;Here output of 'jps -mlv' on my Windows PC:&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;4452&amp;nbsp; -Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx512m -XX:MaxPermSize=256m&lt;br /&gt;2060 org.apache.catalina.startup.Bootstrap start -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:4414 -Dcatalina.home=D:\programs\java_&lt;br /&gt;stuff\apache-tomcat-6.0.18 -Djava.endorsed.dirs=D:\programs\java_stuff\apache-tomcat-6.0.18\endorsed -Dcatalina.base=D:\programs\java_stuff\apache-tom&lt;br /&gt;cat-6.0.18 -Djava.io.tmpdir=D:\programs\java_stuff\apache-tomcat-6.0.18\temp -Dfile.encoding=UTF-8&lt;br /&gt;4532 sun.tools.jps.Jps -mlv -Dapplication.home=D:\programs\java_stuff\Java\jdk1.6.0_13 -Xms8m&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-8466482794466591518?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/8466482794466591518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/11/how-to-determine-process-id-of-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/8466482794466591518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/8466482794466591518'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/11/how-to-determine-process-id-of-java.html' title='How to determine process id of java application'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-5947353579232542642</id><published>2009-10-26T07:29:00.000-07:00</published><updated>2009-11-03T09:50:30.853-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><title type='text'>Java: BufferedReader and reading line-by-line</title><content type='html'>It's common way to use buffered wrapper - &lt;a href="http://java.sun.com/javase/6/docs/api/java/io/BufferedReader.html"&gt;java.io.BufferedReader&lt;/a&gt; - for the file/network/etc read operations. And one of the most useful features: &lt;i&gt;readLine()&lt;/i&gt; method. What it returns? Javadoc answers:&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;"A String containing the contents of the line, not including              any line-termination characters, or null if the end of the              stream has been reached". Folks! Pay attention on that "null"! Wanna arguments? Have  a real-life examples:&lt;br /&gt;&lt;br /&gt;1. HOW-TO-DO: correct way to read input data&lt;br /&gt;&lt;pre class="brush:java"&gt;BufferedReader reader;&lt;br /&gt;//...&lt;br /&gt;String line;&lt;br /&gt;while ((line = reader.readLine()) != null) {&lt;br /&gt;  //do something&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;Major point in this example is a null-checking, i.e., we should not only read data but also check if the wrapped stream hasn't been closed.&lt;br /&gt;&lt;br /&gt;2. HOW-NOT-TO-DO: incorrect way to parse some text from read input data&lt;br /&gt;&lt;pre class="brush:java"&gt;BufferedReader reader;&lt;br /&gt;//...&lt;br /&gt;String line;&lt;br /&gt;while (true) {&lt;br /&gt;  line = reader.readLine());&lt;br /&gt;  if ((line == null)) || !line.isEmpty()) {&lt;br /&gt;    // All input data has been read so let's analyze it&lt;br /&gt;    analyzeBunchOfData();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;What's wrong here? That old ugly &lt;i&gt;null&lt;/i&gt; returned by &lt;i&gt;BufferedReader&lt;/i&gt;. Here we assume that if nothing (&lt;i&gt;null&lt;/i&gt;) has been read - than some bunch of input data has come. But it is no so! Again, if &lt;i&gt;BufferedReader&lt;/i&gt; returns &lt;i&gt;null &lt;/i&gt;- it means that internal stream has been closed, that, in turn, in most cases means that input resource has been closed, for example, network connection has been closed on the other side.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;The moral&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;Be accurate when you work with low-level input/output operations. At least.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-5947353579232542642?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/5947353579232542642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/10/java-bufferedreader-and-reading-line-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/5947353579232542642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/5947353579232542642'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/10/java-bufferedreader-and-reading-line-by.html' title='Java: BufferedReader and reading line-by-line'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-9222980967394475193</id><published>2009-10-22T00:28:00.000-07:00</published><updated>2009-10-22T00:28:15.835-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='features'/><category scheme='http://www.blogger.com/atom/ns#' term='customization'/><category scheme='http://www.blogger.com/atom/ns#' term='foobar'/><title type='text'>Multiple genre tags support in Foobar 2000</title><content type='html'>Philosophical intro: "Named means exist".&lt;br /&gt;I use &lt;a href="http://www.foobar2000.org/"&gt;Foobar 2000&lt;/a&gt; as a music player. Recently I've found how to make Foobar apply and visualize in "Album List" multiply genre tags. Simply use semicolon ";" to separate values!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_gxTnObwBtbY/SuAJH-mCrnI/AAAAAAAABHI/0wCdX5Zt0ws/s1600-h/foobar_library.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_gxTnObwBtbY/SuAJH-mCrnI/AAAAAAAABHI/0wCdX5Zt0ws/s320/foobar_library.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Here is my "demo":&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-9222980967394475193?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/9222980967394475193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/10/multiple-genre-tags-support-in-foobar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/9222980967394475193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/9222980967394475193'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/10/multiple-genre-tags-support-in-foobar.html' title='Multiple genre tags support in Foobar 2000'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_gxTnObwBtbY/SuAJH-mCrnI/AAAAAAAABHI/0wCdX5Zt0ws/s72-c/foobar_library.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-6103551643435111921</id><published>2009-10-20T05:21:00.001-07:00</published><updated>2009-10-20T05:25:39.926-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='features'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='mount'/><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><category scheme='http://www.blogger.com/atom/ns#' term='fix'/><title type='text'>How to mount disk to specific  drive letter</title><content type='html'>&lt;b&gt;The problem&lt;/b&gt;&lt;br /&gt;Pre: for sure, we'll talk about lovely Windows cause in Linux even the meaning of the word "problem" differs..&lt;br /&gt;So, you have a removable disk (flash or hard drive) and when you plug it into your Windows PC it appears with different drive letters. For example, you have a bunch of media on a flash drive. You plug it for the first time, Windows provides drive letter "G" for this drive. Then you import all media into some media library. After a while you pull out flash and later plug it again. Now Windows decides to name this drive letter with "F" and.. you can't access your media files from the media library. On  my own PC this happens  not so frequently but each time I have to refresh my media library in Foobar 2000 player. So boring!&lt;br /&gt;The day has come to say "NO"!&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The solution&lt;/b&gt;&lt;br /&gt;I've done simple script which automatically mounts disk to the drive letter you want to. I dislike writing tricky bat-files, and I also wondering in &lt;a href="http://groovy.codehaus.org/"&gt;Groovy&lt;/a&gt;, that it to say, my auto-mount feature requires Java and Groovy installed. You can read a small &lt;a href="http://groovy.codehaus.org/Tutorial+1+-+Getting+started"&gt;how-to-configure-environment-guide&lt;/a&gt;. The script below should be run after the needed disk has been plugged, i.e., after the Windows has mounted the disk. Another requirement is to pre-define disk label.&lt;br /&gt;&lt;pre class="brush:groovy"&gt;def NEEDED_DRIVE_LETTER = 'B'&lt;br /&gt;def DISK_LABEL_TO_SEARCH = 'STORAGE'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;def txt = 'cmd /c mountvol'.execute().text&lt;br /&gt;def m = []&lt;br /&gt;txt.split('[\\r\\n]+').each {m &lt;&lt; it.trim()}&lt;br /&gt;&lt;br /&gt;def volumeId&lt;br /&gt;def disk&lt;br /&gt;m.eachWithIndex() { obj, i -&gt; &lt;br /&gt;  if (obj.endsWith(':\\')) {&lt;br /&gt;    txt = "cmd /c vol ${obj - '\\'}".execute().text&lt;br /&gt;    if (txt.contains(" is $DISK_LABEL_TO_SEARCH")) {&lt;br /&gt;      volumeId = m[i - 1]&lt;br /&gt;      disk = obj&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if (!(NEEDED_DRIVE_LETTER + ':\\').equalsIgnoreCase(disk)) {&lt;br /&gt;  "cmd /c mountvol $disk /d".execute()&lt;br /&gt;  "cmd /c mountvol $NEEDED_DRIVE_LETTER: $volumeId".execute()&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Two points to customize in this script are right are:&lt;br /&gt;NEEDED_DRIVE_LETTER - drive letter where you want to mount your disk&lt;br /&gt;DISK_LABEL_TO_SEARCH - disk label of your disk&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;P.S. Please don't blame my groovy karma - I'm a youngster in this field. Anyway, every comment is welcome!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-6103551643435111921?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/6103551643435111921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/10/how-to-mount-disk-to-specific-drive.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/6103551643435111921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/6103551643435111921'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/10/how-to-mount-disk-to-specific-drive.html' title='How to mount disk to specific  drive letter'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-4887481795751000545</id><published>2009-07-06T23:45:00.000-07:00</published><updated>2009-07-07T00:07:07.186-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='features'/><category scheme='http://www.blogger.com/atom/ns#' term='fix'/><title type='text'>Save all opened tabs in Firefox</title><content type='html'>Historically some of us don't trust Firefox to store all opened tabs on close - Tab mix plus addon was one of mine favorites.. But from version_3_God's_know_what_exactly Firefox has native/default mechanism to save tabs. What is interesting- my PRO (developers and sys admins) friends/colleagues don't know how to activate Firefox tabs saver but other NORMAL people do know. This is for you, my lovely geeks:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open Firefox -&gt; Tools -&gt; Options -&gt; Main -&gt; Startup&lt;/li&gt;&lt;li&gt;Set When Firefox starts: Show my windows and tabs from the last time&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-4887481795751000545?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/4887481795751000545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/07/save-all-opened-tabs-in-firefox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/4887481795751000545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/4887481795751000545'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/07/save-all-opened-tabs-in-firefox.html' title='Save all opened tabs in Firefox'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-8197700528005765462</id><published>2009-07-01T07:02:00.000-07:00</published><updated>2009-07-07T00:16:25.697-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='features'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='hudson'/><category scheme='http://www.blogger.com/atom/ns#' term='continuous integration'/><title type='text'>Hudson plugin for Eclipse</title><content type='html'>You code in Eclipse and use &lt;a href="https://hudson.dev.java.net/"&gt;Hudson&lt;/a&gt; for the continuous integration? You are lazy enough to use great (really) Hudson web interface? Then you need a &lt;a href="http://code.google.com/p/hudson-eclipse/"&gt;hudson-eclipse plugin&lt;/a&gt;! With hudson-eclipse you are able to monitor project build status, schedule new build and view console output right in your favorite IDE.&lt;br /&gt;&lt;br /&gt;One note to mention: if your Eclipse is configured to use proxy for internet connections and your build-server is in the local network then you may experience some troubles during plugin configuration. Just add build-server address to the bypass list (Eclipse -&gt; Window -&gt; Preferences -&gt; General -&gt; Network Connections -&gt; No proxy for).&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-8197700528005765462?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/8197700528005765462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/07/hudson-plugin-for-eclipse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/8197700528005765462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/8197700528005765462'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/07/hudson-plugin-for-eclipse.html' title='Hudson plugin for Eclipse'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-7713773218822914083</id><published>2009-07-01T02:13:00.000-07:00</published><updated>2009-07-01T02:24:33.323-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='outlook'/><category scheme='http://www.blogger.com/atom/ns#' term='spell checking'/><category scheme='http://www.blogger.com/atom/ns#' term='fix'/><title type='text'>Fix spell cheking in MS Outlook 2007</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Problem&lt;/span&gt;&lt;br /&gt;You had installed MS Office 2007 and now you find out that spell cheeking doesn't work in MS Outlook, but works in MS Word. Welcome to the planet MS!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fix&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Delete (or rename) registry key &lt;pre class="brush:plain"&gt;HKEY_CURRENT_USER\Software\Microsoft\Shared Tools\Proofing Tools\1.0\Override&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Restart Outlook&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-7713773218822914083?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/7713773218822914083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/07/fix-spell-cheking-in-ms-outlook-2007.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/7713773218822914083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/7713773218822914083'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/07/fix-spell-cheking-in-ms-outlook-2007.html' title='Fix spell cheking in MS Outlook 2007'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-8950430080053556082</id><published>2009-06-30T03:43:00.000-07:00</published><updated>2009-07-01T02:33:24.731-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='task-oriented'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='customization'/><category scheme='http://www.blogger.com/atom/ns#' term='Mylyn'/><category scheme='http://www.blogger.com/atom/ns#' term='fix'/><title type='text'>Prevent Mylyn auto add new files in context</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Problem&lt;/span&gt;&lt;br /&gt;I'm using &lt;a href="http://www.eclipse.org/mylyn/"&gt;Eclipse Mylyn plugin&lt;/a&gt; to be more task-oriented (ha-ha). By default Mylyn auto add new *.java, *. xml (and many other) files (that may not be interesting to you) to the context of the active task. For example, you work in a team on your own particular task, i.e. editing 5 files. And youl collegue commit 50 new files. You update the project and- you've got 55 files in task context but 50 of them absolutely not relative to your current job. In task context I want to see ONLY those files that have been opened by myself.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fix&lt;/span&gt;&lt;br /&gt;Stop Mylyn to monitor new resources!&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Eclipse -&gt; Window -&gt; Preferences -&gt; Tasks -&gt; Resources -&gt; Resource Monitor Exclusion&lt;/li&gt;&lt;li&gt;Click on "Add" and provide patterns for the files. " I want to exclude all so the only pattern I have is "*".&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Remarks&lt;/span&gt;&lt;br /&gt;All above is actual for the Eclipse 3.4 and Mylyn 3.2, but I guess for other version behavior would be the same.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-8950430080053556082?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/8950430080053556082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/06/prevent-mylyn-auto-add-new-files-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/8950430080053556082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/8950430080053556082'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/06/prevent-mylyn-auto-add-new-files-in.html' title='Prevent Mylyn auto add new files in context'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-3671740830647905394</id><published>2009-06-17T06:02:00.000-07:00</published><updated>2010-02-12T04:23:25.718-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='outlook'/><category scheme='http://www.blogger.com/atom/ns#' term='features'/><category scheme='http://www.blogger.com/atom/ns#' term='mail'/><category scheme='http://www.blogger.com/atom/ns#' term='vba'/><category scheme='http://www.blogger.com/atom/ns#' term='macros'/><title type='text'>Pimp your Outlook messaging</title><content type='html'>&lt;div style="height: 350px;"&gt;&lt;img alt="Pimp your Outlook messaging" src="http://i42.tinypic.com/34e9onq.jpg" style="float: left; margin: 0pt 50px 10px 0pt;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Outlook&lt;/span&gt; is so common rich application.. but it lacks of some simple and so much needed functions like:&lt;br /&gt;&lt;ul style="text-align: center;"&gt;&lt;li style="text-align: left;"&gt;&lt;span style="font-family: courier new;"&gt;Edit message as new&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: left;"&gt;&lt;span style="font-family: courier new;"&gt;New message with already filled CC&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: left;"&gt;&lt;span style="font-family: courier new;"&gt;Reply to message with already filled CC&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;But real cool hackers never give up even if your best friend name is Bill.&lt;br /&gt;&lt;br /&gt;Let's do it.&lt;/div&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Pre-requests&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;MS Outlook 2003/2007&lt;/li&gt;&lt;li&gt;Patience (you've mentioned 'MS' in the point one, ain't so?)&lt;/li&gt;&lt;/ol&gt;All said below is tested on the MS Outlook 2003 and MS Outlook 2007, screenshots were done with the Outlook 2007.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;Outlook and VBA macros&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;We start with the "&lt;span style="font-weight: bold;"&gt;Edit message as new&lt;/span&gt;" feature. "Edit as new" is a must-have when you want simply re-send message to somebody (not to forward, or to reply) or when you need to make some changes to message you'd sent earlier and re-send again. For sure, there is a standard function in Outlook for this: double click on some message -&amp;gt; click on the "Other Actions" item in toolbar -&amp;gt; choose "Edit message" in drop-down list. But we are lazy enough, we wish to do this with one click! So:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open Outlook&lt;/li&gt;&lt;li&gt;Tools -&amp;gt; Macro -&amp;gt; Visual Basic Editor (or simply press ALT+F11)&lt;/li&gt;&lt;li&gt;In the opened editor you'll see project structure on the left. Expand it: Project1 -&amp;gt; Microsoft Office Outlook Objects -&amp;gt; double click on node ThisOutlookSession.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Paste the code below to the opened editor&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:vb"&gt;Sub EditAsNew()&lt;br /&gt;Dim msg As Outlook.MailItem&lt;br /&gt;Set msg = Outlook.ActiveExplorer.Selection(1)&lt;br /&gt;If msg Is Nothing Then Exit Sub&lt;br /&gt;If Not TypeOf msg Is Outlook.MailItem Then Exit Sub&lt;br /&gt;&lt;br /&gt;Dim newMsg As Outlook.MailItem&lt;br /&gt;Set newMsg = Application.CreateItem(olMailItem)&lt;br /&gt;newMsg.To = msg.To&lt;br /&gt;newMsg.CC = msg.CC&lt;br /&gt;newMsg.BCC = msg.BCC&lt;br /&gt;newMsg.Subject = msg.Subject&lt;br /&gt;Call copyAttachments(msg, newMsg)&lt;br /&gt;newMsg.Body = msg.Body&lt;br /&gt;newMsg.Display&lt;br /&gt;&lt;br /&gt;Set msg = Nothing&lt;br /&gt;Set newMsg = Nothing&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Sub copyAttachments(objSourceItem, objTargetItem)&lt;br /&gt;Set fso = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;Set fldTemp = fso.GetSpecialFolder(2) ' TemporaryFolder&lt;br /&gt;strPath = fldTemp.Path &amp;amp; "\"&lt;br /&gt;For Each objAtt In objSourceItem.Attachments&lt;br /&gt;strFile = strPath &amp;amp; objAtt.FileName&lt;br /&gt;objAtt.SaveAsFile strFile&lt;br /&gt;objTargetItem.Attachments.Add strFile, , , objAtt.DisplayName&lt;br /&gt;fso.DeleteFile strFile&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;Set fldTemp = Nothing&lt;br /&gt;Set fso = Nothing&lt;br /&gt;End Sub&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Save (CTRL+S) and close Visual Baic Editor&lt;/li&gt;&lt;li&gt;Lets check! Select some message from 'Sent' folder and press ALT+F8&lt;/li&gt;&lt;li&gt;You'll probably see Outlook message "Microsoft Office has identified a potential security concern"&lt;/li&gt;&lt;img alt="Outlook warning message on macros launch" src="http://i39.tinypic.com/241m4r7.jpg" /&gt; No fear! You can click "Enable Macros" and next time you'll call macros you won't get warning message. Until you restart Outlook. If you don't want to be bothered with this message you may turn off macros protection in Outlook (here regular security remark goes). To do it: Tools -&amp;gt; Macro -&amp;gt; Security -&amp;gt; Macro Security -&amp;gt; No Security checks for macros&lt;li&gt;In opened window with list of available macroses choose our 'EditAsNew' and run it (button "Run")&lt;/li&gt;&lt;li&gt;You should see chosen message ready to be edited and re-send&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Well, it works (at least - on my side). But life is too shot to accomplish items 5 and 7 each time you want to re-send message. That's why you'll read next chapter - Outlook tuning.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size: 130%;"&gt;Outlook tuning&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;I know 3 methods to make world go around: keyboard, mouse and "Mu-u-u-m! Please, ...". It is possible to use shortcuts to launch macroses and I'm going to show how to do this in the next post.&lt;br /&gt;But now, mouse-users, unite! We are going to customize Outlook toolbar- remove rarely used items and add our hand-made beauties.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Right-click on standard toolbar&lt;br /&gt;&lt;img alt="Customize default Outlook toolbar" src="http://i40.tinypic.com/t7h3pu.jpg" /&gt;&lt;br /&gt;and choose "Customize"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click on any unwanted item from the standard toolbar and drag it somewhere out if toolbar - you'll see dagger - drop the item and it will disappear from the toolbar&lt;/li&gt;&lt;li&gt;You've finished him/them? Let's add new button to launch "EditAsNew" macros. Recall (if needed) menu "Customize" (see step 1) -&amp;gt; tab Commands -&amp;gt; Categories: Macros -&amp;gt; Select macros "EditAsNew"&lt;br /&gt;&lt;img alt="Outlook. Customize macros for toolbar" src="http://i40.tinypic.com/wc269d.jpg" /&gt;&lt;/li&gt;&lt;li&gt;Drag macros "EditAsNew" to the the toolbar and place it where you like. You'll get something like this:&lt;br /&gt;&lt;img alt="Outlook. Button on the toolbar to launch macros" src="http://i43.tinypic.com/ny8ad2.jpg" /&gt;&lt;/li&gt;&lt;li&gt;Do you like this informative caption for our new button? Me- not. But this is Outlook and everything is possible tonight. Let's rename caption: menu "Customize" (step 1 again) -&amp;gt; tab Commands -&amp;gt; Rearrange commands -&amp;gt; Choose a menu or toolbar to rearrange: Toolbar Standard -&amp;gt; select naughty "Project1.ThisOutlookSession.EditAsNew"&lt;br /&gt;&lt;img alt="Outlook. Customize buttons on the standard toolbar" src="http://i44.tinypic.com/ruxv0x.jpg" /&gt;&lt;/li&gt;&lt;li&gt;Click to Modify Selection and change field "Name" in drop-down menu to whatever you like. As for me - straight "EditAsNew" is well enough.&lt;/li&gt;&lt;/ol&gt;That's all! The road wasn't easy and paved with yellow bricks but.. we just made MS Outlook more user-oriented - quite a lot for a mere mortals!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;The rest&lt;/span&gt;&lt;br /&gt;As you might remember, at the beginning we were talking also about such features as &lt;br /&gt;&lt;ul&gt;&lt;li&gt;New message with already filled CC&lt;/li&gt;&lt;li&gt;Reply to message with already filled CC&lt;/li&gt;&lt;li&gt;Reply to all with already filled CC&lt;/li&gt;&lt;/ul&gt;A bit of explanations: imagine you are THE BIG BOSS. For sure you have pretty nice secretary and one of her duties (one of, I said) is to be up on everything about your day plan. Each time you send (or reply to) e-mail concerning  to your business meets- you have to put Her (that secretary, aha) in CC. You are still doing so? We are coming to you then!&lt;br /&gt;To add these features you need: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;VBA code for macroses (see below). Don't forget to modify the code - change e-mail from "prettysec@myrichoffice.com" to the correct one&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Run through the steps described above in a chapters "Outlook and VBA macros" and "Outlook tuning". NOTE: macroses should be pasted to the VBA editor, one after one.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;MS Outlook and "New message with already filled CC"&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:vb"&gt;Sub NewWithCc()&lt;br /&gt;Dim msg As Outlook.MailItem&lt;br /&gt;Set msg = Application.CreateItem(olMailItem)&lt;br /&gt;msg.CC = "prettysec@myrichoffice.com"&lt;br /&gt;msg.Display&lt;br /&gt;&lt;br /&gt;Set msg = Nothing&lt;br /&gt;End Sub&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;MS Outlook and "Reply to message with already filled CC" feature&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:vb"&gt;Sub ReplyWithCc()&lt;br /&gt;Dim msg As Outlook.MailItem&lt;br /&gt;Set msg = Outlook.ActiveExplorer.Selection(1)&lt;br /&gt;If msg Is Nothing Then Exit Sub&lt;br /&gt;If Not TypeOf msg Is Outlook.MailItem Then Exit Sub&lt;br /&gt;&lt;br /&gt;Dim reply As Outlook.MailItem&lt;br /&gt;Set reply = msg.reply&lt;br /&gt;reply.Display&lt;br /&gt;reply.CC = "prettysec@myrichoffice.com"&lt;br /&gt;&lt;br /&gt;Set msg = Nothing&lt;br /&gt;Set reply = Nothing&lt;br /&gt;End Sub&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;MS Outlook and "Reply to all with already filled CC" feature&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:vb"&gt;Sub ReplyToAllWithCc()&lt;br /&gt;Dim msg As Outlook.MailItem&lt;br /&gt;Set msg = Outlook.ActiveExplorer.Selection(1)&lt;br /&gt;If msg Is Nothing Then Exit Sub&lt;br /&gt;If Not TypeOf msg Is Outlook.MailItem Then Exit Sub&lt;br /&gt;&lt;br /&gt;Dim reply As Outlook.MailItem&lt;br /&gt;Set reply = msg.ReplyAll&lt;br /&gt;reply.Display&lt;br /&gt;reply.CC = msg.CC + "; prettysec@myrichoffice.com"&lt;br /&gt;&lt;br /&gt;Set msg = Nothing&lt;br /&gt;Set reply = Nothing&lt;br /&gt;End Sub&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size: 130%;"&gt;The last&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;My real Outlook standard toolbar screenshot. Check it out!&lt;br /&gt;&lt;img alt="Customized standard MS Outlook toolbar" src="http://i41.tinypic.com/orv2ic.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab" height="200" id="Player_ae052ec9-ccbf-4f1c-a838-630290d48e39" width="600"&gt; &lt;param name="movie" value="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;amp;MarketPlace=US&amp;amp;ID=V20070822%2FUS%2Fbytesoff-20%2F8010%2Fae052ec9-ccbf-4f1c-a838-630290d48e39&amp;amp;Operation=GetDisplayTemplate"&gt;&lt;param name="quality" value="high"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;amp;MarketPlace=US&amp;amp;ID=V20070822%2FUS%2Fbytesoff-20%2F8010%2Fae052ec9-ccbf-4f1c-a838-630290d48e39&amp;amp;Operation=GetDisplayTemplate" id="Player_ae052ec9-ccbf-4f1c-a838-630290d48e39" quality="high" bgcolor="#ffffff" name="Player_ae052ec9-ccbf-4f1c-a838-630290d48e39" allowscriptaccess="always" type="application/x-shockwave-flash" align="middle" height="200" width="600"&gt;&lt;/embed&gt;&lt;/object&gt; &lt;noscript&gt;&amp;amp;lt;a href="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;amp;amp;MarketPlace=US&amp;amp;amp;ID=V20070822%2FUS%2Fbytesoff-20%2F8010%2Fae052ec9-ccbf-4f1c-a838-630290d48e39&amp;amp;amp;Operation=NoScript"&amp;amp;gt;Amazon.com Widgets&amp;amp;lt;/a&amp;amp;gt;&lt;/noscript&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-3671740830647905394?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/3671740830647905394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/06/pimp-your-outlook-messaging.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/3671740830647905394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/3671740830647905394'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/06/pimp-your-outlook-messaging.html' title='Pimp your Outlook messaging'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i42.tinypic.com/34e9onq_th.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-5664344765039173957</id><published>2009-06-10T07:31:00.000-07:00</published><updated>2010-12-24T06:12:02.845-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='synchronization'/><category scheme='http://www.blogger.com/atom/ns#' term='VmWare'/><category scheme='http://www.blogger.com/atom/ns#' term='time'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual machine'/><title type='text'>Time synchronizing in VmWare virtual machine</title><content type='html'>I just found fundamental manual - &lt;a href="http://www.vmware.com/pdf/vmware_timekeeping.pdf"&gt;Timekeeping in VMware Virtual Machines&lt;/a&gt;. Main idea:&lt;br /&gt;&lt;br /&gt;If you want to have &lt;span style="font-weight: bold;"&gt;"real" time on &lt;/span&gt;your&lt;span style="font-weight: bold;"&gt; virtual machine&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;don't want to pay much&lt;/span&gt; for this &lt;a name='more'&gt;&lt;/a&gt; (won't you install those famous VmWare Tools?) and your virtual OS is:&lt;ul&gt;&lt;li&gt;Windows... Well, brother, fight for yourself.. (anyway, mentioned super-mega-manual would be definitely helpful)&lt;/li&gt;&lt;li&gt;Linux. [a certain Torvalds will smirk]. Here I is a big fat quote that really rocks.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;QUOTE_START&lt;br /&gt;&lt;/div&gt;The Network Time Protocol is usable in a virtual machine with proper configuration of the NTP daemon. The following points are important:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Do not configure the virtual machine to synchronize to its own (virtual) hardware clock, not even as afallback with a high stratum number. Some sample ntpd.conf files contain a section specifying the local clock as a potential time server, often marked with the comment “undisciplined local clock.” Delete anysuch server specification from your ntpd.conf file.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Include the option tinker panic 0 at the top of your ntp.conf file. By default, the NTP daemonsometimes panics and exits if the underlying clock appears to be behaving erratically. This option causesthe daemon to keep running instead of panicking.&lt;/li&gt;&lt;li&gt;Follow standard best practices for NTP: Choose a set of servers to synchronize to that have accurate time and adequate redundancy. If you have many virtual or physical client machines to synchronize, set upsome internal servers for them to use, so that all your clients are not directly accessing an external low‐stratum NTP server and overloading it with requests.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The following sample ntp.conf file is suitable if you have few enough clients that it makes sense  for them to access an external NTP server directly. If you have many clients, adapt this file by changing the server names to reference your internal NTP servers.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;NOTE Any tinker commands used must appear first.&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;# ntpd.conf&lt;br /&gt;tinker panic 0&lt;br /&gt;restrict 127.0.0.1&lt;br /&gt;restrict default kod nomodify notrap&lt;br /&gt;server 0.vmware.pool.ntp.org&lt;br /&gt;server 1.vmware.pool.ntp.org&lt;br /&gt;server 2.vmware.pool.ntp.org&lt;br /&gt;server 3.vmware.pool.ntp.org&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here is a sample /etc/ntp/step-tickers corresponding to the sample ntp.conf file above.&lt;br /&gt;&lt;pre class="brush:bash;"&gt;# step-tickers&lt;br /&gt;0.vmware.pool.ntp.org&lt;br /&gt;1.vmware.pool.ntp.org&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Make sure that ntpd is configured to start at boot time. On some distributions this can be accomplished with the command chkconfig ntpd on, but consult your distribution’s documentation for details. On most distributions, you can start ntpd manually with the command /etc/init.d/ntpd start.&lt;br /&gt;&lt;div style="text-align: center;"&gt;QUOTE_END&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-5664344765039173957?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/5664344765039173957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/06/time-synchronizing-in-vmware-virtual.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/5664344765039173957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/5664344765039173957'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/06/time-synchronizing-in-vmware-virtual.html' title='Time synchronizing in VmWare virtual machine'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-6414452997396409089</id><published>2009-06-10T02:32:00.000-07:00</published><updated>2009-06-10T02:46:49.366-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='engine'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='youtube'/><title type='text'>Youtube engine revealed!</title><content type='html'>Now I know the God's phone, yet not a number but the model of.&lt;br /&gt;My friend sent me this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_gxTnObwBtbY/Si9_YDSj00I/AAAAAAAAA64/wtSlzln9g3o/s1600-h/Capture.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 124px;" src="http://1.bp.blogspot.com/_gxTnObwBtbY/Si9_YDSj00I/AAAAAAAAA64/wtSlzln9g3o/s400/Capture.PNG" alt="" id="BLOGGER_PHOTO_ID_5345631333888807746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Great and ugly Google uses Apache server for the youtube service.&lt;br /&gt;Well, why not?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-6414452997396409089?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/6414452997396409089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/06/youtube-engine-revealed.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/6414452997396409089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/6414452997396409089'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/06/youtube-engine-revealed.html' title='Youtube engine revealed!'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_gxTnObwBtbY/Si9_YDSj00I/AAAAAAAAA64/wtSlzln9g3o/s72-c/Capture.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-773092424558291418</id><published>2009-06-05T04:44:00.000-07:00</published><updated>2009-10-19T06:15:30.927-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ESXi'/><category scheme='http://www.blogger.com/atom/ns#' term='license'/><category scheme='http://www.blogger.com/atom/ns#' term='VmWare'/><title type='text'>How to register VmWare ESXi server</title><content type='html'>Everyone know that VmWare ESXi server is free of charge but few of us knows where to get license key and how to apply it. Read this and you'll be the one who CAN.&lt;br /&gt;&lt;br /&gt;First of all, license key is provided on the official VmWare site when you start ESXi downloading.&lt;br /&gt;&lt;br /&gt;Next, to accomplish registration you need:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Install VmWare ESXi&lt;/li&gt;&lt;li&gt;Login to ESXi with the VMware Infrastructure Client&lt;br /&gt;(you may download it from the http://&amp;lt;your_vmware_esxi_ip&amp;gt;)&lt;/li&gt;&lt;li&gt;Go to section Inventionary -&amp;gt; tab Configuration -&amp;gt; Software -&amp;gt; Licensed Features -&amp;gt; License Source&lt;/li&gt;&lt;li&gt;In opened window check &lt;span style="font-style: italic;"&gt;Use serial number&lt;/span&gt; and put the number you got there&lt;/li&gt;&lt;/ul&gt;Trivial, huh?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-773092424558291418?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/773092424558291418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/06/how-to-register-vmware-esxi-35-server.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/773092424558291418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/773092424558291418'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/06/how-to-register-vmware-esxi-35-server.html' title='How to register VmWare ESXi server'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-7702725582634504222</id><published>2009-05-28T07:20:00.000-07:00</published><updated>2009-06-10T08:00:52.254-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smbfs'/><category scheme='http://www.blogger.com/atom/ns#' term='cifs'/><category scheme='http://www.blogger.com/atom/ns#' term='rhel 5'/><category scheme='http://www.blogger.com/atom/ns#' term='mount'/><title type='text'>RHEL 5 and samba/windows share resources</title><content type='html'>"Everything changes"..&lt;br /&gt;From Red Hat, version 5, you need to use 'cifs' fyle system type instead 'smbfs' to mount samba/windows share resources.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;pre class="brush:bash;"&gt;&lt;br /&gt;mount -t cifs -o username=mydomain/myuser //172.17.1.1/public /mnt/share/&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-7702725582634504222?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/7702725582634504222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/05/rhel-5-and-samba-mounting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/7702725582634504222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/7702725582634504222'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/05/rhel-5-and-samba-mounting.html' title='RHEL 5 and samba/windows share resources'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-4260449358110398348</id><published>2009-05-28T04:17:00.000-07:00</published><updated>2009-07-08T23:24:50.452-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SIP'/><category scheme='http://www.blogger.com/atom/ns#' term='hold'/><category scheme='http://www.blogger.com/atom/ns#' term='Asterisk'/><category scheme='http://www.blogger.com/atom/ns#' term='SDP'/><category scheme='http://www.blogger.com/atom/ns#' term='mute'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeSwitch'/><title type='text'>Hold/mute with FreeSwitch and Asterisk</title><content type='html'>Now I know how the "hold" and "mute" works on FreeSwitch and Asterisk (in a lure of SIP). X-Lite, Eyabeam and SjPhone were used in test, and with all of them pressing on "hold" softphone button led to: participator hear music-on-hold, hold-initiator hear silence. So, both FreeSwitch and Asterisk are so wise that play music-on-hold for person being held and silence for us. "Mute" is similar.&lt;br /&gt;&lt;br /&gt;(at least) For Asterisk it is possible to turn of sound in music-on-hold (if you wish to hear silence being held and being free. To do this add line&lt;br /&gt;&lt;pre class="brush:plain"&gt;musiconhold=none&lt;/pre&gt; to the specific peer section or to the 'global' if you want to apply this feature for everyone.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ad notam:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;"hold" itself is simply re-INVITE with SDP attributes&lt;/li&gt;&lt;pre class="brush:plain"&gt;IN:0.0.0.0&lt;br /&gt;a:sendonly&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Mute. Well, with Asterisk you can mute SIP channel using re-INVITE with "a=receiveonly" in media description. Freeswitch (at least in version 1.0.4 and below) doesn't support this.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-4260449358110398348?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/4260449358110398348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/05/hold-and-mute-with-freeswitch.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/4260449358110398348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/4260449358110398348'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/05/hold-and-mute-with-freeswitch.html' title='Hold/mute with FreeSwitch and Asterisk'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6991819378046651085.post-988480436966589104</id><published>2009-05-28T01:53:00.000-07:00</published><updated>2009-06-22T14:37:43.788-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delete from disk'/><category scheme='http://www.blogger.com/atom/ns#' term='ESXi'/><category scheme='http://www.blogger.com/atom/ns#' term='restore'/><category scheme='http://www.blogger.com/atom/ns#' term='vitual appliance'/><category scheme='http://www.blogger.com/atom/ns#' term='VmWare'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh access'/><title type='text'>Enable SSH for VMware ESX and get access to your virtual machines</title><content type='html'>You've deleted virtual appliance with 'remove' or simply pressed 'delete'? Congratulations! Now you have no access to "not_needed" virtual machine (VM) but the disk space is still used..&lt;br /&gt;To remove/restore/whatever_else VM from disk you may:&lt;br /&gt;do it manually (like a God - always without mistakes):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.ivobeerens.nl/?p=20"&gt;Enable ssh access on VMware ESX 3i&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Login to ESX server&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Explore /vmfs/volumes/datastore&lt;some_index&gt;&lt;some_index&gt;. Your VM is there.&lt;/some_index&gt;&lt;/some_index&gt;&lt;/li&gt;&lt;/ol&gt;Or use Datastore Browser- utility bundkled with VmWare Infrastructure client:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Select the VmWare ESX server host&lt;/li&gt;&lt;li&gt;Go to tab Summary -&gt; Resources -&gt; Datastore -&gt; double click on your datastore&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6991819378046651085-988480436966589104?l=bytesoff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bytesoff.blogspot.com/feeds/988480436966589104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bytesoff.blogspot.com/2009/05/enable-ssh-for-vmware-esx-and-get.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/988480436966589104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6991819378046651085/posts/default/988480436966589104'/><link rel='alternate' type='text/html' href='http://bytesoff.blogspot.com/2009/05/enable-ssh-for-vmware-esx-and-get.html' title='Enable SSH for VMware ESX and get access to your virtual machines'/><author><name>Artem Shiyanov</name><uri>http://www.blogger.com/profile/09110528792096055200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
