<?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-4003912748989872553</id><updated>2012-01-30T13:29:28.283-05:00</updated><category term='SOAP'/><category term='UNIX'/><category term='WSDL'/><category term='SUN'/><category term='RANT'/><category term='JAVA'/><category term='LINUX'/><category term='PYTHON'/><category term='CONFIG'/><category term='ANT'/><category term='NETBEANS'/><category term='WORKAROUND'/><category term='PROGRAMMING'/><category term='POLL'/><category term='FEDORA'/><category term='REVIEW'/><category term='SSL'/><category term='INTRODUCTION'/><category term='SWING'/><category term='SUBVERSION'/><category term='WEBSERVICE'/><category term='MAC OSX'/><category term='JAR'/><category term='HOWTO'/><title type='text'>StoKen Tips and Tricks</title><subtitle type='html'>A blog that describes various tips and tricks I have learned over time.  They have all helped me and may help you.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>48</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-4941013789842428651</id><published>2011-03-15T21:51:00.003-04:00</published><updated>2011-03-15T23:30:09.545-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PYTHON'/><title type='text'>Jetbrains PyCharm Simply Rocks - Initial Impressions</title><content type='html'>&lt;div&gt;&lt;i&gt;Overview&lt;/i&gt;&lt;/div&gt;I have not had time to write a blog about PyCharm yet.   With 1.2 released today, I have had only good experiences with it.   Since the first 1.0 release, I have worked on 7 different projects using it.&lt;div&gt;&lt;ul&gt;&lt;li&gt;New projects&lt;/li&gt;&lt;li&gt;Import existing projects&lt;/li&gt;&lt;/ul&gt;In all cases, my projects&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Use the standard python &lt;i&gt;unittest&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Are stored and managed using &lt;i&gt;Subversion&lt;/i&gt;.  &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Unit Test Integration&lt;/i&gt;&lt;/div&gt;&lt;div&gt;About as simple as it gets.   PyCharm gives you a lot of flexibility.   You can flag a folder as a "test" folder.  When you right click, you can &lt;i&gt;Mark Directory As&lt;/i&gt; "test" which will turn the folder "green".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you want to execute all tests, simply right click on the folder and &lt;i&gt;Run "Tests in...."&lt;/i&gt; menu option.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If there is a single file of tests you want to run, simply right click on the file and &lt;i&gt;Run&lt;/i&gt; the file.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In both case, a nice panel that pops up showing you the test progress.  There is a filter that can be turned on or off allowing you to see all test results or just the failed ones.   Visual queue help you know how well things are going. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since Python is fast to run/re-run, I get in the habit of adjusting code and re-running my tests.  The unit test module lets you do this by simply clicking on a green double triangle icon in the left side of the &lt;i&gt;Run&lt;/i&gt; panel.    This is very handy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This feature is clean and simple to use.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Subversion&lt;/i&gt;&lt;/div&gt;&lt;div&gt;Importing and checking out code works as expected.  As code is developed, PyCharm provides a "Changes" panel that you can view to see what files are modified.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;By right clicking on a folder or file, you can &lt;i&gt;Commit &lt;/i&gt;your changes.   In reverse, to update your local working copy, you can update a file or folder.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The UI provides clear feedback as to what it is doing in both cases, and lets you know what version your working copy is.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Inspections&lt;/i&gt;&lt;/div&gt;&lt;div&gt;I did an experiment.   How good is the advice PyCharm provides to improve your code?  I took an old project I wrote and imported it into PyCharm.   The old code was written using emacs and not much else.   &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I address all of the suggestions provided by the PyCharm's code &lt;i&gt;Inspection&lt;/i&gt;.   I was surprised by the sense many of the changes suggested.   In my experience, the suggestions provided did not break or cause issues in my code.   &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is possible to fine tune the suggestions in the settings/preferences.   The options provided are very detailed (in my mind).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Python Interpreter&lt;/i&gt;&lt;/div&gt;&lt;div&gt;PyCharm lets you configured one or many version of python.   Adding a new version is pretty easy.  If you don't have a project open, you can set the default interpreter in the settings/preferences.  If you have a project open, you can set the interpreter version for the open project.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Final Thoughts&lt;/i&gt;&lt;/div&gt;&lt;div&gt;These are just a few items of many productive features within PyCharm.   I am very happy with what I have been using so far.   In just about all cases, I have not needed to use any of the docs.  It just works the way I would expect it to behave.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I want to try Django support next.   But that is for a future blog.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-4941013789842428651?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/4941013789842428651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=4941013789842428651' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/4941013789842428651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/4941013789842428651'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2011/03/jetbrains-pycharm-simply-rocks-initial.html' title='Jetbrains PyCharm Simply Rocks - Initial Impressions'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-7955973685552345939</id><published>2011-01-22T21:04:00.004-05:00</published><updated>2011-01-22T21:08:02.688-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='PYTHON'/><category scheme='http://www.blogger.com/atom/ns#' term='POLL'/><title type='text'>POLL: Jetbrain's Python (Results)</title><content type='html'>&lt;ul&gt;&lt;li&gt;100% Already own it&lt;/li&gt;&lt;li&gt;0% Going to buy it&lt;/li&gt;&lt;li&gt;0% Not interested&lt;/li&gt;&lt;li&gt;0% What is PyCharm?&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-7955973685552345939?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/7955973685552345939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=7955973685552345939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7955973685552345939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7955973685552345939'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2011/01/poll-jetbrans-python.html' title='POLL: Jetbrain&apos;s Python (Results)'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-375097703402621046</id><published>2010-10-23T20:24:00.003-04:00</published><updated>2010-10-23T20:27:52.532-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SUN'/><category scheme='http://www.blogger.com/atom/ns#' term='POLL'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>POLL: Oracle owning SUN (Results)</title><content type='html'>&lt;ul&gt;&lt;li&gt;45% is good for Java&lt;/li&gt;&lt;li&gt;27% is bad for Java&lt;/li&gt;&lt;li&gt;27% should not affect Java&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-375097703402621046?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/375097703402621046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=375097703402621046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/375097703402621046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/375097703402621046'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2010/10/poll-oracle-owning-sun.html' title='POLL: Oracle owning SUN (Results)'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-372781629902454079</id><published>2010-02-02T23:15:00.001-05:00</published><updated>2010-02-02T23:15:58.029-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='POLL'/><title type='text'>POLL: I program at home/work (Results)</title><content type='html'>&lt;ul&gt;&lt;li&gt;60% *nix/Windows&lt;/li&gt;&lt;li&gt;20% *nix/*nix&lt;/li&gt;&lt;li&gt;20% Windows/*nix&lt;/li&gt;&lt;li&gt;0% Windows/Windows&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-372781629902454079?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/372781629902454079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=372781629902454079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/372781629902454079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/372781629902454079'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2010/02/poll-i-program-at-homework-results.html' title='POLL: I program at home/work (Results)'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-3765201997733683786</id><published>2010-02-02T23:13:00.000-05:00</published><updated>2010-02-02T23:14:39.288-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='POLL'/><title type='text'>POLL: My last vacation I worked (Results)</title><content type='html'>&lt;ul&gt;&lt;li&gt;40% 0-1 hours per day&lt;/li&gt;&lt;li&gt;20% 4-5 hours per day&lt;/li&gt;&lt;li&gt;20% 6-7 hours per day&lt;/li&gt;&lt;li&gt;20% What Vacation!&lt;/li&gt;&lt;li&gt;0% 2-3 hours per day&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-3765201997733683786?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/3765201997733683786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=3765201997733683786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/3765201997733683786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/3765201997733683786'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2010/02/poll-my-last-vacation-i-worked-results.html' title='POLL: My last vacation I worked (Results)'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-3557748306996867136</id><published>2010-01-03T22:57:00.002-05:00</published><updated>2010-01-03T23:00:33.716-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='POLL'/><title type='text'>POLL: Favorite Programmers Editor (Results)</title><content type='html'>&lt;ul&gt;&lt;li&gt;53% vi/vim/gvim&lt;/li&gt;&lt;li&gt;38% emacs&lt;/li&gt;&lt;li&gt;23% gedit&lt;/li&gt;&lt;li&gt;23% other&lt;/li&gt;&lt;li&gt;15% notepad++&lt;/li&gt;&lt;li&gt;15% fancy IDE&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-3557748306996867136?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/3557748306996867136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=3557748306996867136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/3557748306996867136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/3557748306996867136'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2010/01/poll-favorite-programmers-editor.html' title='POLL: Favorite Programmers Editor (Results)'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-5208165025173868883</id><published>2009-11-08T16:19:00.012-05:00</published><updated>2010-12-05T12:22:33.699-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='REVIEW'/><category scheme='http://www.blogger.com/atom/ns#' term='LINUX'/><title type='text'>Dell Mini 10v Netbook Running Ubuntu</title><content type='html'>&lt;span style="font-weight: bold; font-style: italic;"&gt;Overview&lt;/span&gt;&lt;br /&gt;A few month ago, I started looking for a small portable computer.  I ended up targeting netbook class portable computers.   I needed something small and reasonably powerful to allow me to work where ever I happened to be.  I also needed something that  I could put linux on since that is what I prefer over other operating systems.  I ended up getting a &lt;a href="http://www.dell.com/content/topics/segtopic.aspx/laptop-mini2?c=us&amp;amp;cs=19&amp;amp;l=en&amp;amp;s=dhs"&gt;Dell Mini 10v netbook&lt;/a&gt; for use when traveling.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Specifications&lt;/span&gt;&lt;br /&gt;I got the Mini 10v version which is configured as following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;Intel® Atom Processor® N270 (1.6GHz/533Mhz FSB/512K cache)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;10.1" Widescreen Display (1024x600)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;1GB DDR2 SDRAM&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;120G SATA HD&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Intel Graphics Media Accelerator (GMA) 950&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;56WHr Lithium-Ion Battery (6-cell)&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Ubuntu 8.10 Linux&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Webcam (1.3 megapixel)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;3 USB&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;1 VGA&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Headphone/Mic&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;I got it with the default color case which is black.  The only upgrade I got was the battery which was bumped from a 3-cell to a 6-cell.&lt;br /&gt;&lt;br /&gt;Aside from that, I picked up a cheap-o portable USB mini mouse at a local computer store since I hate touchpads (only option for the mini) and a &lt;a href="https://www.amazon.com/gp/product/B001F7HI02/ref=oss_T15_product"&gt;&lt;span class="item-title"&gt;Caselogic PLS-9Black Ultra Portable 7-Inch - 10-Inch Laptop Sleeve (Black)&lt;/span&gt;&lt;/a&gt;  So I could safely carry my netbook in a separate compartment from my main laptop.&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;The unit comes in a very small and tidy box with just the things you need.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Netbook&lt;/li&gt;&lt;li&gt;Power supply&lt;/li&gt;&lt;li&gt;CD with OS and such&lt;/li&gt;&lt;li&gt;Small getting started guide&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;After charging the battery fully, I booted it up.  The following are my impressions about the Dell Mini 10v.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Screen&lt;/span&gt;&lt;br /&gt;The screen is small.  Duh?  At 10.1" with 1024x600 resolution, it does not provide much heights to work with.  Lets just say, any code I develop on it is even more modular and concise then normal since a page on the mini is shorter then on just about anything else.&lt;br /&gt;&lt;br /&gt;For python programming (first job it was tasked with) I had no problems.  Emacs is lean and well suited for this computer.&lt;br /&gt;&lt;br /&gt;For things like &lt;a href="http://www.netbeans.org/"&gt;Netbeans&lt;/a&gt;, you will want to collapse just about everything except the editor.  I have not needed to do heavy programming yet but I suspect it is up to the task.&lt;br /&gt;&lt;br /&gt;It does support a VGA output.  So far I have not been able to get an extended desktop to work.   I can, however, pump all video output to an external monitor or projector.  Extended desktop would be a serious advantage for someone who wants to connect this to an external monitor when at home or work.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Image Quality&lt;/span&gt;&lt;br /&gt;Fantastic.   The screen is bright and clear.  I have had no issues reading documentation, code, emails, and blogs using it.  I like the 10v screen better then my main &lt;span style="font-style: italic;"&gt;Latitude E6500&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Performance&lt;/span&gt;&lt;br /&gt;The Intel Atom process does a fine job.  It is not very beefy but I have not had noticeable waits.  I am not a gamer so I cannot speak for that.   For business work and casual Internet work, the performance is just fine.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Ubuntu 8.10&lt;/span&gt;&lt;br /&gt;I commend Dell for pre-installing Ubuntu 8.10.  It is great that they choose hardware that will work for more then just Windows.   Ubuntu 8.10 works well out of the box.  It doesn't have any "crap ware" that you usually get with a non-Apple computer.  I powered it on, answered a few question and was up and running.&lt;br /&gt;&lt;br /&gt;However, I upgraded to 9.04 almost right away since it was more mature.   To upgraded, I just downloaded the image and flashed it to a pen drive.  After booting and following the base instructions, install was a snap.  There were absolutely no issues at all upgrading.  All hardware was detected and everything came up perfectly.  Even the webcam.&lt;br /&gt;&lt;br /&gt;When Ubuntu 9.10 came out, I upgraded that day using the standard Ubuntu network upgrade.   Again, no issues.  A perfect install/update.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 102, 51);"&gt;UPDATE (2010-01): I have spoken with a few people who have said that a clean install to 9.10 does not go very smooth.   If this is the case, your best bet is to get 9.04 and upgrade to 9.10.  It is a little more work but should not cause any issues. Hopefully 10.04 in April 2010 will improve the clean install.  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Why not Windows XP?  Well, after installing all the extra windows applications + virus scanner, I would be dealing with a pretty sluggish computer.    With XP, a real time virus scanner is a must.  Especially on a system that is designed to be used for travel.&lt;br /&gt;&lt;br /&gt;Overall Linux seems better suited to leaner systems.  Plus, it has everything I need to be productive out of the box.  Linux is just my personal preference.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Battery&lt;/span&gt;&lt;br /&gt;The one upgrade I did for my netbook was to get a bigger battery.  The 6-cell is about $35 more and well worth it.    On a long flight with my wireless off, I had power for just about the entire time.  I was quite surprised actually.&lt;br /&gt;&lt;br /&gt;To date, I only use my netbook on battery and the battery life is still very good.  The battery life will be less with wireless on but it is still very long for a portable computer.&lt;br /&gt;&lt;br /&gt;With the 6-cell battery, there is a long round strip that sticks out the bottom of the netbook.  At first I hated this since it put a bulge on the back.  I got over it once I realized that it helped keep it cool and put the whole thing at a slight angle for better and easier typing.     The sleeve I got stretches to accommodate the bulge from the battery.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Keyboard&lt;/span&gt;&lt;br /&gt;For something so small, the keyboard is great.  It has the extra windows keys between control and alt that work great with Ubuntu.  For me, the feel is very good and I can type fast on it.&lt;br /&gt;&lt;br /&gt;For Ubuntu, I suggest going into the CMOS setup of the netbook (accessed when you see the dell logo during boot) and set the function keys (F1-F12) to be function versus multi-media.    For me that is a personal preference.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Touchpad&lt;/span&gt;&lt;br /&gt;Before I talk about the touchpad, I have to confess, I hate all touchpads.  They just don't work for me very well.  Especially when I am doing graphical programming.&lt;br /&gt;&lt;br /&gt;Of all the touchpads inflicted on me, this is probably one of the worst I have used.  Dell made a mistake by mixing the buttons and touchpad area.  I can use it but others I have used work better.   For me, I don't care since I got a cheap mini-mouse that plugs into a USB port.   When the mouse is not plugged in, the touchpad does fine.&lt;br /&gt;&lt;br /&gt;I wish it came with an inteli-stick option like the latitude or thinkpad series laptops.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Usability&lt;/span&gt;&lt;br /&gt;Even being so small, Dell did a good job balancing the size and usability.  I can be productive on this unit.  I get the benefit of portability and quick boot up times.  The keyboard is great and the screen is clear.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Overall Opinion&lt;/span&gt;&lt;br /&gt;I am happy with my Dell Mini 10v.  Although I bought it for travel, I find I use it more then I expected.  It follows me to meetings at work and around the house.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Pros&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Great battery life&lt;/li&gt;&lt;li&gt;Good quality screen&lt;/li&gt;&lt;li&gt;Proper keyboard&lt;/li&gt;&lt;li&gt;Runs Ubuntu 8.10, 9.04, 9.10 like a champ&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="color:#CC9933;"&gt;UPDATE (2010-12): 10.04 and 10.10 like a champ. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;3 USB ports.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;Cons&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Touchpad&lt;br /&gt;&lt;/li&gt;&lt;li&gt;External VGA out could support extended desktop.&lt;/li&gt;&lt;/ul&gt;Hope this feedback helps.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-5208165025173868883?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/5208165025173868883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=5208165025173868883' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/5208165025173868883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/5208165025173868883'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2009/11/dell-mini-10v-netbook-running-ubuntu.html' title='Dell Mini 10v Netbook Running Ubuntu'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-2042004398805371400</id><published>2009-11-07T22:08:00.004-05:00</published><updated>2009-11-14T01:39:09.150-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CONFIG'/><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><title type='text'>Emacs Configuration .emacs file</title><content type='html'>&lt;span style="font-weight: bold; font-style: italic;"&gt;Overview&lt;/span&gt;&lt;br /&gt;The following is my .emacs file for reference.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;.emacs Configuration&lt;/span&gt;&lt;br /&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;;; -*- lisp -*-&lt;br /&gt;;;&lt;br /&gt;;; (c)2009 StoKen Software by uuklanger@gmail.com&lt;br /&gt;;;&lt;br /&gt;;; 2009.11.13 - updated for emacs23&lt;br /&gt;;; 2009.11.14 - added settings for font and height/width&lt;br /&gt;;;&lt;br /&gt;;; ============================================================================&lt;br /&gt;;; Setup Keyboard&lt;br /&gt;;; ============================================================================&lt;br /&gt;&lt;br /&gt;(global-set-key [home] 'beginning-of-line)&lt;br /&gt;(global-set-key [end] 'end-of-line)&lt;br /&gt;(global-set-key [delete] 'delete-char)&lt;br /&gt;(global-set-key [C-home] 'beginning-of-buffer)&lt;br /&gt;(global-set-key [C-end] 'end-of-buffer)&lt;br /&gt;&lt;br /&gt;;; ============================================================================&lt;br /&gt;;; Emacs customize section&lt;br /&gt;;; ============================================================================&lt;br /&gt;&lt;br /&gt;; Window Colors&lt;br /&gt;(set-background-color "DarkSlateGray")&lt;br /&gt;(set-foreground-color "Wheat")&lt;br /&gt;(set-cursor-color "Orchid")&lt;br /&gt;(set-mouse-color "Orchid")&lt;br /&gt;(set-default-font "DejaVu Sans Mono-8")&lt;br /&gt;(set-frame-height (selected-frame) 50)&lt;br /&gt;(set-frame-width (selected-frame) 80)&lt;br /&gt;&lt;br /&gt;; Turn off toolbar (toggle)&lt;br /&gt;(tool-bar-mode)&lt;br /&gt;&lt;br /&gt;; Display time&lt;br /&gt;(display-time)&lt;br /&gt;&lt;br /&gt;; Show column number&lt;br /&gt;(column-number-mode t)&lt;br /&gt;&lt;br /&gt;; Show line numbers&lt;br /&gt;(line-number-mode t)&lt;br /&gt;&lt;br /&gt;; FAQ 34: Highlight regions of text&lt;br /&gt;(transient-mark-mode t)&lt;br /&gt;&lt;br /&gt;; FAQ 66: font-lock-mode for all major modes&lt;br /&gt;(global-font-lock-mode t)&lt;br /&gt;(setq font-lock-maximum-decoration 't)&lt;br /&gt;&lt;br /&gt;; FAQ 67: Only scroll one line when moving past screen&lt;br /&gt;(setq scroll-step 1)&lt;br /&gt;(setq scroll-conservatively 1)&lt;br /&gt;&lt;br /&gt;; Dont show the GNU splash screen&lt;br /&gt;(setq inhibit-startup-message t)&lt;br /&gt;&lt;br /&gt;; Make all "yes or no" prompts show "y or n" instead&lt;br /&gt;; (fset 'yes-or-no-p 'y-or-n-p)&lt;br /&gt;&lt;br /&gt;;; Enable wheelmouse support by default&lt;br /&gt;(cond (window-system&lt;br /&gt;    (mwheel-install)&lt;br /&gt;))&lt;br /&gt;&lt;br /&gt;; Ensure we stay in UNIX mode for EOL char&lt;br /&gt;(setq inhibit-eol-conversion t)&lt;br /&gt;&lt;br /&gt;; if we compile, ensure ouput scrolls&lt;br /&gt;(setq compilation-scroll-output t)&lt;br /&gt;&lt;br /&gt;;; ============================================================================&lt;br /&gt;;; My preferred key bindings&lt;br /&gt;;; ============================================================================&lt;br /&gt;&lt;br /&gt;; Set C-g to goto-line&lt;br /&gt;(global-set-key "\C-cg" 'goto-line)&lt;br /&gt;&lt;br /&gt;;; ============================================================================&lt;br /&gt;;; CC Mode setup&lt;br /&gt;;; ============================================================================&lt;br /&gt;&lt;br /&gt;(defun stroustrup-common-hook ()&lt;br /&gt;     (c-set-style "cc-mode")&lt;br /&gt;     (setq tab-width 4 indent-tabs-mode nil)&lt;br /&gt;)&lt;br /&gt;(add-hook 'c-mode-common-hook 'stroustrup-common-hook)&lt;br /&gt;&lt;br /&gt;;; ============================================================================&lt;br /&gt;;; Perl Mode setup&lt;br /&gt;;; ============================================================================&lt;br /&gt;&lt;br /&gt;(defun perl-common-hook ()&lt;br /&gt;     (setq tab-width 4 indent-tabs-mode nil)&lt;br /&gt; (setq perl-indent-level        4&lt;br /&gt;    perl-font-lock                 t&lt;br /&gt;    perl-electric-lbrace-space     nil&lt;br /&gt;    perl-electric-parens           nil&lt;br /&gt;    perl-electric-linefeed         t&lt;br /&gt;    perl-electric-keywords         nil&lt;br /&gt;    perl-info-on-command-no-prompt t&lt;br /&gt;    perl-clobber-lisp-bindings     t&lt;br /&gt;    perl-lazy-help-time            1)&lt;br /&gt;)&lt;br /&gt;(add-hook 'perl-mode-hook 'perl-common-hook)&lt;br /&gt;&lt;br /&gt;;; ============================================================================&lt;br /&gt;;; Other hooks&lt;br /&gt;;; ============================================================================&lt;br /&gt;&lt;br /&gt;; turn on auto fill mode when editing text files&lt;br /&gt;&lt;br /&gt;(add-hook 'text-mode-hook 'turn-on-auto-fill)&lt;br /&gt;&lt;br /&gt;;; ============================================================================&lt;br /&gt;;; Runs Scripting Languages Program using compile key bindings&lt;br /&gt;;;&lt;br /&gt;;; if you have another lanugage, simply create a ____-run defun and add an if&lt;br /&gt;;; statement to script-run()&lt;br /&gt;;; ============================================================================&lt;br /&gt;&lt;br /&gt;(defun python-run ()&lt;br /&gt;"Use compile to run python programs"&lt;br /&gt;(interactive)&lt;br /&gt;(message "Running python for buffer %s." (buffer-name))&lt;br /&gt;(compile (concat "python " (buffer-name)))&lt;br /&gt;)&lt;br /&gt;(defun perl-run ()&lt;br /&gt;"Use compile to run perl programs"&lt;br /&gt;(interactive)&lt;br /&gt;(message "Running perl for buffer %s." (buffer-name))&lt;br /&gt;(compile (concat "perl -w " (buffer-name)))&lt;br /&gt;)&lt;br /&gt;(defun script-run ()&lt;br /&gt;"Use to run a script"&lt;br /&gt;(interactive)&lt;br /&gt;(if (equal (file-name-extension(buffer-name)) "py")&lt;br /&gt; (python-run))&lt;br /&gt;(if (equal (file-name-extension(buffer-name)) "pl")&lt;br /&gt; (perl-run))&lt;br /&gt;)&lt;br /&gt;(global-set-key [f5] 'script-run)&lt;br /&gt;&lt;br /&gt;;; ============================================================================&lt;br /&gt;;; Printer settings&lt;br /&gt;;; ============================================================================&lt;br /&gt;&lt;/pre&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;;; ============================================================================&lt;br /&gt;;; Fun stuff.  Functions you can call up from the command line&lt;br /&gt;;; ============================================================================&lt;br /&gt;&lt;br /&gt;(defun ascii-table ()&lt;br /&gt; "Print the ascii table. Based on a defun by Alex Schroeder&lt;br /&gt;&lt;asc@bsiag.com&gt;"&lt;br /&gt; (interactive)&lt;br /&gt; (switch-to-buffer "*ASCII*")&lt;br /&gt; (erase-buffer)&lt;br /&gt; (insert (format "ASCII characters up to number %d.\n" 254))&lt;br /&gt; (let ((i 0))&lt;br /&gt;   (while (&lt; i 254)      &lt;br /&gt;      (setq i (+ i 1))      &lt;br /&gt;      (insert (format "%4d 0x%02X %c\n" i i i))))  &lt;br /&gt;      (beginning-of-buffer)) &lt;br /&gt; (defun insert-date ()  &lt;br /&gt;    "Insert date at point."  &lt;br /&gt;    (interactive)  &lt;br /&gt;    (insert (format-time-string "%a %b %e, %Y %l:%M %p"))) &lt;br /&gt;;;; Convert DOS file format to Unix&lt;br /&gt;;; look at &lt;br /&gt;;; M-x comint-strip-ctrl-m&lt;br /&gt;;;   Command: Strip trailing `^M' characters from the current output group.&lt;br /&gt;;; from: elf@ee.ryerson.ca (Luis Fernandes)&lt;br /&gt;;; 22 May 1997&lt;br /&gt;;;; Usage: M-x dos2unix&lt;br /&gt;;;;&lt;br /&gt;   (defun dos2unix ()  &lt;br /&gt;    "Convert this entire buffer from MS-DOS text file format to UNIX."  &lt;br /&gt;       (interactive)  &lt;br /&gt;       (save-excursion    &lt;br /&gt;          (goto-char (point-min))    &lt;br /&gt;          (replace-regexp "\r$" "" nil)    &lt;br /&gt;          (goto-char (1- (point-max)))    &lt;br /&gt;          (if (looking-at "\C-z")        &lt;br /&gt;             (delete-char 1))))     &lt;br /&gt;;; ============================================================================&lt;br /&gt;;; End of file&lt;br /&gt;;; ============================================================================&lt;span style="font-family: Georgia,serif;"&gt;&lt;/span&gt;&lt;/asc@bsiag.com&gt;&lt;/pre&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Final Thoughts&lt;/span&gt;&lt;br /&gt;If you use emacs, some of the settings above may help.  I have gathered or created these settings and lisp code&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-2042004398805371400?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/2042004398805371400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=2042004398805371400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/2042004398805371400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/2042004398805371400'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2009/11/emacs-configuration-emacs-file.html' title='Emacs Configuration .emacs file'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-7937527404597724405</id><published>2009-11-07T20:18:00.005-05:00</published><updated>2009-11-07T23:14:57.509-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CONFIG'/><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><title type='text'>HOWTO: dos2unix in emacs</title><content type='html'>&lt;span style="font-weight: bold; font-style: italic;"&gt;Overview&lt;/span&gt;&lt;br /&gt;I switch between Linux, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;OSX&lt;/span&gt;, and Windows quiet a bit.   One problem with that can be the dreaded &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;EOL&lt;/span&gt; issue.&lt;br /&gt;&lt;br /&gt;For example, if you add &lt;span style="font-family:courier new;"&gt;#!/usr/bin/env python&lt;/span&gt; and have a DOS/Windows formatted file, running it in UNIX right from a shell may not work.&lt;br /&gt;&lt;br /&gt;For my development, I prefer to standardize on UNIX format.  For the languages I use, I know it will not cause any issues regardless of where they are run.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Requirements&lt;/span&gt;&lt;br /&gt;If you are using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;linux&lt;/span&gt;&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;OSX&lt;/span&gt;&lt;/span&gt;, or Solaris you will edit your ~/.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;emacs&lt;/span&gt;&lt;/span&gt; file.  If you are running Windows, you will be editing your %HOME%/_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;emacs&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For this &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;howto&lt;/span&gt;&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;emacs&lt;/span&gt;&lt;/span&gt;-22 is being used under &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Ubuntu&lt;/span&gt;&lt;/span&gt; Linux 9.10.  I doubt the OS or version of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;emacs&lt;/span&gt;&lt;/span&gt; will make a difference.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Force Unix &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;" class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;EOL&lt;/span&gt;&lt;br /&gt;To avoid having to deal with EOL on your own code, add the following to your .emacs file.&lt;br /&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;; Ensure we stay in UNIX mode for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;EOL&lt;/span&gt; char&lt;br /&gt;(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;setq&lt;/span&gt; inhibit-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;eol&lt;/span&gt;-conversion t)&lt;/pre&gt;Now emacs will only use UNIX EOL  Plus, you will see ^M in your file for each line with a DOS/Windows EOL.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;dos2&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;" class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;unix&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; Code&lt;/span&gt;&lt;br /&gt;I found this code and have been using it.  Why re-invent the wheel.&lt;br /&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;;;; Convert DOS file format to Unix&lt;br /&gt;;; look at&lt;br /&gt;;; M-x &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;comint&lt;/span&gt;-strip-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;ctrl&lt;/span&gt;-m&lt;br /&gt;;;   Command: Strip trailing `^M' characters from the current output group.&lt;br /&gt;;; from: elf@ee.ryerson.ca (Luis &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;Fernandes&lt;/span&gt;)&lt;br /&gt;;; 22 May 1997&lt;br /&gt;;;; Usage: M-x dos2&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;unix&lt;/span&gt;&lt;br /&gt;;;;&lt;br /&gt;(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;defun&lt;/span&gt; dos2&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;unix&lt;/span&gt; ()&lt;br /&gt;"Convert this entire buffer from MS-DOS text file format to UNIX."&lt;br /&gt;(interactive)&lt;br /&gt;(save-excursion&lt;br /&gt; (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;goto&lt;/span&gt;-char (point-min))&lt;br /&gt; (replace-regexp "\r$" "" nil)&lt;br /&gt; (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;goto&lt;/span&gt;-char (1- (point-max)))&lt;br /&gt; (if (looking-at "\C-z")&lt;br /&gt;     (delete-char 1))))&lt;br /&gt;&lt;/pre&gt;To use, press ESC-x and type dos2unix   After pressing return, you will see the magic happen.  I suggest making a backup before doing any global changes to anything.  All ^M will disappear.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Final Thoughts&lt;/span&gt;&lt;br /&gt;Adding this lisp code will help you standardize on UNIX EOL.  You will find the full .emacs file &lt;a href="http://stoken-tips-and-tricks.blogspot.com/2009/11/emacs-configuration-emacs-file.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-7937527404597724405?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/7937527404597724405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=7937527404597724405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7937527404597724405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7937527404597724405'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2009/11/howto-dos2unix-in-emacs.html' title='HOWTO: dos2unix in emacs'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-7441320041061747471</id><published>2009-11-07T16:00:00.018-05:00</published><updated>2009-11-09T10:20:33.017-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CONFIG'/><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><title type='text'>HOWTO: setup emacs to run scripts within UI</title><content type='html'>&lt;span style="font-weight: bold; font-style: italic;"&gt;Overview&lt;/span&gt;&lt;br /&gt;Lately, I have gone back to my old friend... &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;emacs&lt;/span&gt;&lt;/span&gt;.  Some would agree that a better and more flexible editor has never been created.   I used &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;emacs&lt;/span&gt;&lt;/span&gt; for many years for C/C++, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;perl&lt;/span&gt;&lt;/span&gt;, HTML, and shell programming.  Over time, projects and jobs drove me to full &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;IDEs&lt;/span&gt;&lt;/span&gt; like &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Netbeans&lt;/span&gt;&lt;/span&gt; and Visual Studio.&lt;br /&gt;&lt;br /&gt;I recently purchased a DELL Mini 10v &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;netbook&lt;/span&gt;&lt;/span&gt; running (of course) &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Ubuntu&lt;/span&gt;&lt;/span&gt;.  With the tiny (but beautiful and clear) screen, big &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;IDEs&lt;/span&gt;&lt;/span&gt; are just not practical.   Even with all panels minimized there is still only a tiny amount of space.&lt;br /&gt;&lt;br /&gt;For my last trip, I needed to develop some code to hack a pile data I was emailed right before I got on the plane... stat!   Thank ___ for having a plane friendly computer like a &lt;a href="http://stoken-tips-and-tricks.blogspot.com/2009/11/dell-mini-10v-netbook-running-ubuntu.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;netbook&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I have become dependent on all the work heavy IDEs automatically do.  Do I really know who to code or does the IDE guide me to a completed program? Plus, data hacking is better for scripting languages like &lt;a href="http://www.python.org/"&gt;python&lt;/a&gt; or &lt;a href="http://www.perl.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;perl&lt;/span&gt;&lt;/a&gt;.  On taxi I thought it over and made my call.   Welcome back to my tool belt emacs.&lt;br /&gt;&lt;br /&gt;Once we hit cruising altitude, I booted up &lt;a href="http://www.ubuntu.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Ubuntu&lt;/span&gt;&lt;/a&gt; 9.04, fired up &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;emacs&lt;/span&gt; and started coding. There was one problem.  I have been so used to simply pressing &lt;span style="font-style: italic;"&gt;F6&lt;/span&gt; to run my program.  I wanted to do the same thing in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;emacs&lt;/span&gt;.   Why be limited?&lt;br /&gt;&lt;br /&gt;The following tells you &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;howto&lt;/span&gt; setup emacs, for this type of behavior, using just a small amount of lisp code.  The only real dependency is having the languages you are using in the path.  If python or perl doesn't run from a command prompt, this will not work very well.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Requirements&lt;/span&gt;&lt;br /&gt;If you are using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;linux&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;OSX&lt;/span&gt;, or Solaris you will edit your ~/.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;emacs&lt;/span&gt; file.  If you are running Windows, you will be editing your %HOME%/_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;emacs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For this &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;howto&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;emacs&lt;/span&gt;-22 is being used under &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;Ubuntu&lt;/span&gt; Linux 9.10.  I doubt the OS or version of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;emacs&lt;/span&gt; will make a difference.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Launch Interpreter using F5&lt;/span&gt;&lt;br /&gt;Simply open your .&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;emacs&lt;/span&gt; or _&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;emacs&lt;/span&gt; file and add the following&lt;br /&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;;; ============================================================================&lt;br /&gt;;; Runs Scripting Languages Program using compile key bindings&lt;br /&gt;;;&lt;br /&gt;;; if you have another &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;lanugage&lt;/span&gt;, simply create a ____-run &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;defun&lt;/span&gt; and add an if&lt;br /&gt;;; statement to script-run()&lt;br /&gt;;; ============================================================================&lt;br /&gt;&lt;br /&gt;(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;defun&lt;/span&gt; python-run ()&lt;br /&gt;"Use compile to run python programs"&lt;br /&gt;(interactive)&lt;br /&gt;(message "Running python for buffer %s." (buffer-name))&lt;br /&gt;(compile (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;concat&lt;/span&gt; "python " (buffer-name)))&lt;br /&gt;)&lt;br /&gt;(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;defun&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;perl&lt;/span&gt;-run ()&lt;br /&gt;"Use compile to run &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;perl&lt;/span&gt; programs"&lt;br /&gt;(interactive)&lt;br /&gt;(message "Running &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;perl&lt;/span&gt; for buffer %s." (buffer-name))&lt;br /&gt;(compile (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;concat&lt;/span&gt; "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;perl&lt;/span&gt; -w " (buffer-name)))&lt;br /&gt;)&lt;br /&gt;(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;defun&lt;/span&gt; script-run ()&lt;br /&gt;"Use to run a script"&lt;br /&gt;(interactive)&lt;br /&gt;(if (equal (file-name-extension(buffer-name)) "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;py&lt;/span&gt;")&lt;br /&gt;(python-run))&lt;br /&gt;(if (equal (file-name-extension(buffer-name)) "pl")&lt;br /&gt;(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;perl&lt;/span&gt;-run))&lt;br /&gt;)&lt;br /&gt;(global-set-key [f5] 'script-run)&lt;/pre&gt;&lt;br /&gt;If the file is python (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;py&lt;/span&gt;) then python will be run in a separate buffer.  If the file is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;perl&lt;/span&gt; (pl) then &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;perl&lt;/span&gt; will be run in a separate buffer.  To trigger this, all that is needed is to press &lt;span style="font-style: italic;"&gt;F5&lt;/span&gt; while in a buffer that is either a &lt;span style="font-style: italic;"&gt;python&lt;/span&gt; or &lt;span style="font-style: italic;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;perl&lt;/span&gt;&lt;/span&gt; file.    That is it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Final Thoughts&lt;/span&gt;&lt;br /&gt;This approach can easily be expanded for other languages like ruby and such.  I hope this helps simplify programming using emacs.  Find my full .emacs file &lt;a href="http://stoken-tips-and-tricks.blogspot.com/2009/11/emacs-configuration-emacs-file.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Personally, I am glad I dusted off emacs.  Humm... what about VI.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-7441320041061747471?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/7441320041061747471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=7441320041061747471' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7441320041061747471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7441320041061747471'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2009/11/howto-setup-emacs-to-run-scripts-within.html' title='HOWTO: setup emacs to run scripts within UI'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-1493109182104546095</id><published>2009-11-07T15:10:00.002-05:00</published><updated>2009-11-07T15:16:14.845-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='POLL'/><title type='text'>POLL: To me, a netbook is.... (Results)</title><content type='html'>&lt;ul&gt;&lt;li&gt;20% say "to small for me"&lt;/li&gt;&lt;li&gt;20% say "only good for travel"&lt;/li&gt;&lt;li&gt;20% say "perfect if it runs Windows"&lt;/li&gt;&lt;li&gt;40% say "perfect if it runs Ubuntu"&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-1493109182104546095?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/1493109182104546095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=1493109182104546095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/1493109182104546095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/1493109182104546095'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2009/11/poll-to-me-netbook-is-results.html' title='POLL: To me, a netbook is.... (Results)'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-6460299940834014553</id><published>2009-09-14T22:35:00.001-04:00</published><updated>2009-09-14T22:36:27.935-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='POLL'/><category scheme='http://www.blogger.com/atom/ns#' term='LINUX'/><title type='text'>POLL: If you could only have one scripting language? (Results)</title><content type='html'>&lt;ul&gt;&lt;li&gt;38% Python&lt;/li&gt;&lt;li&gt;30% Ruby&lt;/li&gt;&lt;li&gt;15% Perl&lt;/li&gt;&lt;li&gt;7% bash&lt;/li&gt;&lt;li&gt;7% VBA&lt;/li&gt;&lt;li&gt;0% Groovy&lt;/li&gt;&lt;li&gt;0% csh&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-6460299940834014553?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/6460299940834014553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=6460299940834014553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/6460299940834014553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/6460299940834014553'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2009/09/poll-if-you-could-only-have-one.html' title='POLL: If you could only have one scripting language? (Results)'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-6199370807823572507</id><published>2009-09-14T22:30:00.001-04:00</published><updated>2009-09-14T22:31:45.404-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='POLL'/><category scheme='http://www.blogger.com/atom/ns#' term='LINUX'/><title type='text'>POLL: How was your Fedora 11 Upgrade? (Results)</title><content type='html'>&lt;ul&gt;&lt;li&gt;52% I use Ubuntu&lt;/li&gt;&lt;li&gt;19% Hell on Earth&lt;br /&gt;&lt;/li&gt;&lt;li&gt;19% I did a clean install&lt;/li&gt;&lt;li&gt;9% Easy and smooth&lt;/li&gt;&lt;li&gt;0% A little rough&lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-6199370807823572507?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/6199370807823572507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=6199370807823572507' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/6199370807823572507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/6199370807823572507'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2009/09/poll-how-was-your-fedora-11-upgrade.html' title='POLL: How was your Fedora 11 Upgrade? (Results)'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-8596939539809177121</id><published>2009-07-12T21:46:00.006-04:00</published><updated>2009-09-14T22:49:40.847-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CONFIG'/><category scheme='http://www.blogger.com/atom/ns#' term='FEDORA'/><category scheme='http://www.blogger.com/atom/ns#' term='LINUX'/><category scheme='http://www.blogger.com/atom/ns#' term='WORKAROUND'/><category scheme='http://www.blogger.com/atom/ns#' term='RANT'/><title type='text'>Fedora 11 - Upgrade from Fedora 10... not good... not good at all</title><content type='html'>&lt;span style="font-style: italic; font-weight: bold;"&gt;Overview&lt;/span&gt;&lt;br /&gt;So there I was, sitting at my workstation, doing a bit of work on my Fedora 10 server.   When, all of a sudden a docile little dialog appeared notifying me that Fedora 11 was available and I could run pre-upgrade before upgrading.&lt;br /&gt;&lt;br /&gt;Well, being an Ubuntu user, I have done many simple and smooth network based upgrades.  So I figured, why not.  Lets give it a shot.  All my critical data is backed up anyway.&lt;br /&gt;&lt;br /&gt;Now, I know what you are thinking.   It states on the &lt;a href="http://docs.fedoraproject.org/install-guide/f11/en-US/html/ch-upgrade-x86.html"&gt;fedora project website&lt;/a&gt; that they prefer a clean install vs an upgrade.  However, that doesn't mean an upgrade isn't possible? Right.  I mean if your system pops a dialog saying "Distribution upgrades available" you should feel comfortable doing it.  If it is possible but not recommended, why make the option so obvious.&lt;br /&gt;&lt;br /&gt;I have been using Redhat/Fedora for as long as I have been using linux.  Normally, I have followed the advice of doing a clean install vs upgrade.  This time, I did the upgrade via network and let just say, it was not a good experience.  Very little worked as advertised and I was always &lt;span style="font-style: italic;"&gt;this close &lt;/span&gt;to system corruption and rebuild.&lt;br /&gt;&lt;br /&gt;Now, I am not saying that an upgrade path from Fedora 10 to 11 spells doom.  I am just saying that it almost did for me.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Background&lt;/span&gt;&lt;br /&gt;My system has been upgraded twice by DVD.  From Fedora 7 to 9.  Then from Fedora 9 to 10.   This may have set the stage for my upgrade distress.    In all cases, there were some issues and bugs that I had to correct.  Before FC7, I only did clean installs.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;What Happened&lt;/span&gt;&lt;br /&gt;My issues started during the pre-upgrade process.  The updates dialog pops letting me know that FC11 is available.   When clicked, the update process looks at your system and stages what it needs to upgrade. &lt;br /&gt;&lt;br /&gt;During this phase, I got a message saying that the install image would not fit in /boot that that I needed a wired network after reboot to get the image during the upgrade.  I had a wired network so I let it go.&lt;br /&gt;&lt;br /&gt;After reboot, being sure to hit enter when you see the boot countdown (not documented) to get the option for the upgrade boot kernel.&lt;br /&gt;&lt;br /&gt;Once I got into the actual upgrade process, I started getting error messages saying that it could not find packages (RPMs).   That I could reboot or retry.   The dialog said that reboot would mean possible corrption of my system.   Retry, would simply retry (which is stupid).  There was not a third option like, specify new location, data source, or continue anyway.&lt;br /&gt;&lt;br /&gt;What is worse, is that it appeared that the installer was expecting RPMs to be in a different directory then they were in the install image (!!!).  How this is possible, I have no idea since I never specified either.  The update handled the mirror selection and all the behind the scenes work.&lt;br /&gt;&lt;br /&gt;Well, corrupting my server, requiring a rebuild was just not going to happen.  The following are a few thing I did to get through the mess and to a final working system.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Problem - Cannot Find Package to Install&lt;/span&gt;&lt;br /&gt;It is possible that Fedora expected their install to barf so they were kind enough to provide most of the tools needed to correct them.&lt;br /&gt;&lt;br /&gt;&lt;cntrl&gt;&lt;alt&gt;&lt;f2&gt; gives you a prompt.  Here you will save the day.&lt;br /&gt;&lt;cntrl&gt;&lt;alt&gt;&lt;f3&gt; gives you the current console log.  Here you will see what is missing.&lt;br /&gt;&lt;br /&gt;Two main tools that saved the day&lt;br /&gt;&lt;ul&gt;&lt;li&gt;wget&lt;/li&gt;&lt;li&gt;lynx&lt;/li&gt;&lt;/ul&gt;Both are text based and will let you fetch one or many missing files.    lynx will complain since it needs a config.  In /mnt/.../etc (look around) you will find a lynx.cfg and a lynx.lss.  Copy them to /etc/.   wget simply works.&lt;br /&gt;&lt;br /&gt;Next thing you will need is a good working mirror.  You will need to visit the fedoraproject site for that to find one.  Each system will be different so you wil need to look at the console log to see where it is expecting to find the RPMs.  Once you can see that (i.e. file:///mnt/system/...) you can cd to that directory and fetch each missing file one by one as you see the errors.&lt;br /&gt;&lt;br /&gt;This job actually sucks since a missing gnome-libs problably means that gnome-libs-devel will be needed later.  To get around this, I worked in broad strokes.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I fetch a list of all the files using wget from the mirror site.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I washed the "packages.html" file through cut and awk to get a list of only the rpm files&lt;/li&gt;&lt;li&gt;This list of files was then washed through awk a second time to pre-pend wget http://..../file.rpm.  &lt;/li&gt;&lt;li&gt;This was then redirected into a text file for later use&lt;/li&gt;&lt;/ol&gt;When an error would pop up.  For example gnome-libs.  I would simple run the following from the prompt:&lt;br /&gt;&lt;br /&gt;   cat packages_wget.txt |grep gnome-libs |sh&lt;br /&gt;&lt;br /&gt;Now the file (or any file with gnome-libs in it) will get fetched.  This does not mean that it will get automatically installed but will be available for the installer.&lt;br /&gt;&lt;br /&gt;I did this for all missing files.  Later during the upgrade phase, there were more errors, so I followed the same approach.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;I now what your are thinking&lt;/span&gt;&lt;br /&gt;Why didn't I stop the install and download a DVD?  I thought about that, however, the error messages dialog warned about corruption to the system and it was not clear how many files were actually missing.  I might have been on my "last one".  Once I got the above approach working, it went pretty fast.  It was just an unforgiveable waste of time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Hurray, the system upgrade is done.  Reboot and Run Updates&lt;/span&gt;...&lt;span style="font-style: italic;"&gt;!!!..&lt;span style="font-weight: bold;"&gt;Grumble&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Finally, the upgrade completed.  I rebooted the system and prepared for doing a yum update.  This should be cut and dry now.... right?  Nope.  Aparently, there are several pre-release packages that were included in something the system was upgrading.    Others had errors.&lt;br /&gt;&lt;br /&gt;dhcp and cyrus-imap had a refernce to an openssl library that had an incorrect symlink.  Looking at the error and correcting the symlink did the trick.&lt;br /&gt;&lt;br /&gt;In a nutshell, yum update tried to upgrade a packages that does not exist on any mirror or even on the fedora site.   Unless you know the full dependancy tree  within the 631 updates, it is hard to turn off the ones in questions.   For this reason, I had to upgrade in small batches until I found the packages that had the dependancies to the other packages that didn't exist.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Final Thoughts&lt;/span&gt;&lt;br /&gt;I don't think I can stomach another Fedora upgrade.   Will this happen to you?  I am not sure.   There could have been many reasons for my hardship, however, I have been using Fedora/Redhat for at least 10 years so I now the ins and outs.  Install is not a strong point.  It is flexible and easy to manage once running however.  It is my (current) choice for a server OS.&lt;br /&gt;&lt;br /&gt;My thought to you is: if the installer tells you that you do not have room on your /boot partition, cancel and walk away.  I have a feeling that a DVD install would have gone better.  A clean install would be best.&lt;br /&gt;&lt;br /&gt;I just wish they could make it work like Ubuntu.  That distro is great for package management.  They just tend to be slower on updates (i.e. Java).  &lt;br /&gt;&lt;br /&gt;I will try to add more details about specific commands and syntax.  My main goal here was to put information out, in the event, that other of you have run into the same issues.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Update 2009-Sept&lt;/span&gt;&lt;br /&gt;Since my painful upgrade, the updates have been flowing just fine.  My system has been running  pretty well.  &lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/f3&gt;&lt;/alt&gt;&lt;/cntrl&gt;&lt;/f2&gt;&lt;/alt&gt;&lt;/cntrl&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-8596939539809177121?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/8596939539809177121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=8596939539809177121' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/8596939539809177121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/8596939539809177121'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2009/07/fedora-11-upgrade-from-fedora-10-not.html' title='Fedora 11 - Upgrade from Fedora 10... not good... not good at all'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-2755274280437544264</id><published>2009-06-29T23:15:00.003-04:00</published><updated>2009-06-29T23:32:41.792-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Netbeans 6.7 Is Here</title><content type='html'>Today I downloaded and installed &lt;a href="http://www.netbeans.org/downloads"&gt;Netbeans 6.7&lt;/a&gt;.   My first impressions are very good.  The performance seems better and I really like what was done for unit testing.&lt;br /&gt;&lt;br /&gt;I have used it under Windows and Linux.  Thanks Netbeans team!!  Another great version delivered right on time.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-2755274280437544264?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/2755274280437544264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=2755274280437544264' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/2755274280437544264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/2755274280437544264'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2009/06/netbeans-67-is-here.html' title='Netbeans 6.7 Is Here'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-1437236758661726357</id><published>2009-06-23T22:17:00.011-04:00</published><updated>2009-06-27T22:37:46.337-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL'/><category scheme='http://www.blogger.com/atom/ns#' term='PYTHON'/><title type='text'>HOWTO: Install Python Soap Libraries ZSI + SOAPpy + PyXML Under (of all things) Windows XP</title><content type='html'>&lt;span style="font-style: italic; font-weight: bold;"&gt;Overview&lt;/span&gt;&lt;br /&gt;I recently needed do some simple scripting using Python under Windows.  The main goal was to test some web service calls (via SOAP).  Python lets you put something like this together pretty quickly.  Including WSDL processing, business logic, and unit testing.&lt;br /&gt;&lt;br /&gt;Adding a SOAP library (ZSI+SOAPpy in this case) under linux (ubuntu or fedora) is also simple since you just install a package from a repo.  However, I found that setting is up under Windows to be more of a pain.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Problem&lt;/span&gt;&lt;br /&gt;Get &lt;a href="http://pywebsvcs.sourceforge.net/zsi.html"&gt;ZSI&lt;/a&gt;, &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=26590&amp;amp;package_id=18246"&gt;SOAPpy&lt;/a&gt;, &lt;a href="http://pypi.python.org/pypi/fpconst/0.7.2"&gt;fpconst&lt;/a&gt;, and &lt;a href="http://pyxml.sourceforge.net/topics/"&gt;PyXML&lt;/a&gt; setup for use in SOAP programming under Python 2.6.&lt;br /&gt;&lt;br /&gt;The main issue is that one of the dependancies, PyXML, does not have a package for versions of Python &gt; 2.4.  This means that it will need to be manually built.  The typical setup.py usually does the trick but for PyXML a C module was also included as part of the distro.  Compiling modules under Windows requires an open source compiler or Visual Studio 2008.   For me, neither are an option.  Man I wish I could just use linux :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Lets Begin&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;After you fetch the packages through the &lt;a href="http://www.python.org/"&gt;Python Website&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Install fpconst&lt;/span&gt;&lt;br /&gt;This, I think, is needed by SOAPpy.   Fetch fpconst-0.7.2.tar.gz&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Under Windows I use WinRAR to extract the setup/temp folder&lt;/li&gt;&lt;li&gt;run: python setup.py build&lt;/li&gt;&lt;li&gt;run: python setup.py install&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;That is done.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Install PyXML&lt;/span&gt;&lt;br /&gt;PyXML  is required by SOAPpy and possibly ZSI.  The problem you will run into installing it is that there are a few Python extensions that need compiled and unless you have Visual Studio 2008, it will not compile under Python 2.6.&lt;br /&gt;&lt;br /&gt;Fortunatally, I discovered that SOAPpy (or ZSI) don't use these extensions so as long as you don't need it yourself you can install it as follows.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Under Windows I use WinRAR to extract the setup/temp folder&lt;/li&gt;&lt;li&gt;run: python setup.py install --force -skip-build&lt;/li&gt;&lt;/ol&gt;The &lt;span style="font-style: italic;"&gt;-skip-build&lt;/span&gt; skips the building of the C based extension.  Without this parameter you will get an error under windows as it looks for Visual Studio 2008.  If you have Visual Studio 2008, you are probably not reading this blog and had no issues installing PyXML :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Installing SOAPpy&lt;/span&gt;&lt;br /&gt;With PyXML installed, the hard part is over.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Unzip SOAPpy-0.12.0.zip to a setup/temp folder&lt;/li&gt;&lt;li&gt;run: python setup.py build&lt;/li&gt;&lt;li&gt;run: python setup.py install&lt;/li&gt;&lt;/ol&gt;That is done.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Install ZSI&lt;/span&gt;&lt;br /&gt;Now the dependencies are install, ZSI can be installed.  This is what you will use for all your SOAP calls.  It is pretty well documented and fairly easy to use.  The approach is similar to how it is handled in Java or .NET.  Install is simple&lt;br /&gt;&lt;ol&gt;&lt;li&gt;WinRAR ZSI-2.0.tar.gz to a setup/temp folder&lt;/li&gt;&lt;li&gt;run: python setup.py build&lt;/li&gt;&lt;li&gt;run: python setup.py install&lt;/li&gt;&lt;/ol&gt;That is done&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Does it work?&lt;/span&gt;&lt;br /&gt;To test, you will first need to process your web service WSDL file into something Python can work with. The approach is similar to what is done when you add a web service reference in .NET or JAVA.  This this case, you use a simple command line utility called wsdl2py.  On my windows computer, it is found in C:\Python26\Scripts\   You should find it in a similar place.  Assuming that you do not have this script in the path and have not been clever enough to make a batch file, you can run it as follows.  CD to the directory where you want your PY files created by the utility to go.&lt;br /&gt;&lt;br /&gt;python C:\Python26\Scripts\wsdl2py -bu http://moneycow.sandwich.lan:8888/moneyfinder.asmx?WSDL&lt;br /&gt;&lt;br /&gt;There are more parameters, but this command will get you what you need.  You may see a few deprecation warnings but they don't hurt anything.  In the end, you will get two files.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;*_services.py&lt;/li&gt;&lt;li&gt;*_services_types.py&lt;/li&gt;&lt;/ul&gt;Or similar.  Read the ZSI docs on how to use them.  I will try to post a blog soon with an example.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Unknowns&lt;/span&gt;&lt;br /&gt;I have not figured out how to get SSL to work with ZSI.  If any of you have figured this out, please post me a message.  I would love to hear about it.  It is not an issue for me now since none of the services I need to consume are Internet exposed.   If I get stuck and need to access one, I will just use Java or .NET ;-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;If you have to use Windows and need to do Web Services with Python 2.6, the above steps should get you setup and ready to role.  Once you are setup and get your first basic program working, you will find that Python does a good job and the performance is just fine.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-1437236758661726357?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/1437236758661726357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=1437236758661726357' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/1437236758661726357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/1437236758661726357'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2009/06/howto-setup-zsi-soappy-pyxml-under-of.html' title='HOWTO: Install Python Soap Libraries ZSI + SOAPpy + PyXML Under (of all things) Windows XP'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-1768711132505909607</id><published>2009-05-31T01:09:00.003-04:00</published><updated>2009-05-31T01:22:48.908-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='SUBVERSION'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Subversion - Checking out a Project</title><content type='html'>&lt;span style="font-weight: bold; font-style: italic;"&gt;Overview&lt;/span&gt;&lt;br /&gt;When it is time to get work done, code will need to be checked out.   The main steps to checkout code that was&lt;a href="http://stoken-tips-and-tricks.blogspot.com/2009/05/subversion-importing-new-project.html"&gt; imported as described in a previous&lt;/a&gt; post is as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Create a workspace folder for your project&lt;/li&gt;&lt;li&gt;Change directory into that folder&lt;/li&gt;&lt;li&gt;Checkout code from the trunk (or tag or even branch) into the current directory.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Procedure&lt;/span&gt;&lt;br /&gt;The following steps will checkout the sqlbuilder project that is part of the perl repo into my local filesystem's sqlbuilder folder.&lt;br /&gt;&lt;br /&gt;Create new folder called sqlbuilder.  My code is targeted to be on my local file system in a base directory of ~/work/perl/sqlbuilder&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;cd ~/work/perl/&lt;br /&gt;mkdir sqlbuilder&lt;br /&gt;cd sqlbuilder&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;svn checkout https://www.inhouse.stoken.net/repos/perl/sqlbuilder/trunk/ ./&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Now your code is in a subversion managed folder.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Tagging Current Trunk&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;Tagging is a common practice in which you create  a snapshot of your code as it stood in time or within a version.  In this example, the sqlbuilder code needs to be tagged.  The tagged version will be stored in the repo within a 20090528 folder.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;svn -m 'tagging first release' copy https://www.inhouse.stoken.net/repos/perl/sqlbuilder/trunk/ https://www.inhouse.stoken.net/repos/perl/sqlbuilder/tags/20090528&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Use a browser to view trunk and tag using the above URLs.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Final Thoughts&lt;/span&gt;&lt;br /&gt;The process of checking out a tagged version is the same as for a trunk version, just ensure that the URL path is correct and it will work.&lt;br /&gt;&lt;br /&gt;I personally tag frequently in Subversion since Subversion does it pretty efficiently.  Your thoughts may vary on this.&lt;br /&gt;&lt;br /&gt;This concludes the series on basic Subversion usage.  When I have time, I will post something on Subversion + Netbeans.  Netbeans handles Subversion very well but there are few small details that may help.  I will post them soon.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-1768711132505909607?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/1768711132505909607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=1768711132505909607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/1768711132505909607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/1768711132505909607'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2009/05/subversion-checking-out-project.html' title='Subversion - Checking out a Project'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-1782797843847689959</id><published>2009-05-31T00:51:00.005-04:00</published><updated>2009-11-07T15:45:20.475-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='SUBVERSION'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Subversion - Importing a new Project</title><content type='html'>&lt;span style="font-weight: bold; font-style: italic;"&gt;Overview&lt;/span&gt;&lt;br /&gt;Once a &lt;a href="http://stoken-tips-and-tricks.blogspot.com/2009/05/subversion-adding-new-repo.html"&gt;repo has been created&lt;/a&gt;, it is time to import your code.  This has only a few main steps.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Create a base directory within the repo with the project name&lt;/li&gt;&lt;li&gt;Build the standard subversion project tree (tags, branches, trunk)&lt;/li&gt;&lt;li&gt;Import code into trunk&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Procedure&lt;/span&gt;&lt;br /&gt;In this example, I have created a simple helper project called &lt;span style="font-style: italic;"&gt;sqlbuider&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;As described above, the first step is to create the base directory within the repo.&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;svn mkdir -m 'adding new project area' https://www.inhouse.stoken.net/repos/perl/sqlbuilder&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Next, the standard subversion directory tree needs to be created.&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;svn mkdir -m 'adding new project area' https://www.inhouse.stoken.net/repos/perl/sqlbuilder/branches&lt;br /&gt;svn mkdir -m 'adding new project area' https://www.inhouse.stoken.net/repos/perl/sqlbuilder/tags&lt;br /&gt;svn mkdir -m 'adding new project area' https://www.inhouse.stoken.net/repos/perl/sqlbuilder/trunk&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you are building your repo as you are reading along, you should be able to point your browser to it and see an empty folder for .../tags .../trunk .../branches&lt;br /&gt;&lt;br /&gt;We are ready for the next step, Import the project.  On the local system, change directory to local project folder (sqlbuilder in my case) and import.  My local source happens to be in ~/work/perl/sqlbuilder.   Subversion doesn't care about the location.  Just that you are sitting &lt;span style="font-weight: bold;"&gt;in &lt;/span&gt;the project folder.  The following will import the project&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;cd ~/work/perl/sqlbuilder&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;svn -m 'inital import' import ./ https://www.inhouse.stoken.net/repos/perl/sqlbuilder/trunk/&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The command says, "using the message of 'initial import', import everything in ./ to https://..../trunk/&lt;br /&gt;&lt;br /&gt;If you refresh your broswer in the trunk folder, you will see code.&lt;br /&gt;&lt;br /&gt;Normally, I will take my local directory (sqlbuilder in my case) and rename it to something like sqlbuilder_pre_svn or sqlbuilder_old.&lt;br /&gt;&lt;br /&gt;This process can be followed for multiple projects within the same repo.  Just create the directory structure and then import your code into it.&lt;br /&gt;&lt;br /&gt;When you are ready to work on the project, you will want to create a new sqlbuilder folder and checkout the https://..../trunk/ code into it.   That will be described in my next post.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Final Thoughts&lt;/span&gt;&lt;br /&gt;Why not import the folder sqlbuilder?  Why import just the contents of the folder into trunk? The main reason is that it simplifies situations where you may have one or many versions of the same project checked out.  Now you can checkout a trunk or tag version into whatever directory you want.   It makes things easier to deal with.  The only thing to remember is to check out after you create a local workspace folder before checking out into it.&lt;br /&gt;&lt;br /&gt;The next post will describe &lt;a href="http://stoken-tips-and-tricks.blogspot.com/2009/05/subversion-checking-out-project.html"&gt;howto check out and tag code&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-1782797843847689959?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/1782797843847689959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=1782797843847689959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/1782797843847689959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/1782797843847689959'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2009/05/subversion-importing-new-project.html' title='Subversion - Importing a new Project'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-4925806484915691716</id><published>2009-05-31T00:21:00.004-04:00</published><updated>2009-11-07T15:44:13.349-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='SUBVERSION'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Subversion - Adding a new Repo</title><content type='html'>&lt;span style="font-weight: bold; font-style: italic;"&gt;Overview&lt;/span&gt;&lt;br /&gt;Based on my previous post, you should now have a &lt;a href="http://stoken-tips-and-tricks.blogspot.com/2009/05/setting-up-subversoin-quick-reference.html"&gt;working and configured Subversion&lt;/a&gt; environment.  Most of the work was done in Apache.&lt;br /&gt;&lt;br /&gt;Now a repo is needed to store all related projects.   Subversion is pretty flexible here.  You can create a repo per project, on single repo for everything, or do what I do.  Create a repo per language you work in.  For example:&lt;br /&gt;&lt;ul&gt;&lt;li style="font-family: courier new;"&gt;/opt/intranet/svn/python/&lt;/li&gt;&lt;li style="font-family: courier new;"&gt;/opt/intranet/svn/ruby/&lt;/li&gt;&lt;li style="font-family: courier new;"&gt;/opt/intranet/svn/java/&lt;/li&gt;&lt;li style="font-family: courier new;"&gt;/opt/intranet/svn/php/&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; The amount of repos is up to you.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Procedure&lt;/span&gt;&lt;br /&gt;For this example, I am adding a new repo for my perl code projects.  All my repos are stored in &lt;span style="font-family:courier new;"&gt;/opt/intranet/svn/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to create a new repo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;• cd /opt/intranet/svn&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;• svnadmin create perl&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;• chown -R apache:apache perl/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Within each repo, one or many projects.  The following shows how to prepare and import files into a new project.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Final Thoughts&lt;/span&gt;&lt;br /&gt;With this repo created, &lt;a href="http://stoken-tips-and-tricks.blogspot.com/2009/05/subversion-importing-new-project.html"&gt;new projects can be added&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-4925806484915691716?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/4925806484915691716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=4925806484915691716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/4925806484915691716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/4925806484915691716'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2009/05/subversion-adding-new-repo.html' title='Subversion - Adding a new Repo'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-120181017500818296</id><published>2009-05-30T23:35:00.008-04:00</published><updated>2009-11-07T15:41:24.853-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='SUBVERSION'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Subversion - Setting up Apache and Users</title><content type='html'>&lt;span style="font-style: italic; font-weight: bold;"&gt;Overview&lt;/span&gt;&lt;br /&gt;Subversion is a fantastic source control system.  Not only is it pretty easy to setup and use but it also integrates with a vast list of IDEs.&lt;br /&gt;&lt;br /&gt;This post describes how to setup the base environment for Subversion.   This consists of:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Apache Configuration&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Apache Web Server User&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Other posts will cover adding repos.&lt;br /&gt;&lt;br /&gt;My environment:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Internal access only&lt;/li&gt;&lt;li&gt;linux/Unix environment&lt;/li&gt;&lt;li&gt;Apache + Subversion&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Configuring Apache With Subversion&lt;/span&gt;&lt;br /&gt;When you install Subversion, there will be a default &lt;span style="font-family:courier new;"&gt;subversion.conf&lt;/span&gt; file setup (most likely) in &lt;span style="font-family:courier new;"&gt;/etc/httpd/conf.d/&lt;/span&gt; for Apache&lt;br /&gt;&lt;br /&gt;Within the environment I use, the following file system structure is used:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;/opt/intranet/svn&lt;/span&gt; - Main area for subversion repos.  Local file system.&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;/repos&lt;/span&gt; - Apache reference to Parent Path&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;/opt/intranet/svn/users.passwd&lt;/span&gt; - Location of subversion user/password file for any/all repos.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;What to modify in your &lt;span style="font-family:courier new;"&gt;/etc/httpd/conf.d/subversion.conf&lt;/span&gt; to get it to work like the one described below.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# START OF CONFIG&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;Location /repos&amp;gt;&lt;br /&gt;  DAV svn&lt;br /&gt;  SVNParentPath /opt/intranet/svn&lt;br /&gt;&lt;br /&gt;  # Limit write permission to list of valid users.&lt;br /&gt;  &amp;lt;LimitExcept GET PROPFIND OPTIONS REPORT&amp;gt;&lt;br /&gt;     # Require SSL connection for password protection.&lt;br /&gt;&lt;br /&gt;     SSLRequireSSL&lt;br /&gt;     AuthType Basic&lt;br /&gt;     AuthName "StoKen Software Subversion"&lt;br /&gt;     AuthUserFile /opt/intranet/svn/users.passwd&lt;br /&gt;     Require valid-user&lt;br /&gt;  &amp;lt;/LimitExcept&amp;gt;&lt;br /&gt;&amp;lt;/Location&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;# END OF CONFIG&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Adding a Subversion User&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# htpasswd -c /opt/intranet/svn/users.passwd thawk&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;New password: mypassword&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Re-type new password: mypassword&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Adding password for user thawk&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Final Thoughts&lt;/span&gt;&lt;br /&gt;With this step complete, subversion is ready but will not do anything interesting until you add some repos.  &lt;a href="http://stoken-tips-and-tricks.blogspot.com/2009/05/subversion-adding-new-repo.html"&gt;But that is another post&lt;/a&gt;...&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-120181017500818296?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/120181017500818296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=120181017500818296' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/120181017500818296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/120181017500818296'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2009/05/setting-up-subversoin-quick-reference.html' title='Subversion - Setting up Apache and Users'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-5145379016796958987</id><published>2009-05-30T23:23:00.001-04:00</published><updated>2009-05-30T23:28:53.959-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='POLL'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>POLL: What Persistance Engine Do you Use? (Results)</title><content type='html'>&lt;ul&gt;&lt;li&gt;50% Java Persistence API&lt;/li&gt;&lt;li&gt;37% Hibernate (Java)&lt;/li&gt;&lt;li&gt;25% NHibernate (.NET)&lt;/li&gt;&lt;li&gt;0% LINQ (.NET)  0 (0%)&lt;/li&gt;&lt;li&gt;12% ActiveRecord (Ruby)&lt;/li&gt;&lt;li&gt;12% Other&lt;/li&gt;&lt;/ul&gt;Poll closed 04/02/2009&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-5145379016796958987?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/5145379016796958987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=5145379016796958987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/5145379016796958987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/5145379016796958987'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2009/05/poll-what-persistance-engine-do-you-use.html' title='POLL: What Persistance Engine Do you Use? (Results)'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-3353357566219263267</id><published>2009-05-30T23:21:00.000-04:00</published><updated>2009-05-30T23:23:29.838-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='POLL'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>POLL: What JAVA Do you use? (Results)</title><content type='html'>This was not much of a surprise.  SUN Java is the way to go.  I just hope Oracle continues the to support JAVA like SUN did.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;90% SUN Java (linux/Windows)&lt;/li&gt;&lt;li&gt;5% OpenJDK&lt;/li&gt;&lt;li&gt;0% SUN Java (OSX)&lt;/li&gt;&lt;li&gt;5% IcedTea (linux)&lt;/li&gt;&lt;/ul&gt;Poll Close 04/24/2009&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-3353357566219263267?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/3353357566219263267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=3353357566219263267' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/3353357566219263267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/3353357566219263267'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2009/05/poll-what-java-do-you-use-results.html' title='POLL: What JAVA Do you use? (Results)'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-8629797680062866514</id><published>2008-11-18T15:47:00.004-05:00</published><updated>2008-11-18T15:51:49.160-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='POLL'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>POLL: What Languages do you code in? (Results)</title><content type='html'>It doesn't come as much surprise how many Java programmers are out there.  I am also happy to see so many Ruby developers.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;89% Java&lt;/li&gt;&lt;li&gt;36% C/C++&lt;/li&gt;&lt;li&gt;24% C#&lt;/li&gt;&lt;li&gt;16% Perl&lt;/li&gt;&lt;li&gt;14% Ruby&lt;/li&gt;&lt;li&gt;12% Python&lt;/li&gt;&lt;li&gt;8% Assembler&lt;/li&gt;&lt;li&gt;4% VB&lt;/li&gt;&lt;li&gt;0% Objective-C&lt;/li&gt;&lt;li&gt;0% ADA&lt;/li&gt;&lt;li&gt;0% COBOL&lt;/li&gt;&lt;li&gt;0% LISP&lt;/li&gt;&lt;/ul&gt;Poll closed 11/09/2008&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-8629797680062866514?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/8629797680062866514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=8629797680062866514' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/8629797680062866514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/8629797680062866514'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2008/11/poll-what-languages-do-you-code-in.html' title='POLL: What Languages do you code in? (Results)'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-5132014716714029330</id><published>2008-10-17T17:02:00.002-04:00</published><updated>2008-10-17T17:06:07.698-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='POLL'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>POLL: What build system do you use? (Results)</title><content type='html'>I am pretty surprised how many people use Maven.  I am hoping to get it to work better for Swing apps then it does. &lt;br /&gt;&lt;ul&gt;&lt;li&gt;75% Ant&lt;/li&gt;&lt;li&gt;25% Maven&lt;/li&gt;&lt;li&gt;25% Other&lt;/li&gt;&lt;li&gt;16% make/imake/nmake&lt;/li&gt;&lt;/ul&gt;Poll closed October 9, 2008&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-5132014716714029330?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/5132014716714029330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=5132014716714029330' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/5132014716714029330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/5132014716714029330'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2008/10/poll-what-build-system-do-you-use.html' title='POLL: What build system do you use? (Results)'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-7119472433078373389</id><published>2008-10-17T16:51:00.001-04:00</published><updated>2008-10-17T16:54:33.874-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='POLL'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>POLL: What OS do you develop JAVA on? (Results)</title><content type='html'>Ubuntu is really getting up there in Java Developers.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;34%    Windows XP&lt;/li&gt;&lt;li&gt;27%    Linux (Ubuntu)&lt;/li&gt;&lt;li&gt;27%    OSX 10.5&lt;/li&gt;&lt;li&gt;10%    Linux (Fedora)&lt;/li&gt;&lt;li&gt;10%    Linux (SUSE)&lt;/li&gt;&lt;li&gt;10%    Linux&lt;/li&gt;&lt;li&gt;13%    Windows Vista&lt;/li&gt;&lt;li&gt;06%    Other&lt;/li&gt;&lt;li&gt;00%    OSX 10.x&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Poll closed June 28, 2008&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-7119472433078373389?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/7119472433078373389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=7119472433078373389' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7119472433078373389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7119472433078373389'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2008/10/poll-what-os-do-you-develop-java-on.html' title='POLL: What OS do you develop JAVA on? (Results)'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-2347991603593952749</id><published>2008-10-17T16:44:00.005-04:00</published><updated>2008-10-17T17:14:05.483-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='POLL'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>POLL: What Version of Netbeans do you use? (Results)</title><content type='html'>Here are the results from our poll of Netbeans version used.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;73% 6.0&lt;/li&gt;&lt;li&gt;19% I don't use Netbeans&lt;/li&gt;&lt;li&gt;14% 5.5/5.5.1&lt;/li&gt;&lt;li&gt;03% 5.0&lt;/li&gt;&lt;li&gt;01% 4.x&lt;/li&gt;&lt;/ul&gt;Poll closed March 31 2008&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-2347991603593952749?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/2347991603593952749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=2347991603593952749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/2347991603593952749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/2347991603593952749'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2008/10/poll-what-version-of-netbeans-do-you.html' title='POLL: What Version of Netbeans do you use? (Results)'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-6902977542976289454</id><published>2008-10-17T16:33:00.007-04:00</published><updated>2008-10-17T17:14:23.437-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='POLL'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>POLL: Standard Projects you work on? (Results)</title><content type='html'>Of all the developers working on projects, the following gives a breakdown.  Note that users could vote on more then one type so the total will be greater then 100%&lt;br /&gt;&lt;ul&gt;&lt;li&gt;70% Swing/GUI&lt;/li&gt;&lt;li&gt;40% WEB/JSP&lt;/li&gt;&lt;li&gt;40% Console&lt;/li&gt;&lt;li&gt;30% Mobile Devices&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-6902977542976289454?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/6902977542976289454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=6902977542976289454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/6902977542976289454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/6902977542976289454'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2008/10/poll-standard-projects-you-work-on.html' title='POLL: Standard Projects you work on? (Results)'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-2098800145625076061</id><published>2008-04-28T23:11:00.005-04:00</published><updated>2008-05-21T10:37:16.007-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Netbeans 6.1</title><content type='html'>I install &lt;a href="http://download.netbeans.org/netbeans/6.1/final/"&gt;Netbeans 6.1&lt;/a&gt; today and it delivers all expected.   A few points, then I want to get back to playing...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It starts faster&lt;/li&gt;&lt;li&gt;It runs faster&lt;/li&gt;&lt;li&gt;It looks clean&lt;/li&gt;&lt;li&gt;It has improved code complete&lt;/li&gt;&lt;li&gt;....&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;These are my first impressions.   The impression I have with 6.1 is better then my first impression with 6.0.  Netbeans 6.0 was a big revision of the entire platform.   You can feel all the work that was put into Netbeans 6.1 to improve the base that was started in 6.0.   I am currently running it on my little travel Thinkpad T30 and it is running great.  I completely give this my thumbs up.&lt;br /&gt;&lt;br /&gt;I am very happy.   Well back to it.&lt;br /&gt;&lt;br /&gt;UPDATE: I have been using Netbeans 6.1 for about a month.  Several weeks ago, I switch to Ubuntu Linux 8.04 too.  Both are working very very well.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-2098800145625076061?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/2098800145625076061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=2098800145625076061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/2098800145625076061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/2098800145625076061'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2008/04/netbeans-61.html' title='Netbeans 6.1'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-2590796991560617959</id><published>2008-02-27T12:25:00.003-05:00</published><updated>2008-02-27T12:33:51.260-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='WEBSERVICE'/><category scheme='http://www.blogger.com/atom/ns#' term='SWING'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>HOWTO:  create data aware applications in NetBeans 6.0</title><content type='html'>Roumen Strobl created a very clear and easy to follow flash demo describing how to create data aware applications using NetBeans 6.0.   In the demo, Roumen covers 3 topics:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Process for connecting to a MySQL database&lt;/li&gt;&lt;li&gt;Steps to create a "data aware" Swing Application that talks to MySQL&lt;/li&gt;&lt;li&gt;Steps to create a REST based web service for accessing the same database&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;You can view Romen's Weblog &lt;a href="http://blogs.sun.com/roumen/entry/new_demo_netbeans_mysql"&gt;here&lt;/a&gt; and a direct link to the demo &lt;a href="http://www.netbeans.org/download/flash/netbeans_61/mysql_demo/mysql_demo.html"&gt;here&lt;/a&gt;.  The entire demo is under 8 minutes so grab a coffee and enjoy. &lt;br /&gt;&lt;br /&gt;Somewhere on this page you will find a link to Roumen's weblog.  It is on my "bookmark me" list.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-2590796991560617959?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/2590796991560617959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=2590796991560617959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/2590796991560617959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/2590796991560617959'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2008/02/howto-create-data-aware-applications-in.html' title='HOWTO:  create data aware applications in NetBeans 6.0'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-1159988936258979073</id><published>2008-02-24T01:56:00.005-05:00</published><updated>2008-02-24T02:31:43.551-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><category scheme='http://www.blogger.com/atom/ns#' term='WORKAROUND'/><title type='text'>SOLUTION: Web Service Testing in Netbeans 6.0.1 gets ClassNotFound Exception</title><content type='html'>&lt;span style="font-style: italic; font-weight: bold;"&gt;Overview&lt;/span&gt;&lt;br /&gt;Recently, I have been working on creating some web services using NetBeans 6.0/6.0.1.  I have done this before and I wasn't creating anything to crazy.  I decided to try them out using the new handy &lt;span style="font-style: italic;"&gt;Web Services &lt;/span&gt;feature that is in the &lt;span style="font-style: italic;"&gt;Services&lt;/span&gt; tab of the NetBeans 6.0.1 IDE.  Within this feature, you can add a WSDL file and look at the features available for consumption from the web service.   My favorite aspect of this is that you can right click on any method and test it.  A form opens so you can provide parameters.  Once submitted, results are returned in an object.  This object can be drilled into for more details.&lt;br /&gt;&lt;br /&gt;Using this testing feature, I ran into an odd issue however.    I created a new WS that I wanted to experiment with.  Again, nothing fancy.  When I setup the WS in the NetBeans &lt;span style="font-style: italic;"&gt;Web Services&lt;/span&gt; area, they were added without errors. However, when I tested them, I got a &lt;span style="font-style: italic;"&gt;ClassNotFound&lt;/span&gt; exception.   I looked at everything but got the same results.  I even deployed them on a different server that is running a newer build of Tomcat but got the same results.   I wrote a simple client that consumed the WS and it _did_ work...?  That was not expected.  I looked that the issue from many different angles but could not see an obvious cause.  Then something occurred to me...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Workaround&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;My web service name was all lowercase.  Since a web service can be considered a class so it should start with an upper case character.    This is normally my convention however, this was just a simple experiment.&lt;br /&gt;&lt;br /&gt;Basically, I had something like:&lt;br /&gt;https://www.inhouse.headache.net/timezonews/convertWS?wsdl&lt;br /&gt;&lt;br /&gt;That should have been like:&lt;br /&gt;https://www.inhouse.headache.net/timezonews/ConvertWS?wsdl&lt;br /&gt;&lt;br /&gt;Once I created my Web Service to start with an upper case character, everything worked.  I have not read to see if a web service MUST start with an upper case character.  If anyone knows the answer, please post&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Final Thoughts&lt;/span&gt;&lt;br /&gt;This was an odd issue that I ran into using NetBeans.  I hope anyone out there who runs into the same thing reads this solution before they lose to much time. &lt;br /&gt;&lt;br /&gt;Happy developing using NetBeans.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-1159988936258979073?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/1159988936258979073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=1159988936258979073' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/1159988936258979073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/1159988936258979073'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2008/02/solution-web-service-testing-in.html' title='SOLUTION: Web Service Testing in Netbeans 6.0.1 gets ClassNotFound Exception'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-8833375113259710851</id><published>2008-01-07T10:49:00.001-05:00</published><updated>2008-10-17T16:44:03.363-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='POLL'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>POLL: What is your favorite IDE (Results)</title><content type='html'>After several month of polling the favorite IDE results in in.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;65% Netbeans&lt;/li&gt;&lt;li&gt;30% Eclipse&lt;/li&gt;&lt;li&gt;2% Microsoft Visual Studio&lt;/li&gt;&lt;li&gt;2% IBM Visual Age&lt;/li&gt;&lt;/ul&gt;Granted, many of my blog entries are tagged with Netbeans but even more are tagged with Java.  For this reason, the results should be taken with a grain of salt.  Still, it was nice to see so many people vote.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-8833375113259710851?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/8833375113259710851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=8833375113259710851' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/8833375113259710851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/8833375113259710851'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2008/01/what-is-your-favorite-ide-poll-results.html' title='POLL: What is your favorite IDE (Results)'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-1560586612566022007</id><published>2007-11-04T21:53:00.000-05:00</published><updated>2007-11-06T21:52:41.346-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='CONFIG'/><category scheme='http://www.blogger.com/atom/ns#' term='FEDORA'/><category scheme='http://www.blogger.com/atom/ns#' term='LINUX'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><title type='text'>HOWTO: setup sshd_config and ssh clients</title><content type='html'>&lt;span style="font-style: italic;"&gt;Overview&lt;/span&gt;&lt;br /&gt;SSH is integral in having a secure network.  I love it and use it everywhere I can.  There are a few things that can be done to make your setup easier to use and a bit more secure.&lt;br /&gt;&lt;br /&gt;This setup was done using Fedora Linux version 3-7.  Since openssh is a common package, this howto can be done one just about anything it runs on.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;Disclaimer&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;I am, nor will I ever consider my self a security expert.   Please ensure you understand these commands before using them.   If you do find a hole or mistake, please leave me a note.   &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;SSHD&lt;/span&gt;&lt;br /&gt;The sshd daemon is the core to SSH.    It is controlled using a config file /etc/ssh/sshd_config  This file has many params. The following are a few that you should consider changing.&lt;br /&gt;&lt;br /&gt;Force all clients to connect using version 2 and not 1.&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Protocol 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Narrow the list of users that can connect.  If your network is small enough, list the users in an AllowUsers directive.&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;AllowGroups users&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;AllowUsers uuklanger smgeller&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;DenyGroups root&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;DenyUsers root&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Lock down as much as you can here.  You would be surprized how many differnt ways hackers try to get in.   By telling sshd to only allow certain groups and users, you may prevent a hacker from getting in via a default account installed by some package you installed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;SSH C&lt;/span&gt;&lt;img src="http://www.blogger.com/post-edit.g?blogID=4003912748989872553&amp;amp;postID=1560586612566022007" style="font-style: italic;" height="1" width="1" /&gt;&lt;span style="font-style: italic;"&gt;lient&lt;/span&gt;&lt;br /&gt;Using ssh is easy.  From a prompt just type &lt;span style="font-style: italic;"&gt;ssh -X rmnp.inhouse.rockynet.com&lt;/span&gt; to login as "you" to a system called rmnp.  -X enabled X windows popping.   If you need to copy a file, you can use the scp command.  For example, &lt;span style="font-style: italic;"&gt;scp file.txt rmnp.inhouse.rockynet.com:/tmp&lt;/span&gt; will copy the file file.txt in to /tmp on the server.&lt;br /&gt;&lt;br /&gt;Once entered, a password prompt will be displayed.   The password you use is the password of your account on the server. In this case, my uuklanger password for rmnp.   Entering passwords is pretty boring.   To get around this, and to increase your security, you can use keys.  In the following example, you will see how to create and setup  a key for user "uuklanger" on the workstation "tree" that will tell "rmnp" to trust your ssh connections.   This assumes that you have never done this before and that the file authorized_keys does not exist.&lt;br /&gt;&lt;br /&gt;On the workstation "tree" do the following as yourself (uuklanger in my case):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;cd ~/.ssh/&lt;/li&gt;&lt;li&gt;ssh-keygen -t rsa -b 2048&lt;br /&gt;&lt;/li&gt;&lt;li&gt;When you get asked for a filename, call it id_rsa&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The rest of the prompts, just hit enter.&lt;/li&gt;&lt;li&gt;You will now have two files generated. id_rsa and id_rsa.pub&lt;/li&gt;&lt;li&gt;scp id_rsa.pub uuklanger@rmnp.inhouse.rockynet.com:.ssh/authorized_keys&lt;/li&gt;&lt;/ol&gt;Done.. Now if you ssh to the server, you will be let right in.  In step #6, if it fails, it is possible that you do not have a .ssh directory on the server.  If that is the case, connect to the server and then ssh back to your workstation.  SSH will create the .ssh directory for with the correct permissions.   You can do this manually too.&lt;br /&gt;&lt;br /&gt;For step #6, if you already have an authorized_keys file on the server, you will want to transfer id_rsa.pub to the server and then append it to authorized_keys.  Otherwise, your file will be overwritten.&lt;br /&gt;&lt;br /&gt;Now try to ssh -X rmnp.inhouse.rockynet.com and enjoy the direct access without the pesky password prompt.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Final Thoughts&lt;/span&gt;&lt;br /&gt;These steps will help lock down ssh a bit more the the default.   If you want to lock it down more, you can turn off passwords all together and rely on keys only.   This can be done in the sshd_config file.  See the openssh documentation for the steps on how to do this.  This is just getting it going.  There are tons of cool things that SSH can do on top of the settings done here.  There are lots of tricks out there.  Enjoy.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-1560586612566022007?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/1560586612566022007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=1560586612566022007' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/1560586612566022007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/1560586612566022007'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/11/howto-setup-sshdconfig-and-ssh-clients.html' title='HOWTO: setup sshd_config and ssh clients'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-461203906995403448</id><published>2007-11-01T16:31:00.000-04:00</published><updated>2007-11-01T16:35:35.543-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='SUN'/><title type='text'>Net App should brace for impact</title><content type='html'>Jonathan Schwartz's blog is kind of interesting today.  I have always like &lt;a href="http://www.sun.com"&gt;SUN &lt;/a&gt;and &lt;a href="http://blogs.sun.com/jonathan/entry/harvesting_from_a_troll"&gt;this blog&lt;/a&gt; is one reason why.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-461203906995403448?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/461203906995403448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=461203906995403448' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/461203906995403448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/461203906995403448'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/11/net-app-should-brace-for-impact.html' title='Net App should brace for impact'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-7630978470485671734</id><published>2007-10-29T12:09:00.000-04:00</published><updated>2007-11-07T15:57:56.179-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MAC OSX'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Apple - When will OS X Leopard have JAVA 6</title><content type='html'>When I first started reading about &lt;a href="http://www.apple.com/"&gt;leopard&lt;/a&gt;, the new iMAC became the iDrool in my eyes.  Everything looked to be there.  I was itching to get a MAC to use along side linux.  Possibly even replace it over time.&lt;br /&gt;&lt;br /&gt;When I found out that JAVA 6 was not included because Apple did not have it ready in time for leopard, I became concerned.   I used to use OS/2 and found that same thing.  I would see a new version of something come out for other operating systems and finally OS/2 month later.  It was just not a priority.  I don't like the idea of MAC becoming the same thing.   MAC should be cutting-edge.   As far as I can see, they are cutting-edge except for this JAVA 6 in leopard issue.&lt;br /&gt;&lt;br /&gt;I personally wish that Apple would:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;address why it was not included via some kind of press release.&lt;/li&gt;&lt;li&gt;tell developers and users where JAVA stands in their vision of OSX.  Is it core to the OS or a "nice to have" toy?&lt;/li&gt;&lt;li&gt;tell us what consumers/developers can expect with future releases.  (delay or availability when it is officially released by SUN).  Are delays going to be a common experience for JAVA developers.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I think this would cool my jets and other too.   Either way, I am now less confident in getting a MAC.  Linux will remain my platform until I get a clearer view.   I know it would drive me crazy using my XP system at work with the latest java, my laptop at home with the latest java but my MAC with one version back.&lt;br /&gt;&lt;br /&gt;13949712720901ForOSX is here because of &lt;a href="http://blogs.sun.com/bblfish/entry/vote_for_java6_on_leopard"&gt;this&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-7630978470485671734?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/7630978470485671734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=7630978470485671734' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7630978470485671734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7630978470485671734'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/10/apple-when-will-os-x-105-have-java-6.html' title='Apple - When will OS X Leopard have JAVA 6'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-5177299807521503928</id><published>2007-10-26T17:38:00.000-04:00</published><updated>2007-11-01T16:45:19.034-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Java Everywhere - SUN Microsystems</title><content type='html'>I found this on &lt;a href="http://net3x.blogspot.com/2007/05/hello-im-rubyonrails-hello-im-java.html"&gt;Igor Minar's blog&lt;/a&gt;.  Not only is this nicely put together but I can buy into it.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/SRLU1bJSLVg&amp;rel=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/SRLU1bJSLVg&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-5177299807521503928?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/5177299807521503928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=5177299807521503928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/5177299807521503928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/5177299807521503928'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/10/sun-java-count-me-in.html' title='Java Everywhere - SUN Microsystems'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-3439487944324821162</id><published>2007-10-05T11:14:00.001-04:00</published><updated>2008-10-07T17:53:42.345-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='CONFIG'/><category scheme='http://www.blogger.com/atom/ns#' term='FEDORA'/><category scheme='http://www.blogger.com/atom/ns#' term='LINUX'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>HOWTO: install/upgrade SUN Java under linux</title><content type='html'>&lt;span style="font-weight: bold; font-style: italic;"&gt;Overview&lt;/span&gt;&lt;br /&gt;For those of us using a flavor of linux that does not come with SUN Java (which is currently most of us), you may have run into a bit of a problem.  Linux distros typically bundle the the GCC GCJ compiler.  Sure, it is probably nice and all but I personally prefer SUN Java.   It is what is installed on most non-linux based computers out there.  It is the standard.&lt;br /&gt;&lt;br /&gt;I, like others out there, have probably tried to remove GCJ from their systems.  Well, it is not easy since everything Java that comes with the distro is bound to it.  Arg!&lt;br /&gt;&lt;br /&gt;The next option is to see if you can get SUN Java and GCJ to co-exist, so you install SUN Java anyway, and run&lt;br /&gt;java -version.  You still see GCJ's version.  Arg!  Why?  because the GCJ's java is in the path.&lt;br /&gt;&lt;br /&gt;You could setup all the path and JAVA_HOME/JAVA_PATH environment variable but, for me, that is just not enough.  I want my environment to just use SUN Java.  Outside of simply having 1 flavor of Java installed, this is the way to go.  Make SUN Java the default Java.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Purpose&lt;/span&gt;&lt;br /&gt;The following will describe the rather simple process for getting SUN Java to be the default Java.  This is being done under Fedora Core 6 and 7 (RPM based), however, the technique should work for other distros.  I am using SUN Java JDK 6 and am upgrading from 6u2 to 6u3.  The process of upgrade or install is the same except for removing the old version :-)   The most important aspect is the steps to follow.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Required Downloads&lt;/span&gt;&lt;br /&gt;The example will be done installing SUN Java JDK 6 Update 3 (6u3) to replace SUN Java JDK 6 Update 2 (6u2).&lt;br /&gt;&lt;ul&gt;&lt;li&gt;download SUN Java&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Site: http://java.sun.com/ &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;I used the RPM based install package called jdk-6u3-linux-i586-rpm.bin&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;download java-1.6.0-sun-compat-1.6.0.xx-1jpp.i586.rpm where xx is your update version (01, 02, 03,..)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Site: http://www.jpackage.org/browser/&lt;/li&gt;&lt;li&gt;In this case, we are trying to download a sun-compat for JDK 1.6.0.03 or 6u3.  That is what I hope to find...&lt;/li&gt;&lt;li&gt;If a version for your JDK is not available, go on to step #3.  This is my case for this example.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;download the source file java-1.6.0-sun-compat-1.6.0.xx-1jpp.src.rpm where xx is the latest available version.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Site: http://www.jpackage.org/browser/&lt;/li&gt;&lt;li&gt;At the time of the writing, 1.6.0.02 was the only sun-compat available which is a version behind 6u3.  This is ok.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Install/Upgrade&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Install SUN JAVA&lt;/li&gt;&lt;ul&gt;&lt;li&gt;command: sh jdk-6u3-linux-i586-rpm.bin&lt;/li&gt;&lt;li&gt;agree to the terms by typing "yes"&lt;/li&gt;&lt;li&gt;You will see it install a bunch of RPMs into /usr/java/ and /opt/sun/&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;If your java 1.6.0-sun-compat RPM version matches your JDK...&lt;/li&gt;&lt;ul&gt;&lt;li&gt;command: rpm -Uvh java-1.6.0-sun-compat-1.6.0.03-1jpp.i586.rpm&lt;/li&gt;&lt;li&gt;you are done&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;If it does not match then install...&lt;/li&gt;&lt;ul&gt;&lt;li&gt;command: rpm -ivh java-1.6.0-sun-compat-1.6.0.02-1jpp.src.rpm&lt;/li&gt;&lt;li&gt;as above, version 02 was the only version availble&lt;/li&gt;&lt;li&gt;you are not done yet.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;If the 2nd bullet passed and your JDK version (6u3 in my case) matches the sun-compat version (1.6.0.03) then you are done and can do any clean-up (see below).  If you type java -version at a prompt, the version number should be as expected.  Otherwise...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Creating your own sun-compat RPM (where sun-compat &lt;&gt; JDK)&lt;/span&gt;&lt;br /&gt;Well, you were eager and could not wait for the jpackage guys to create a java-1.6.0-sun-compat-1.6.0.03-1jpp.i586.rpm for you.  You just want the latest JDK working.  Sound like me.  No problems.  You have already download the source file (java-1.6.0-sun-compat-1.6.0.02-1jpp.src.rpm or similar) so you can make your own.  You have also installed it (3rd bullet above).&lt;br /&gt;&lt;br /&gt;To make your own sun-compat RPM just do the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;cd to /usr/src/redhat/SPECS/ (the source directory may be different on other distros)&lt;/li&gt;&lt;li&gt;edit java-1.6.0-sun-compat.spec using your favorite text editor&lt;/li&gt;&lt;li&gt;At the top of the file you will see &lt;span style="font-style: italic;"&gt;%define buildver        02&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;For this example we want 6u3 so buildver should be changed from "02" to "03".&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Save and close the file.&lt;/li&gt;&lt;li&gt;Make your RPM&lt;/li&gt;&lt;ul&gt;&lt;li&gt;command: rpmbuild -ba java-1.6.0-sun-compat.spec&lt;/li&gt;&lt;li&gt;stuff happens...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Look in /usr/src/redhat/RPMS/i586/ and you will see java-1.6.0-sun-compat-1.6.0.03-1jpp.i586.rpm&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;install it&lt;/li&gt;&lt;ul&gt;&lt;li&gt;command: rpm -Uvh java-1.6.0-sun-compat-1.6.0.03-1jpp.i586.rpm&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;As above, you should be able to run java -version and see (as in my case)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;java version "1.6.0_03"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Java(TM) SE Runtime Environment (build 1.6.0_03-b05)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That is it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Clean-Up After Successfull Install/Upgrade&lt;br /&gt;&lt;/span&gt;Once you are sure everything is using the new version, you can (if desired) rpm -e your old jdk.   Since SUN JDK 6 creates a symlink from the current version as "latest" there isn't much risk of using the old version... I did say "much" risk.  I prefer removing the old once I confirm the new one is safe and stable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Netbeans&lt;/span&gt;&lt;br /&gt;To tell programs like Netbeans (we are all using it after all) to use the new JDK, simply update the JDK version in $NETBEANS_HOME/etc/netbeans.conf where $NETBEANS_HOME is the location of the netbeans install.  That will affect all users of that install globally.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Java WebStart&lt;/span&gt;&lt;br /&gt;I love WebStart, however, for some odd reason, desktop shortcuts created for linux (GNOME) hard code the full path (including version) to the javaws program.  This is stupid since they should really just point to "latest".  Regardless, you can either de-install/re-install the Java WebStart apps, or do the lazy approach and just edit the *.desktop files in your ~/Desktop/ directory.  Just update the JDK version to match the current version.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Final Thoughts&lt;/span&gt;&lt;br /&gt;This may seem like a long process but the steps are basic and easy.  I keep the sun-compat source installed on my system and update the version number each time a new JDK comes out.  I only get a new src and i586 version for new major JDK releases (i.e. JDK 5 to JDK 6).  This makes the update process take a few minutes.  About the same time it takes in Windows to update the PATH of the System Environment.&lt;br /&gt;&lt;br /&gt;I hope these steps help it become easier for you too.  I also hope that this blog become obsolete and that linux distros start bundling real SUN Java by default.  It just the right thing to do.  Some distros are already doing this.  Fedora? Do you hear this? :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;BTW&lt;/span&gt;&lt;br /&gt;For Ubuntu, this may work.  I need to try it.&lt;br /&gt;http://coffeecokeandcode.blogspot.com/2008/09/installing-java-6-update-10-on-ubuntu.html&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-3439487944324821162?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/3439487944324821162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=3439487944324821162' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/3439487944324821162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/3439487944324821162'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/10/howto-installupgrade-sun-java-under.html' title='HOWTO: install/upgrade SUN Java under linux'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-7501129003920192813</id><published>2007-09-18T16:40:00.000-04:00</published><updated>2007-10-12T15:34:25.305-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='JAR'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>HOWTO: setup Java to trust unsigned SSL CERTs</title><content type='html'>&lt;span style="font-style: italic; font-weight: bold;"&gt;Overview&lt;/span&gt;&lt;br /&gt;If you have an application that needs to talk to a web service (or page) that uses SSL, you may get an ugly error the first time you connect.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;sun.security.provider.certpath.SunCertPathBuilderException:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;unable to find valid certification path to requested target.....&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is probably because you have a self-signed CERT.  This is ok and can be dealt with easily following a few simple steps.  Yes the following looks like a lot of steps but I was very verbose.... as usual.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Technique&lt;/span&gt;&lt;br /&gt;There are a few steps you need to follow to get your JAVA application to trust the self-signed CERT.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Export the Site's CERT&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Visit your target URL (web service or whatever) using IE 6.0.  I am not sure how to do this using Firefox.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Doubleclick on the "gold lock" symbol at the bottom of the browser.&lt;/li&gt;&lt;li&gt;You will get a "Certificate" window.  Select the "Details" tab and click "Copy to File...".  A wizard will open&lt;/li&gt;&lt;li&gt;Click "Next" and you will see "Export File Format".   Select "Base-64 encoded X.509 (.CER).  Click "Next"&lt;/li&gt;&lt;li&gt;Select a filename and location.  Click "Next".&lt;/li&gt;&lt;li&gt;Click Finish.  You have now saved the cert.  The file should look like a block of letters and numbers in a text editor.&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-style: italic;"&gt;Load the CERT into a keystore&lt;/span&gt;&lt;br /&gt;There are probably more then one way to do this.    I prefer to use a small application I found called &lt;a href="http://freshmeat.net/projects/portecle/"&gt;portecle&lt;/a&gt;.   In a few clicks you can create a keystore and import a CERT into it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Load the keystore of Trusted CERTs&lt;/span&gt;&lt;br /&gt;My preferred way is to include a properties file within my JAR and then use that to point to an external keystore (JKS) file.&lt;br /&gt;&lt;br /&gt;The following code can be executed at application startup.  Once done, it should work for the life of your application.&lt;br /&gt;&lt;br /&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;Properties defaultProps = new Properties();&lt;br /&gt;InputStream in;&lt;br /&gt;try {&lt;br /&gt;in = ArkaProWSClient.class.getResourceAsStream("/mypackage/cert.properties");&lt;br /&gt;defaultProps.load(in);&lt;br /&gt;in.close();&lt;br /&gt;System.setProperty("javax.net.ssl.trustStore",defaultProps.getProperty("javax.net.ssl.trustStore"));&lt;br /&gt;System.out.println("DEBUG: " + defaultProps.getProperty("javax.net.ssl.trustStore"));&lt;br /&gt;&lt;br /&gt;} catch (Exception ioex) {&lt;br /&gt;ioex.printStackTrace();&lt;br /&gt;} // end-try-catch&lt;/pre&gt;The cert.properties file simply holds the path to the keystore.&lt;br /&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;javax.net.ssl.trustStore=C:\\certs\\trustcert.jks&lt;/pre&gt;This code will&lt;br /&gt;&lt;ol&gt;&lt;li&gt;open the properties file which is located in /mypackage/ within the jar&lt;/li&gt;&lt;li&gt;set javax.net.ssl.trustStore system property to the location of my JKS file.   This value comes from the cert.properties file.&lt;/li&gt;&lt;/ol&gt;Now the error will go away and you should be able to access SSL resources.  Although I have not tested it fully, I am pretty sure you can fill you keystore with more then one cert allowing you to access many resources from the same application.&lt;br /&gt;&lt;br /&gt;Another way to do this is to use an environment variable&lt;br /&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;java -Djavax.net.ssl.trustStore="C:\certs\trustcert.jks" -jar dist\SSLClient.jar&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;Final Thoughts&lt;/span&gt;&lt;br /&gt;This procedure should allow your application to access SSL protected data that is self-signed.  If anyone know how to get the CERT using Firefox, let me know.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-7501129003920192813?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/7501129003920192813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=7501129003920192813' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7501129003920192813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7501129003920192813'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/09/howto-use-java-to-with-unsigned-certs.html' title='HOWTO: setup Java to trust unsigned SSL CERTs'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-9069596468750781556</id><published>2007-07-06T18:17:00.000-04:00</published><updated>2007-10-12T15:43:42.668-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='JAR'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>HOWTO: load a file from a JAR into a String using JAVA</title><content type='html'>&lt;span style="font-style: italic;"&gt;Overview&lt;/span&gt;&lt;br /&gt;In some cases, a SQL creation script may be embedded in a jar.  The following will show how to load this file into a usable object (String) for later passing to JDBC.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Technique&lt;/span&gt;&lt;br /&gt;The idea is simple.  Pass the path to the SQL script following the file structure of the JAR.  In this example, "/derbyfun/sql/create.sql" is the file that is being extracted.&lt;br /&gt;&lt;br /&gt;To get the contents of the file, the resource is opened as a stream and wrapped as a BufferedReader.  The stream is then read, line by line, until end of file.  For each line, the text is appended to a StringBuilder.    At the end of the method, the StringBuilder is turned back into a string where it can be used in a JDBC call.&lt;br /&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;public String getResourceFileAsString(String resourcefilename) {&lt;br /&gt;  final String newline = System.getProperty("line.separator");&lt;br /&gt;  String line = null;&lt;br /&gt;  URL url = null;&lt;br /&gt;  BufferedReader b = null;&lt;br /&gt;  StringBuilder sb = new StringBuilder();&lt;br /&gt;  int i = 0;&lt;br /&gt;   &lt;br /&gt;  try {&lt;br /&gt;      //&lt;br /&gt;      // open buffered reader&lt;br /&gt;      //&lt;br /&gt;      b = new BufferedReader(&lt;br /&gt;              new InputStreamReader(&lt;br /&gt;                  Main.class.getResourceAsStream(resourcefilename)&lt;br /&gt;              )&lt;br /&gt;          );&lt;br /&gt;    &lt;br /&gt;      //&lt;br /&gt;      // priming read and the loop through rest of file&lt;br /&gt;      //&lt;br /&gt;      line = b.readLine();&lt;br /&gt;      while(line != null) {&lt;br /&gt;          //&lt;br /&gt;          // add the line to the Stirng Builder ensuring&lt;br /&gt;          // the newline is re-added&lt;br /&gt;          //&lt;br /&gt;          sb.append(line + newline);&lt;br /&gt;           //&lt;br /&gt;          // just some debug&lt;br /&gt;          //&lt;br /&gt;          System.out.println("DEBUG: [" + ++i + "] " + line);&lt;br /&gt;       &lt;br /&gt;          //&lt;br /&gt;          // read the next line&lt;br /&gt;          //&lt;br /&gt;          line = b.readLine();&lt;br /&gt;      } // end-while&lt;br /&gt;    &lt;br /&gt;  } catch(Exception ex) {&lt;br /&gt;      ex.printStackTrace();&lt;br /&gt;  } // end-try-catch&lt;br /&gt;   &lt;br /&gt;  return(sb.toString());&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;When the file is ready to be loaded, the following call can be used.  In this example, the output is going to standard out.  The file is in a sub package called sql which is part of "derbyfun".&lt;br /&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;System.out.println(&lt;br /&gt;  getResourceFileAsString("/derbyfun/sql/create.sql")&lt;br /&gt;  );&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Final Thoughts&lt;/span&gt;&lt;br /&gt;This is pretty straight forward code but may come in handy as a cut/paste for someone who does not remember the syntax... like me.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-9069596468750781556?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/9069596468750781556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=9069596468750781556' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/9069596468750781556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/9069596468750781556'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/07/overview-in-some-cases-sql-creation.html' title='HOWTO: load a file from a JAR into a String using JAVA'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-4477131230817891997</id><published>2007-06-29T15:53:00.002-04:00</published><updated>2008-11-19T10:13:54.674-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='SWING'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>HOWTO: add stripes to JList</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Overview&lt;/span&gt;&lt;br /&gt;Swing has one pretty cool thing.  You can customize everything to look anyway you want.  The following will show you a simple but useful trick for adding strips to a swing JList component.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Technique&lt;/span&gt;&lt;br /&gt;The following class can be put right into a project.   You will want to change the package name though.  This is all you need to do the striping.  Towards the bottom, you will see two setBackground(...) calls.  The first is if a row is even and unselected and the other is if the row is even but is selected.  Play with the colors until you find ones you like.  I am not sure I like the ones below actually.&lt;br /&gt;&lt;/span&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;&lt;span style="font-size:100%;"&gt;package jliststriping;&lt;br /&gt;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;import java.awt.*;&lt;br /&gt;&lt;br /&gt;public class StripeRenderer extends DefaultListCellRenderer {&lt;br /&gt; public Component getListCellRendererComponent(JList list,&lt;br /&gt;     Object value, int index, boolean isSelected, boolean cellHasFocus) {&lt;br /&gt;     JLabel label = (JLabel) super.getListCellRendererComponent(&lt;br /&gt;         list,&lt;br /&gt;         value,&lt;br /&gt;         index,&lt;br /&gt;         isSelected,&lt;br /&gt;         cellHasFocus&lt;br /&gt;         );&lt;br /&gt; &lt;br /&gt;     if(index%2 == 0) {&lt;br /&gt;         if(! list.isSelectedIndex(index)) {&lt;br /&gt;             label.setBackground(new Color(230,255,230));&lt;br /&gt;         } else {&lt;br /&gt;             label.setBackground(new Color(255,255,200));            &lt;br /&gt;         } // end-if&lt;br /&gt;     } // end-if&lt;br /&gt; &lt;br /&gt;     return label;&lt;br /&gt; }&lt;br /&gt;} // end-class&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-size:100%;"&gt;Once you have this code in your project, the next step is to plug it into your JList. In &lt;a href="http://www.netbeans.org/"&gt;Netbeans&lt;/a&gt;, you simply:&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Select your JList in Matisse&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;In Properties, look for cellRenderer.  Click on the "..."&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Using "Select Mode" "Form Connector" select "User Code"&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;type &lt;span style="font-style: italic;"&gt;new StripeRenderer()&lt;/span&gt; in the text box.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Click Ok and test it out.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:100%;"&gt;If you don't have &lt;span style="font-style: italic;"&gt;Netbeans&lt;/span&gt;, you can add &lt;span style="font-style: italic;"&gt; jList.setCellRenderer(new StripeRenderer());&lt;/span&gt; in your jList creation code block.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;font-size:100%;" &gt;Final Thoughts&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Adding stripes can make the component easier to read.  This code is cut/paste - able into a Java file for use in any program.  Give it a try.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-4477131230817891997?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/4477131230817891997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=4477131230817891997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/4477131230817891997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/4477131230817891997'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/06/howto-add-strips-to-jlist.html' title='HOWTO: add stripes to JList'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-1153367707800560316</id><published>2007-06-29T15:42:00.000-04:00</published><updated>2007-06-29T16:06:53.663-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='SWING'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>HOWTO: remove multiple items from a JAVA Swing JList</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Overview&lt;/span&gt;&lt;br /&gt;When using the JList, there are times when you want to edit the list of items.  Adding or removing a single item is pretty straight forward, however, there is a trick to removing groups of items from a JList.&lt;br /&gt;&lt;br /&gt;For the following example, there is a simple JList that uses the DefaultListModel.  The JList is setup with a MULTIPLE_INTERVAL selection model.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Technique&lt;/span&gt;&lt;br /&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;DefaultListModel dlm = (DefaultListModel) this.jList.getModel();&lt;br /&gt;   &lt;br /&gt;if(this.jList.getSelectedIndices().length &gt; 0) {&lt;br /&gt;  int[] tmp = this.jList.getSelectedIndices();&lt;br /&gt;  int[] selectedIndices = this.jList.getSelectedIndices();&lt;br /&gt;       &lt;br /&gt;  for (int i = tmp.length-1; i &gt;=0; i--) {&lt;br /&gt;      selectedIndices = this.jList.getSelectedIndices();&lt;br /&gt;      dlm.removeElementAt(selectedIndices[i]);&lt;br /&gt;  } // end-for&lt;br /&gt;} // end-if&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Last Thoughts&lt;/span&gt;&lt;br /&gt;This approach will let you grab any interval from a JList and remove them.    Hopefully SUN will update this component to better handle this in the future.  This will remove the need for a &lt;span style="font-style: italic;"&gt;trick&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-1153367707800560316?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/1153367707800560316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=1153367707800560316' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/1153367707800560316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/1153367707800560316'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/06/howto-remove-multiple-items-from-java.html' title='HOWTO: remove multiple items from a JAVA Swing JList'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-7234546595192433552</id><published>2007-06-29T10:48:00.000-04:00</published><updated>2007-06-29T16:07:20.673-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='SWING'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>HOWTO: properly start a Java Swing Application from main</title><content type='html'>&lt;span style="font-weight: bold; font-style: italic;font-size:100%;" &gt;Overview&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;When starting a JAVA Swing application, is is not always clear on the proper way to fire it up.  If you use Netbeans, it provides you with a nice stub in main for doing this.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Technique&lt;/span&gt;&lt;br /&gt;To start a JAVA Swing application...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;&lt;span style="font-size:100%;"&gt;public static void main(String args[]) {&lt;br /&gt;  java.awt.EventQueue.invokeLater(new Runnable() {&lt;br /&gt;      public void run() {&lt;br /&gt;          UIManager.put("swing.boldMetal", Boolean.FALSE);&lt;br /&gt;          new JListStripingForm().setVisible(true);&lt;br /&gt;      }&lt;br /&gt;  });&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-size:100%;"&gt;The UIManager.put(...) line turns off the BOLD for all menus and such.  I think it makes the program look bad.&lt;br /&gt;&lt;br /&gt;The rest ensures that the application starts on the correct thread and makes the application visible.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Final Thoughts&lt;/span&gt;&lt;br /&gt;This can be used to ensure a smooth startup of a Swing application.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-7234546595192433552?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/7234546595192433552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=7234546595192433552' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7234546595192433552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7234546595192433552'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/06/howto-properly-start-java-swing.html' title='HOWTO: properly start a Java Swing Application from main'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-7438515550986213730</id><published>2007-06-29T10:12:00.000-04:00</published><updated>2007-06-29T16:06:20.716-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='SWING'/><category scheme='http://www.blogger.com/atom/ns#' term='JAR'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>HOWTO: set the title bar icon for a JAVA Swing Application</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-style: italic; font-weight: bold;font-size:85%;" &gt;Overview&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;To help polish a JAVA application, it is always nice to have a custom icon that shows up in the left corner of the title bar and in the task list.   To add this is simple.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;font-size:85%;" &gt;Technique&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Say you have a project that is using a package of jliststriping and in your jliststriping directory, you have an icon called a3.JPG.  Here is how you would  do it..&lt;/span&gt;&lt;br /&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;&lt;span style="font-size:85%;"&gt;java.net.URL imgURL = JListStripingForm.class.getResource(&lt;br /&gt;"/jliststriping/a3.JPG"&lt;br /&gt;);&lt;br /&gt;if (imgURL != null) {&lt;br /&gt;  this.setIconImage(new ImageIcon(imgURL,"Icon").getImage());&lt;br /&gt;} // end-if&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-size:85%;"&gt;It is done this way so that you can load the icon from a JAR file.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;font-size:85%;" &gt;Final Thoughts&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;This will help add a little polish to your program. &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-7438515550986213730?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/7438515550986213730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=7438515550986213730' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7438515550986213730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7438515550986213730'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/06/howto-set-title-bar-icon-for-java-swing.html' title='HOWTO: set the title bar icon for a JAVA Swing Application'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-8684076563417661235</id><published>2007-06-29T09:38:00.000-04:00</published><updated>2007-06-29T16:07:45.928-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='SWING'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>HOWTO: ensure correct JAVA Look and Feel at Program Startup</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic; font-weight: bold;font-size:130%;" &gt;Overview&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Lets face it, the default Java Look and Feel kind of sucks.  It looks ok but when you have it next to a native app, it sticks out.  Fortunately, the guys at SUN have made it easy to setup your JAVA program to automatically use the system look and feel.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;font-size:130%;" &gt;Technique&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;During init of your GUI, simply add the following code.  I like putting it in my constructor for the FORM.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;try {&lt;br /&gt; UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());&lt;br /&gt; SwingUtilities.updateComponentTreeUI(this);&lt;br /&gt;&lt;br /&gt;} catch(Exception ex) {&lt;br /&gt; ex.printStackTrace();&lt;br /&gt;} // end-try-catch&lt;/pre&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;What will happen is that the UIManager will set the look and feel using the &lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;System Look and Feel&lt;/span&gt;&lt;span style="font-size:130%;"&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;font-size:130%;" &gt;Last Thoughts&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Using this simple snippet, you can make your JAVA program look more like a native application.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-8684076563417661235?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/8684076563417661235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=8684076563417661235' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/8684076563417661235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/8684076563417661235'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/06/howto-ensure-correct-look-and-feel-at.html' title='HOWTO: ensure correct JAVA Look and Feel at Program Startup'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-3911435259586065443</id><published>2007-04-16T12:49:00.001-04:00</published><updated>2009-03-08T01:56:18.356-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='ANT'/><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='SWING'/><category scheme='http://www.blogger.com/atom/ns#' term='JAR'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>HOWTO: use ANT with JAVA to dynamically create build numbers</title><content type='html'>&lt;span style="font-style: italic; font-weight: bold;"&gt;Overview&lt;/span&gt;&lt;br /&gt;For me, build numbers are very useful.   I like to use them where I can so I can keep true to a major, minor, and patch version purpose.   The only problem is, how do you automate build numbers in a way that is easy to use in an IDE that doesn't automatically use them? The solution is partially included in &lt;a href="http://ant.apache.org/"&gt;ANT&lt;/a&gt; and the rest is a little bit of simple project setup.&lt;br /&gt;&lt;br /&gt;While you are automating things, why not include simple information about your project bundled with each JAR you create.  Including:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Program/Library/Project name&lt;/li&gt;&lt;li&gt;Author&lt;/li&gt;&lt;li&gt;Company/Organization&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Copyright&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Description (brief)&lt;/li&gt;&lt;li&gt;Version (major/minor/patch)&lt;/li&gt;&lt;li&gt;Build Number&lt;/li&gt;&lt;li&gt;Build Date&lt;/li&gt;&lt;/ul&gt;The following will describe the steps for automating ANT to do manage this for you.    The example is using &lt;a href="http://www.netbeans.org/"&gt;Netbeans&lt;/a&gt;, however, anything ANT capable should work using this technique.&lt;br /&gt;&lt;br /&gt;The process is also being described from a JAVA perspective but there isn't anything truly JAVA specific.  For this reason, the technique could be ported to other language.   I just happen to like JAVA so that is what I am using.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;br /&gt;Technique&lt;/span&gt;&lt;br /&gt;What we are doing is simple:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Have ANT create/update a small properties file for us in the root of the jar&lt;/li&gt;&lt;li&gt;Use a small class or library to open a load this properties file at startup&lt;/li&gt;&lt;li&gt;Ensure all data is available through static methods for easy access through-out the program&lt;/li&gt;&lt;/ul&gt;This setup is done once per project and can then be forgotten about.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;build.xml Setup&lt;/span&gt;&lt;br /&gt;In Netbeans (and probably other IDEs) build.xml is a place to create your own custom build targets.   A target needs to be setup for "-pre-jar" as follows&lt;br /&gt;&lt;pre&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;&lt;span style="font-size:120;"&gt;&amp;lt;!-- Custom Target for AppInfo.java --&amp;gt;&lt;br /&gt;&amp;lt;target name="-pre-jar"&amp;gt;&lt;br /&gt;&amp;lt;buildnumber file="buildnumber.properties"/&amp;gt;&lt;br /&gt;&amp;lt;propertyfile file="appinfo.properties"&lt;br /&gt; comment="Everything can be manually updated except buildnum and builddate."&amp;gt;&lt;br /&gt;&amp;lt;entry key="program.PROGNAME" default="${main.class}" /&amp;gt;&lt;br /&gt;&amp;lt;entry key="program.AUTHOR" default="" /&amp;gt;&lt;br /&gt;&amp;lt;entry key="program.COMPANY" default="" /&amp;gt;&lt;br /&gt;&amp;lt;entry key="program.COPYRIGHT" default="now" type="date" pattern="yyyy" /&amp;gt;&lt;br /&gt;&amp;lt;entry key="program.DESCRIPTION" default="" /&amp;gt;&lt;br /&gt;&amp;lt;entry key="program.VERSION" default="1.0.0" /&amp;gt;&lt;br /&gt;&amp;lt;entry key="program.BUILDNUM" value="${build.number}" /&amp;gt;&lt;br /&gt;&amp;lt;entry key="program.BUILDDATE" type="date" value="now" pattern="yyyyMMDDHHmmss" /&amp;gt;&lt;br /&gt;&amp;lt;/propertyfile&amp;gt;&lt;br /&gt;&amp;lt;copy file="appinfo.properties" todir="${build.classes.dir}"/&amp;gt;&lt;br /&gt;&amp;lt;/target&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;This target can be cut/pasted right into your build.xml as is.   It is doing the following:&lt;br /&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;Defines an implementation for &lt;span style="font-style: italic;"&gt;-pre-jar&lt;/span&gt; to the build system&lt;/li&gt;&lt;li&gt;Creates a new &lt;span style="font-style: italic;"&gt;buildnumber&lt;/span&gt; to be stored in &lt;span style="font-style: italic;"&gt;buildnumber.properties.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Creates a new &lt;span style="font-style: italic;"&gt;propertyfile&lt;/span&gt; called &lt;span style="font-style: italic;"&gt;appinfo.properties&lt;/span&gt;.  Within &lt;span style="font-style: italic;"&gt;propertyfile &lt;/span&gt;many entries are created.  All the entries are set to a default that can be updated by hand.  These &lt;span style="font-style: italic;"&gt;entry&lt;/span&gt; tags do not have a &lt;span style="font-style: italic;"&gt;value="..."&lt;/span&gt; attribute within the tag.  The ones with the &lt;span style="font-style: italic;"&gt;value="..."&lt;/span&gt; will get updated at each build.  In this case, the only &lt;span style="font-style: italic;"&gt;entry&lt;/span&gt; tags affected are &lt;span style="font-style: italic;"&gt;BUILDNUM &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;BUILDDATE&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Does a &lt;span style="font-style: italic;"&gt;copy&lt;/span&gt; of the &lt;span style="font-style: italic;"&gt;appinfo.properties&lt;/span&gt; file to the &lt;span style="font-style: italic;"&gt;build.classes.dir&lt;/span&gt; so it can be included in the jar for this project.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;After your first build, you will find two new files in the root directory of your project.  This is the same directory as build.xml.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;buildnumber.properties&lt;/span&gt;&lt;br /&gt;This is a file created and maintained by ANT. If you delete it, ANT will create another starting at 1.  The file will look something like this.&lt;br /&gt;&lt;pre&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;&lt;span style="font-size:120;"&gt;#Build Number for ANT. Do not edit!&lt;br /&gt;#Sat Apr 14 01:25:36 EDT 2007&lt;br /&gt;build.number=1&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/pre&gt;With each build, the build.number will be incremented by 1.  You do not need to do anything with this file going forward since ANT maintains it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;appinfo.properties&lt;/span&gt;&lt;br /&gt;All of the project summary information will be stored in here.  After your first build, there isn't much but you can update the static fields as you see fit.  The following is a file that was updated for a specific project.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;&lt;span style="font-size:120;"&gt;#Everything can be manually updated except buildnum and builddate.&lt;br /&gt;#Sat Apr 14 01:25:36 EDT 2007&lt;br /&gt;program.PROGNAME=LangTrans&lt;br /&gt;program.BUILDNUM=15&lt;br /&gt;program.AUTHOR=Ken Langer&lt;br /&gt;program.DESCRIPTION=This program uses Google Language Tool.(...)&lt;br /&gt;program.BUILDDATE=200704104012536&lt;br /&gt;program.COPYRIGHT=2007&lt;br /&gt;program.COMPANY=StoKen Software&lt;br /&gt;program.VERSION=1.0.0&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;/span&gt;&lt;/pre&gt; I manually updated all the fields (using the rules of property files) above except &lt;span style="font-style: italic;"&gt;BUILDNUM &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;BUILDDATE &lt;/span&gt;since they get updated dynamically.  This is the file that will be included in the JAR output of your project.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Using appinfo.properties&lt;/span&gt;&lt;br /&gt;Usage can be done in two ways.  You can either roll-your-own, or use a pre-existing library I created.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Roll-Your-Own&lt;/span&gt;&lt;br /&gt;Rolling your own is not to bad.  Simply open the appinfo.properties file as follows:&lt;br /&gt;&lt;pre&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;"&gt;&lt;span style="font-size:120;"&gt;InputStream in = null;&lt;br /&gt;Properties props = new Properties();&lt;br /&gt;//&lt;br /&gt;// load properties file&lt;br /&gt;//&lt;br /&gt;try {&lt;br /&gt;//&lt;br /&gt;// get Application information&lt;br /&gt;//&lt;br /&gt;in = getClass().getResourceAsStream("/appinfo.properties");&lt;br /&gt;props.load(in);&lt;br /&gt;&lt;br /&gt;// DO SOMETHING HERE WITH THE props object....&lt;br /&gt;&lt;br /&gt;in.close();&lt;br /&gt;&lt;br /&gt;} catch (IOException ex) {&lt;br /&gt;ex.printStackTrace();&lt;br /&gt;} // end-try-catch&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/pre&gt; That is it.  Accessing the values can be done using the props.getProperty(key); method.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Using Pre-Existing Library&lt;/span&gt;&lt;br /&gt;To save me time, I created a simple library (that will get more tools added over time) that has much of this already setup.   If you are interested, see &lt;a href="http://code.google.com/p/stoken-utils/"&gt;stoken&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_-pSEC4XHesg/RiPLvScd_WI/AAAAAAAAAAM/cZS6wGjMCc4/s1600-h/AppInfoPanel.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_-pSEC4XHesg/RiPLvScd_WI/AAAAAAAAAAM/cZS6wGjMCc4/s320/AppInfoPanel.jpg" alt="" id="BLOGGER_PHOTO_ID_5054107220105362786" border="0" /&gt;&lt;/a&gt;&lt;a href="http://code.google.com/p/stoken-utils/"&gt;-utils&lt;/a&gt;.  There is a class within the project all &lt;span style="font-style: italic;"&gt;AppInfo&lt;/span&gt; that you can hand props (from above).  It has some simple static accessors you can use for getting the key values you need.&lt;br /&gt;&lt;br /&gt;Within the same library, you will see &lt;span style="font-style: italic;"&gt;AppInfoPanel&lt;/span&gt; which can be stuck into a JFrame for creating a spiffy about box.&lt;br /&gt;&lt;br /&gt;Both are used in a sample program I wrote called &lt;a href="http://code.google.com/p/language-translate/"&gt;language-translate&lt;/a&gt;.  If you look through this program you will see the usage of both.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Either approach above still requires the build.xml configuration but the second one already knows what to do with it after build.xml does its magic.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Final Thoughts&lt;/span&gt;&lt;br /&gt;The technique above should allow you to simply and easily include build numbers and other centrally controlled project information.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE: &lt;/span&gt;I just discovered that if you have the &lt;span style="font-style: italic;"&gt;compile on save&lt;/span&gt; feature in Netbeans 6.5 on, it  seems to prevent appinfo.properties from being copied into your build/classes/... folder.  This means that any executions within the IDE will probably fail or have errors/exceptions.  I will look at a way around this but until then, turn off &lt;span style="font-style: italic;"&gt;compile on save&lt;/span&gt; and just do a classic SHIFT+F11 to built before a test run.&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-3911435259586065443?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/3911435259586065443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=3911435259586065443' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/3911435259586065443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/3911435259586065443'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/04/howto-use-ant-with-java-to-dynamically.html' title='HOWTO: use ANT with JAVA to dynamically create build numbers'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_-pSEC4XHesg/RiPLvScd_WI/AAAAAAAAAAM/cZS6wGjMCc4/s72-c/AppInfoPanel.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-4420070001497844340</id><published>2007-04-09T13:49:00.001-04:00</published><updated>2008-03-11T12:03:09.965-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CONFIG'/><category scheme='http://www.blogger.com/atom/ns#' term='FEDORA'/><category scheme='http://www.blogger.com/atom/ns#' term='LINUX'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><title type='text'>HOWTO: config 915resolution to have widescreen resolution</title><content type='html'>&lt;span style="FONT-WEIGHT: bold; FONT-STYLE: italicfont-family:trebuchet ms;font-size:100%;"  &gt;Overview&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;There is a problem with Intel Graphics chipsets to where where it doesn't know about wide screen resolutions. I don't know about the back story but I would like to be able to use 1440x900 with my monitor. The good thing is that someone has created a solution that gets around this issue.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;My system is a 2007 ASUS P1-P5945G that uses the INTEL 945G CHIPSET. I have a 19" (widescreen) Viewsonic monitor that supports up to 1440x900 resolution. This system was purchased from http://www.mwave.com/ for a pretty good price.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-WEIGHT: bold; COLOR: rgb(204,0,0); FONT-STYLE: italicfont-family:trebuchet ms;font-size:100%;"  &gt;Disclaimer&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(204,0,0);font-family:trebuchet ms;font-size:100%;"  &gt;What works for me might not work for you. Ensure you know your hardware before you try this. It may be possible to toast your system (motherboard/monitor/mind) in attempting this. Just be careful and sure.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-WEIGHT: bold; FONT-STYLE: italicfont-family:trebuchet ms;font-size:100%;"  &gt;Technique&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;The idea it to change one of the preset resolutions in the Intel Graphics chip from its default to your preferred resolution. The good part is that there is a command for it but the change is not permanent. To get around this, someone created an init script that ensures your change happens at boot :-) Here is what you do....Assuming FC6.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;1. Install 915resolution: yum install 915resolution&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;2. Get a list of Resolutions and pick one to replace: 915resolution -l&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;this will give you a long list of all the supported resolutions and bit levels&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;in front you will see a hex value (5a, 5b,...). Look for ones you will not be able to use with your monitor.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;3. Edit config file and add RESOLUTION="..." statement: vi /etc/sysconfig/915resolution&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;If you want 5a to be 1440x900 at 32bit set RESOLUTION="5a 1440 900 32"&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;4. Run FC6 setup from xterm&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;Turn on System Service "915resolution" so it sets RESOLUTION=".." each time you boot.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;5. Reboot.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;When you come back up, you should be able to select 1440x900 (or whatever you picked) as your Preference-&gt;Screen Resolution.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;When you boot your linux system next, you will be able to go into the GNOME Preference-&gt;Screen Resolution and see 1440x900 (or whatever you set) in the list.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-WEIGHT: bold; FONT-STYLE: italicfont-family:trebuchet ms;font-size:100%;"  &gt;What to Check&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;On my monitor, I have a little button that tells me the current resolution and refresh rate. Ensure this matches what your monitor can support.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;I would also look at your /var/log/xorg.log and see if you got any errors. If so, do a little reading to ensure there is nothing bad happening.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-WEIGHT: bold; FONT-STYLE: italicfont-family:trebuchet ms;font-size:100%;"  &gt;GDM&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;I have run into an annoying thing with the "greeter" for Gnome. If your /etc/X11/xorg.conf has resolutions higher then the resolution you wish to use, it might pick the highest supported one in the list. This will give you a login screen that scrolls when you move your mouse around.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;The only way I have found to fix this is to edit the /etc/X11/xorg.conf and remove any resolution higher then you desired (1440x900 for me) by you. This quick edit will correct that problem.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-WEIGHT: bold; FONT-STYLE: italicfont-family:trebuchet ms;font-size:100%;"  &gt;Final Thoughts&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;This concept seems to work. I have not read anything that says that this is dangerous or damaging. Still, do your research to ensure your hardware is safe.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;If you use UBUNTU, check out this link for a good overview. Much of my information came from there.&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;a href="http://www.ubuntuforums.org/showthread.php?p=1808047"&gt;http://www.ubuntuforums.org/showthread.php?p=1808047&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;- - -&lt;/span&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-4420070001497844340?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/4420070001497844340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=4420070001497844340' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/4420070001497844340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/4420070001497844340'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/04/howto-config-915resolution-to-have.html' title='HOWTO: config 915resolution to have widescreen resolution'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-7493632866345822106</id><published>2007-03-28T13:54:00.000-04:00</published><updated>2007-04-16T12:42:31.584-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='ANT'/><category scheme='http://www.blogger.com/atom/ns#' term='JAR'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>HOWTO: use Netbeans and ANT to auto-run jarsigner</title><content type='html'>&lt;span style="font-weight: bold; font-style: italic;font-family:trebuchet ms;" &gt;Overview&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;There are times when you need to sign jar files. In my world it is is all the time since I tend to favor Java WebStart applications. There are techniques using ANT to auto sign JAR files, however, they require you to include your store password which is ok if your code remains internal but may not be so good if you post it to Google Code.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;To get around this, there is a pretty easy to implement solution. I, being the Netbeans fan, will describe it from the Netbeans perspective, however, ANT is ANT so it should work using anything.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;font-family:trebuchet ms;" &gt;Description&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;There is a file within the ANT build process called build.xml. This file is usually located in the root of your project directory. This file lets you create additional targets without directly changing the core build script. Typical usage for me is to add -pre-jar and -post-jar targets. In this case we are going to add a new -post-jar target that will be responsible for signing all the JAR files in the dist directory.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Within the build.xml's &amp;lt;project&amp;gt; open and close tag, I add the following XML blob.&lt;/span&gt;&lt;br /&gt;&lt;pre class="code"  style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em;font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;target name="-post-jar"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;exec dir="${dist.dir}" executable="bulkjarsigner.csh" os="Linux" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;/target&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family:trebuchet ms;"&gt;In this blob you can see a few bits. The main thing is a C-Shell file I wrote, called bulkjarsigner.csh, that has 700 permissions and sits outside my project tree in my personal bin directory (which is in my path).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;The script is basic. It gets a listing of all jar files in the dist directory (and sub-directories) and runs jarsigner on it. The following is the script I use (with the obvious passwords changed):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em; font-family: courier new;"&gt;#!/bin/csh&lt;br /&gt;#&lt;br /&gt;#&lt;br /&gt;init:&lt;br /&gt;onintr outahere&lt;br /&gt;set KEYSTORE="~/keystore/my.jks"&lt;br /&gt;set STOREPASS="mystorepassword"&lt;br /&gt;set KEYPASS="mykeypass"&lt;br /&gt;set ALIAS="keyalias"&lt;br /&gt;set FILELIST=`find ./ -print |grep ".jar"`&lt;br /&gt;&lt;br /&gt;main:&lt;br /&gt;echo "--- Working out of `pwd` ----"&lt;br /&gt;&lt;br /&gt;foreach ARG ($FILELIST)&lt;br /&gt;  echo "---- Processing $ARG ----"&lt;br /&gt;  jarsigner -storepass $STOREPASS -keypass $KEYPASS -keystore $KEYSTORE $ARG $ALIAS&lt;br /&gt;  echo " "&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;set KEYSTORE=""&lt;br /&gt;set STOREPASS=""&lt;br /&gt;set KEYPASS=""&lt;br /&gt;set ALIAS=""&lt;br /&gt;&lt;br /&gt;goto pissoff&lt;br /&gt;&lt;br /&gt;outahere:&lt;br /&gt;echo " "&lt;br /&gt;echo "User Exit..."&lt;br /&gt;&lt;br /&gt;pissoff:&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family:trebuchet ms;"&gt;You will note that it does not take any command line args at all. It just takes the current directory specified by ${dist.dir} and gets a listing of all the jar files. foreach jar in the list, it runs jarsigner.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;The example above is written in C-SHELL but it could really be any scripting language (even BAT for Windows users).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;font-family:trebuchet ms;" &gt;What You Will See&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;When you do a build or a clean build, you will see your code compile, be bundled in JAR files and then signed.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;That is it. The signed jar files can be verified (jarsigner -verify -verbose...) to confirm that all is well.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;font-family:trebuchet ms;" &gt;Last Thoughts&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;It is pretty simple to add and remove. It is also handy since you can change the password, alias, keystore,... in one place without having to re-touch every build.xml.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;- - -&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-7493632866345822106?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/7493632866345822106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=7493632866345822106' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7493632866345822106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/7493632866345822106'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/03/howto-use-netbeans-and-ant-to-auto-run.html' title='HOWTO: use Netbeans and ANT to auto-run jarsigner'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-2472584440455836422</id><published>2007-03-26T16:28:00.002-04:00</published><updated>2008-04-30T15:14:36.218-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEANS'/><category scheme='http://www.blogger.com/atom/ns#' term='PROGRAMMING'/><category scheme='http://www.blogger.com/atom/ns#' term='HOWTO'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>HOWTO: use Netbeans &lt;editor-fold&gt; Abbreviation for C# #region/#endregion like behavior</title><content type='html'>&lt;span style="font-weight: bold; font-style: italic;"&gt;Overview&lt;/span&gt;&lt;br /&gt;When switching from C# to JAVA, I found that I missed the #region/#endregion tags that let you group related code together. Fortunately, the guys at Netbeans have solved this problem (indirectly). For any IDE built code, they have created a tag called editor-fold.&lt;br /&gt;&lt;br /&gt;If you put an editor fold around a code block (related methods/properties), you can collapse it whenever you want. Since the tag has a comment in front of it, there is no harm if you open the code in other IDEs or editors. It is just ignored. Of course, why would you use anything but Netbeans? :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Syntax&lt;/span&gt;&lt;br /&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em; font-family: courier new;"&gt;// &amp;lt;editor-fold defaultstate="collapsed" desc="describe what is in here"&amp;gt;&lt;br /&gt;Your code goes here...&lt;br /&gt;// &amp;lt;/editor-fold&amp;gt;&lt;/pre&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Usage&lt;/span&gt;&lt;br /&gt;Usage is very simple. The most basic has no description or default state&lt;br /&gt;&lt;br /&gt;You may define the default description of a collapsed fold by adding a "desc" tag:&lt;br /&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em; font-family: courier new;"&gt;// &amp;lt;editor-fold desc="describe what is in here"&amp;gt;&lt;br /&gt;Your code goes here...&lt;br /&gt;// &amp;lt;/editor-fold&amp;gt;&lt;/pre&gt;You may set a fold to be collapsed by default by adding a "defaultstate" tag:&lt;br /&gt;&lt;pre class="code" style="border-left: 3px solid rgb(204, 204, 204); padding: 0.5em; margin-left: 2em; font-family: courier new;"&gt;// &amp;lt;editor-fold defaultstate="collapsed" desc="describe what is in here"&amp;gt;&lt;br /&gt;Your code goes here...&lt;br /&gt;// &amp;lt;/editor-fold&amp;gt;&lt;/pre&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Netbeans Code Templates&lt;/span&gt;&lt;br /&gt;Another trick is to go into Netbeans Tools-&gt;Options-&gt;Editor-&gt;Code Templates and add a few Abbreviations. For my typical development I created three:&lt;br /&gt;&lt;br /&gt;Abbreviation : EF&lt;br /&gt;Description : Insert the opening code fold&lt;br /&gt;Expanded Text: //&lt;br /&gt;&lt;br /&gt;Abbreviation : EEF&lt;br /&gt;Description : Insert the closing code fold&lt;br /&gt;Expanded Text: //&lt;br /&gt;&lt;br /&gt;Abbreviation : EFB&lt;br /&gt;Description : Insert opening and closing code folds&lt;br /&gt;Expanded Text: //&lt;br /&gt;//&lt;br /&gt;&lt;br /&gt;If you have never used Code Templates before, they are simple to use. In the Netbeans editor, just type the abbreviation and then a space. The editor will expand the abbreviation to become the Expanded Text you specify.&lt;br /&gt;&lt;br /&gt;You may need to play with white space and such to get it to appear where you want. I usually indent the closing editor-fold for EFB. Everyone types different though.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Last Thoughts&lt;/span&gt;&lt;br /&gt;I personally think that SUN should consider adding this (or something similar) to the JAVA language. I use them a good amount to group related methods within a class together.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Update - 2008-04-30&lt;/span&gt;&lt;br /&gt;Netbeans has posted a similar approach that can be looked at as an alternative to the solution above.   Visit &lt;a href="http://wiki.netbeans.org/SurroundWithCodeFolding"&gt;this&lt;/a&gt; link on their wiki for more information.   It is pretty much the same, however, they have a few tags that did not exist when the blog was written.  The nice thing about this updated version (which may require Netbeans 6.x) is that you just highlight the code you want to include in the fold vs having to type EF and EEF before and after the code. &lt;br /&gt;&lt;br /&gt;The only bad part is that every time you select a code block, it will give you a lightbulb asking if you want to put this block in a code fold.  It is all give and take.  I will try this out for a while in addition to what I already use.&lt;br /&gt;- - -&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-2472584440455836422?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/2472584440455836422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=2472584440455836422' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/2472584440455836422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/2472584440455836422'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/03/howto-use-netbeans-editor-tags.html' title='HOWTO: use Netbeans &amp;lt;editor-fold&amp;gt; Abbreviation for C# #region/#endregion &lt;i&gt;like&lt;/i&gt; behavior'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4003912748989872553.post-489708385687041512</id><published>2007-03-26T16:05:00.000-04:00</published><updated>2007-04-16T12:48:29.195-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='INTRODUCTION'/><title type='text'>Introduction</title><content type='html'>&lt;span style=";font-family:trebuchet ms;font-size:100%;"  &gt;Over the years, I have created many little tips and tricks for myself.  A friend of mine asked me why I was keeping them to myself.  I could not answer.&lt;br /&gt;&lt;br /&gt;The following posts are not just notes to myself but notes for anyone looking for the same answers I was trying to find.  I normally keep them in Outlook but will transfer them to this blog after a bit of clean-up.&lt;br /&gt;&lt;br /&gt;If you do use any of them, ensure you understand what you are doing.  Something that works fine on my system may blow yours up.  So be careful and think about what you are doing before you use any tips posted.&lt;br /&gt;&lt;br /&gt;Beyond my disclaimer, enjoy.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;- - - - - - - - - - - - - - - - - - - - - - -&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4003912748989872553-489708385687041512?l=stoken-tips-and-tricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stoken-tips-and-tricks.blogspot.com/feeds/489708385687041512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4003912748989872553&amp;postID=489708385687041512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/489708385687041512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4003912748989872553/posts/default/489708385687041512'/><link rel='alternate' type='text/html' href='http://stoken-tips-and-tricks.blogspot.com/2007/03/introduction.html' title='Introduction'/><author><name>uuklanger</name><uri>http://www.blogger.com/profile/14618539429202133895</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_-pSEC4XHesg/STi7xOU17SI/AAAAAAAAADc/YDktvrh5FC8/S220/spain.jpg'/></author><thr:total>0</thr:total></entry></feed>
