<?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-6637650743028901225</id><updated>2012-02-16T07:04:54.737-08:00</updated><title type='text'>webneer</title><subtitle type='html'>A Blog for Web Engineers</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://webneer.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6637650743028901225/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://webneer.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>jnuno</name><uri>http://www.blogger.com/profile/14094065371886061370</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>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6637650743028901225.post-3810205851226761738</id><published>2008-06-02T05:23:00.000-07:00</published><updated>2008-06-03T06:17:34.255-07:00</updated><title type='text'>Java templates (code generator)</title><content type='html'>Ever wanted to use Java to read a code template and generate code performing variable substitution? Here's how:&lt;br /&gt;&lt;br /&gt;1) Create a file named Class.template with the following content:&lt;br /&gt;&lt;div class="code_jn"&gt;public class %1$s {&lt;br /&gt;&amp;nbsp;&amp;nbsp;public static void main(String[] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println("Class %1$s says \"%2$s\"");&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;2) Create a code generator which will read your template above and perform the variables substitution:&lt;br /&gt;&lt;div class="code_jn"&gt;import java.io.BufferedReader;&lt;br /&gt;import java.io.BufferedWriter;&lt;br /&gt;import java.io.FileReader;&lt;br /&gt;import java.io.FileWriter;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;&lt;br /&gt;public class CodeGen {&lt;br /&gt;&amp;nbsp;&amp;nbsp;public static void main(String[] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String className = args[0];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String output = "Hello World!";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BufferedReader in = new BufferedReader(new FileReader("Class.template"));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StringBuilder sb = new StringBuilder();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String line;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while ((line = in.readLine()) != null) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sb.append(line);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;in.close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BufferedWriter out = new BufferedWriter(new FileWriter(className + ".java", false));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;out.write(String.format(sb.toString(), generatedClassName, output));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;out.close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} catch (IOException e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e.printStackTrace();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;3) Test it:&lt;br /&gt;Compile and run your code generator:&lt;br /&gt;&lt;div class="prompt_jn"&gt;javac CodeGen.java&lt;br /&gt;java CodeGen MyClass&lt;/div&gt;&lt;br /&gt;Compile and run your generated class MyClass:&lt;br /&gt;&lt;div class="prompt_jn"&gt;javac MyClass.java&lt;br /&gt;java MyClass&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Happy templating!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6637650743028901225-3810205851226761738?l=webneer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webneer.blogspot.com/feeds/3810205851226761738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6637650743028901225&amp;postID=3810205851226761738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6637650743028901225/posts/default/3810205851226761738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6637650743028901225/posts/default/3810205851226761738'/><link rel='alternate' type='text/html' href='http://webneer.blogspot.com/2008/06/java-templates-code-generator.html' title='Java templates (code generator)'/><author><name>jnuno</name><uri>http://www.blogger.com/profile/14094065371886061370</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-6637650743028901225.post-6844204247672068523</id><published>2008-05-29T12:54:00.001-07:00</published><updated>2008-05-29T13:07:42.993-07:00</updated><title type='text'>Add a favicon to your blog</title><content type='html'>Do the following to add a favicon to your blog (instructions given for &lt;a href="http://www.blogger.com"&gt;Blogger&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;Create an image file named &lt;strong&gt;favicon.ico&lt;/strong&gt; (this name is mandatory). You'll have to create this image with &lt;a href="http://www.gimp.org/"&gt;GIMP&lt;/a&gt; or other application which allows you to save your file as a .ico. If you prefer you can create a 16x16 .png with your favorite application an then use &lt;a href="http://www.winterdrache.de/freeware/png2ico/"&gt;png2ico&lt;/a&gt; to convert your image to an icon file.&lt;br /&gt;&lt;br /&gt;To add this icon to your blog click Customize &gt; Layout &gt; Edit HTML and right after your &amp;lt;head&amp;gt; tag add these lines adjusting your favicon url:&lt;br /&gt;&amp;lt;link href='http://url.com/favicon.ico' rel='shortcut icon' type='image/x-icon'/&amp;gt;&lt;br /&gt;&amp;lt;link href='http://url.com/favicon.ico' rel='icon' type='image/x-icon'/&amp;gt;&lt;br /&gt;&lt;br /&gt;Save your template and you should now see your favicon appear in your blog. If not try clearing your browser cached data and refresh your blog.&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6637650743028901225-6844204247672068523?l=webneer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webneer.blogspot.com/feeds/6844204247672068523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6637650743028901225&amp;postID=6844204247672068523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6637650743028901225/posts/default/6844204247672068523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6637650743028901225/posts/default/6844204247672068523'/><link rel='alternate' type='text/html' href='http://webneer.blogspot.com/2008/05/add-favicon-to-your-blog.html' title='Add a favicon to your blog'/><author><name>jnuno</name><uri>http://www.blogger.com/profile/14094065371886061370</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-6637650743028901225.post-7950267239384418670</id><published>2008-05-29T12:42:00.000-07:00</published><updated>2008-06-02T07:25:07.328-07:00</updated><title type='text'>Search inside text files in Linux</title><content type='html'>To search for files with a certain name pattern use find:&lt;br /&gt;&lt;strong&gt;find ~ -name "*.sh"&lt;/strong&gt;&lt;br /&gt;This command will list all files with sh extension in your home folder (~) and subfolders.&lt;br /&gt;&lt;br /&gt;Now if you want to search for a particular string inside these files all you have to do is:&lt;br /&gt;&lt;strong&gt;grep xpto `find ~ -name "*.sh"`&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;That's it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6637650743028901225-7950267239384418670?l=webneer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webneer.blogspot.com/feeds/7950267239384418670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6637650743028901225&amp;postID=7950267239384418670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6637650743028901225/posts/default/7950267239384418670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6637650743028901225/posts/default/7950267239384418670'/><link rel='alternate' type='text/html' href='http://webneer.blogspot.com/2008/05/search-inside-text-files-in-linux.html' title='Search inside text files in Linux'/><author><name>jnuno</name><uri>http://www.blogger.com/profile/14094065371886061370</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-6637650743028901225.post-6138406951337588520</id><published>2008-05-21T11:39:00.000-07:00</published><updated>2008-05-29T13:11:20.234-07:00</updated><title type='text'>StringBuilder versus StringBuffer in Java</title><content type='html'>Both &lt;span style="font-weight: bold;"&gt;StringBuilder&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;StringBuffer&lt;/span&gt; allow you to concat several &lt;span style="font-weight: bold;"&gt;String&lt;/span&gt; objects in only one object without the overhead of creating one object for each concatenation.&lt;br /&gt;&lt;br /&gt;The difference between these two is that &lt;span style="font-weight: bold;"&gt;StringBuffer&lt;/span&gt; is synchronized, thus slower. So if you intend to use it in a single-threaded program you should choose &lt;span style="font-weight: bold;"&gt;StringBuilder&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;StringBuilder sb = new StringBuilder("Hello");&lt;br /&gt;sb.append(" world!");&lt;br /&gt;System.out.println(sb.toString()); // Will print Hello world!&lt;br /&gt;&lt;br /&gt;In loops you should always use either StringBuilder or StringBuffer instead of + or .concat()!&lt;br /&gt;&lt;br /&gt;Happy programming!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6637650743028901225-6138406951337588520?l=webneer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webneer.blogspot.com/feeds/6138406951337588520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6637650743028901225&amp;postID=6138406951337588520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6637650743028901225/posts/default/6138406951337588520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6637650743028901225/posts/default/6138406951337588520'/><link rel='alternate' type='text/html' href='http://webneer.blogspot.com/2008/05/stringbuilder-versus-stringbuffer.html' title='StringBuilder versus StringBuffer in Java'/><author><name>jnuno</name><uri>http://www.blogger.com/profile/14094065371886061370</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>
