<?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-4492147817683247981</id><updated>2011-11-28T01:45:49.169+01:00</updated><category term='AVI'/><category term='PDF'/><category term='Javascript'/><category term='Windows'/><category term='Security'/><category term='Java'/><category term='Scam'/><category term='Programming'/><category term='Web'/><category term='C++'/><category term='Netbeans'/><category term='Admin'/><category term='Flash'/><category term='Games'/><category term='GIT'/><category term='Audio'/><category term='Blender'/><category term='Graphics'/><category term='Bugs'/><category term='Http'/><category term='Disassembler'/><category term='Linux'/><category term='Eclipse'/><category term='Qt'/><category term='Grails'/><category term='mp3'/><category term='Debug'/><category term='Ubuntu'/><category term='Spring'/><category term='Mindmap'/><category term='Video'/><category term='LaTeX'/><category term='Livecd'/><title type='text'>wastesorting</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-5493340344272464457</id><published>2011-08-06T17:23:00.001+02:00</published><updated>2011-08-06T17:23:21.562+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Audio'/><title type='text'>Split lossless audio (ape, flac, wv, wav) by cue file in Ubuntu</title><content type='html'>&lt;a href="https://aidanjm.wordpress.com/2007/02/15/split-lossless-audio-ape-flac-wv-wav-by-cue-file/"&gt;https://aidanjm.wordpress.com/2007/02/15/split-lossless-audio-ape-flac-wv-wav-by-cue-file/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-5493340344272464457?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/5493340344272464457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=5493340344272464457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/5493340344272464457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/5493340344272464457'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2011/08/split-lossless-audio-ape-flac-wv-wav-by.html' title='Split lossless audio (ape, flac, wv, wav) by cue file in Ubuntu'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-6103816927698247622</id><published>2011-06-21T14:59:00.000+02:00</published><updated>2011-06-21T14:59:38.917+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDF'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Apache PDFBox - Java PDF Library</title><content type='html'>Apache PDFBox™ is an open source Java PDF library for working with PDF documents. This project allows creation of new PDF documents, manipulation of existing documents and the ability to extract content from documents.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-6103816927698247622?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/6103816927698247622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=6103816927698247622' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/6103816927698247622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/6103816927698247622'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2011/06/apache-pdfbox-java-pdf-library.html' title='Apache PDFBox - Java PDF Library'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-579602916798441890</id><published>2011-02-11T08:35:00.002+01:00</published><updated>2011-02-11T08:35:30.433+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Graphics'/><title type='text'>NeoTextureEdit</title><content type='html'>&lt;a href="http://neotextureedit.sourceforge.net/"&gt;NeoTextureEdit&lt;/a&gt; is an open source (GNU LGPL v. 3) easy to use graph-based procedural seamless texture editor. Using continuous basis functions it can generate arbitrary resolution images without quality degradation. Its main purpose is to produce high quality textures for real time rendering applications that can be stored in a few kB and synthesized on application startup. But it can also be used to generate off-line images.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-579602916798441890?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/579602916798441890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=579602916798441890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/579602916798441890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/579602916798441890'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2011/02/neotextureedit.html' title='NeoTextureEdit'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-207554604756689457</id><published>2011-02-07T11:02:00.000+01:00</published><updated>2011-02-07T11:02:39.650+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scam'/><category scheme='http://www.blogger.com/atom/ns#' term='Blender'/><title type='text'>3DMagix and IllusionMage, scam or open source leeches?</title><content type='html'>the pros and cons of open software: &lt;a href="http://www.blender.org/blenderorg/blender-foundation/press/re-branding-blender/"&gt;3DMagix, 3DMagixPro, IllusionMage, scam&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-207554604756689457?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/207554604756689457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=207554604756689457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/207554604756689457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/207554604756689457'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2011/02/3dmagix-and-illusionmage-scam-or-open.html' title='3DMagix and IllusionMage, scam or open source leeches?'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-1639027861211827579</id><published>2010-09-08T11:30:00.000+02:00</published><updated>2010-09-08T11:30:25.898+02:00</updated><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='Http'/><title type='text'>Async Http Client</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;a href="http://jfarcand.wordpress.com/2010/03/04/new-open-source-project-alert-a-new-asynchronous-http-client-library/"&gt;Async Http Client&lt;/a&gt; is an asynchronous HTTP Client library, which allow    applications to execute HTTP requests and asynchronously process the    HTTP response .&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-1639027861211827579?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/1639027861211827579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=1639027861211827579' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/1639027861211827579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/1639027861211827579'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2010/09/async-http-client.html' title='Async Http Client'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-3682417550606195103</id><published>2010-05-31T09:32:00.002+02:00</published><updated>2010-05-31T09:32:52.280+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Wt</title><content type='html'>&lt;a href="http://sourceforge.net/projects/witty/"&gt;Wt&lt;/a&gt; (wit-ty) is a Web Toolkit. It provides a C++ or Java library for  building a web application, with an API that resembles existing desktop  application GUI APIs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-3682417550606195103?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/3682417550606195103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=3682417550606195103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/3682417550606195103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/3682417550606195103'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2010/05/wt.html' title='Wt'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-3410522048390778888</id><published>2010-04-27T14:18:00.000+02:00</published><updated>2010-04-27T14:18:29.450+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><category scheme='http://www.blogger.com/atom/ns#' term='Grails'/><title type='text'>Securing Grails with Spring Security, Part 2</title><content type='html'>&lt;style type="text/css"&gt;
pre { 
  font-family:"Courier New",Courier,monospace; 
  font-size:13.4px; 
  color:#0000C0; 
  background-color:#FFFFE0; 
  border:2px dotted #AAAAAA; 
  padding:10px; 
  white-space:pre; 
}
&lt;/style&gt;&lt;br /&gt;
Welcome back to part 2 of &lt;i&gt;Securing Grails with Spring Security&lt;/i&gt;.&lt;br /&gt;
In &lt;a href="http://waste-sorting.blogspot.com/2010/04/securing-grails-with-spring-security.html"&gt;part 1&lt;/a&gt; we made the basic configuration to connect Spring Security and Grails.&lt;br /&gt;
&lt;br /&gt;
In this second part we will write a tag library which we will later use to show and hide parts of a page, determine wether the client is authenticated and display the name and roles of the logged in user.&lt;br /&gt;
&lt;br /&gt;
This second part is heavily inspired by the &lt;a href="http://grails.org/plugin/acegi"&gt;Grails Security plugin&lt;/a&gt; by Tsuyoshi Yamamoto et al. Most of the sourcecode is in fact copied from their plugin.&lt;br /&gt;
&lt;h2&gt;Setup&lt;/h2&gt;We will need a couple of files and directories, so let's create them right away.&lt;br /&gt;
&lt;pre&gt;grails create-controller com.acme.Secure
&lt;/pre&gt;The index method of this controller is sufficient. But we need an &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;index.gsp&lt;/span&gt; in &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;grails-app/views/secure&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&amp;gt;
    &amp;lt;meta name="layout" content="main" /&amp;gt;
    &amp;lt;title&amp;gt;Secure&amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;This page is secured&amp;lt;/h1&amp;gt;
    --- we'll add our payload here ---
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;pre&gt;grails create-tag-lib com.acme.Security
&lt;/pre&gt;&lt;br /&gt;
The taglib should provide the following functions:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Output the body of the tag if the user is authenticated/not authenticated &lt;/li&gt;
&lt;li&gt;Output the authenticated principal (if any)&lt;/li&gt;
&lt;li&gt;Output the roles of the authenticated principal (if any)&lt;/li&gt;
&lt;li&gt;Output the body of the tag if the user has all, none or any roles of a specified set of roles&lt;/li&gt;
&lt;/ol&gt;We'll write some helper methods which we will reuse later.&lt;br /&gt;
&lt;h2&gt;Foundations&lt;/h2&gt;The most important object in Spring Security is the SecurityContextHolder. By default this is a ThreadLocal which stores the security context of the application, which will be our entry point to all security related information we need. (I suggest reading the great documentation for Spring Security if you want to know the gory details.)&lt;br /&gt;
To save us some typing we'll declare a shortcut (thanx Groovy)&lt;br /&gt;
&lt;pre&gt;import org.springframework.security.core.context.SecurityContextHolder as SCH&lt;/pre&gt;and a helper method&lt;br /&gt;
&lt;pre&gt;private boolean isAuthenticated() {
   def authPrincipal = SCH?.context?.authentication?.principal
   return authPrincipal != null &amp;amp;&amp;amp; authPrincipal != 'anonymousUser'
}&lt;/pre&gt;The safe navigation operator (?.) makes sure that authPrincipal is null if one of SCH, context, authentication or principal is null. This means that we are not authenticated. The user may still be not authenticated if the authPrincipal is 'anonymousUser'. (See Spring Security docs for Anonymous Authentication)&lt;br /&gt;
&lt;h3&gt;isAuthenticated/isNotAuthenticated&lt;/h3&gt;Now our first two tags are easy to write:&lt;br /&gt;
&lt;pre&gt;def ifAuthenticated = { attrs, body -&amp;gt;
   if (isAuthenticated()) {
      out &amp;lt;&amp;lt; body()
   }
}

def ifNotAuthenticated = { attrs, body -&amp;gt;
   if (!isAuthenticated()) {
      out &amp;lt;&amp;lt; body()
   }
}&lt;/pre&gt;Using the taglib is similarly easy (in the payload section of &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;index.gsp&lt;/span&gt;):&lt;br /&gt;
&lt;pre&gt;ifAuthenticated: &amp;lt;g:ifAuthenticated&amp;gt;** authenticated **&amp;lt;/g:ifAuthenticated&amp;gt;&amp;lt;br/&amp;gt;
ifNotAuthenticated: &amp;lt;g:ifNotAuthenticated&amp;gt;** not authenticated **&amp;lt;/g:ifNotAuthenticated&amp;gt;&amp;lt;br/&amp;gt;
&lt;/pre&gt;When you reload this page it'll tell you wether you are logged in or not.&lt;br /&gt;
Play around with a couple of pages and different interception urls (&lt;a href="http://waste-sorting.blogspot.com/2010/04/securing-grails-with-spring-security.html"&gt;Part 1&lt;/a&gt;) and see how the pages behave.&lt;br /&gt;
&lt;h2&gt;What's next&lt;/h2&gt;It may not seems so, but we covered a lot of ground so far. You should now have a basic orientation how to work with Spring Security at the taglib level.&lt;br /&gt;
In the next post of this series we'll talk about roles and the user principal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-3410522048390778888?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/3410522048390778888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=3410522048390778888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/3410522048390778888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/3410522048390778888'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2010/04/securing-grails-with-spring-security_27.html' title='Securing Grails with Spring Security, Part 2'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-4746751802768896309</id><published>2010-04-15T14:34:00.000+02:00</published><updated>2010-04-15T14:34:09.751+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>eXaro</title><content type='html'>&lt;a href="http://exaro.sourceforge.net/"&gt;eXaro&lt;/a&gt; it's a free reporting solution for Qt (&amp;gt;=4.4) released under GPL (v3)/LGPL (v3) license.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-4746751802768896309?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/4746751802768896309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=4746751802768896309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/4746751802768896309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/4746751802768896309'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2010/04/exaro.html' title='eXaro'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-4220630371886886690</id><published>2010-04-10T13:45:00.000+02:00</published><updated>2010-04-10T13:45:24.893+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GIT'/><title type='text'>SmartGit</title><content type='html'>&lt;a href="http://www.syntevo.com/smartgit/index.html"&gt;SmartGit&lt;/a&gt; is a graphical front-end for the distributed version control system Git and runs on Windows, Mac OS X and Linux.&lt;br /&gt;
&lt;br /&gt;
SmartGit helps Git beginners getting started quickly and makes advanced users more productive with its efficient user interface to Git — the most powerful DVCS today.&lt;br /&gt;
&lt;br /&gt;
SmartGit can be used free of charge &lt;b&gt;for non-commercial&lt;/b&gt; purposes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-4220630371886886690?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/4220630371886886690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=4220630371886886690' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/4220630371886886690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/4220630371886886690'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2010/04/smartgit.html' title='SmartGit'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-6254760229199032034</id><published>2010-04-08T15:04:00.002+02:00</published><updated>2010-04-21T08:02:54.946+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><category scheme='http://www.blogger.com/atom/ns#' term='Grails'/><title type='text'>Securing Grails with Spring Security, Part 1</title><content type='html'>&lt;style type="text/css"&gt;
pre { 
  font-family:"Courier New",Courier,monospace; 
  font-size:13.4px; 
  color:#0000C0; 
  background-color:#FFFFE0; 
  border:2px dotted #AAAAAA; 
  padding:10px; 
  white-space:pre; 
}
&lt;/style&gt;&lt;br /&gt;
&lt;h2&gt;What?&lt;/h2&gt;In part one of this series I want to show how easy it is to secure your Grails apps with a current version of Spring Security. It deals with the now current version of Grails (1.2.2) and Spring Security (3.0.2).&lt;br /&gt;
&lt;h2&gt;Why?&lt;/h2&gt;Grails as well as Spring are highly agile environments. Sometimes so agile that it is difficult to find plugins for current versions.&lt;br /&gt;
Although there are several approaches to securing Grails apps using plugins I wanted to stick to Spring Security. I have been very happy with it since the ancient days when it was called Acegi Security. &lt;br /&gt;
Unfortunatelly the plugins available either use a very different approach (eg Stark Security) or provide rather old versions of Spring Security (eg Spring Security Plugin 0.5.2 which uses Spring Security 2.0.4 under the hood).&lt;br /&gt;
This posting should show you how easy it is to expand Grails functionality if you cannot or don't want to use plugins.&lt;br /&gt;
This first installment slightly updates &lt;a href="http://blog.jayway.com/author/mattiasarthursson"&gt;Mattias Hellborg Arthursson's&lt;/a&gt; posting &lt;a href="http://blog.jayway.com/2009/11/23/spring-security-for-real-with-grails/"&gt;Spring Security For Real with Grails&lt;/a&gt;. &lt;br /&gt;
&lt;h2&gt;How?&lt;/h2&gt;As it turns out it is quite easy to integrate Spring Security in Grails. I'm going to show you how in some easy to follow steps.&lt;br /&gt;
&lt;h3&gt;1. Download&lt;/h3&gt;Get &lt;a href="http://grails.org/"&gt;Grails 1.2.2&lt;/a&gt; and &lt;a href="http://www.springframework.org/"&gt;Spring Security 3.0.2&lt;/a&gt; from the corresponding website, install Grails and unpack Spring Security to a location of your liking.&lt;br /&gt;
&lt;h3&gt;2. Create a Grails project and test it&lt;/h3&gt;&lt;pre&gt;lugaru&amp;gt; grails create-app GSecurity
Welcome to Grails 1.2.2 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: /opt/grails

Base Directory: /home/lugaru
Resolving dependencies...
[...]
Created Grails Application at /home/lugaru/GSecurity
&lt;/pre&gt;Now you can test it with &lt;br /&gt;
&lt;pre&gt;cd GSecurity
grails run-app
&lt;/pre&gt;and browse to &lt;a href="http://localhost:8080/GSecurity"&gt;http://localhost:8080/GSecurity&lt;/a&gt;. &lt;br /&gt;
&lt;h3&gt;3. Install the web.xml template&lt;/h3&gt;Spring Security is based on an HTTP filter. These are normally configured in the web.xml, which we don't have in our Grails project, yet.&lt;br /&gt;
&lt;pre&gt;grails install-templates
&lt;/pre&gt;creates some files and directories under &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;src/templates&lt;/span&gt;. We only need &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;src/templates/war/web.xml&lt;/span&gt;. You can safely delete &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;src/templates/artifacts&lt;/span&gt; and &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;src/templates/scaffolding&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
Now edit &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;src/templates/war/web.xml&lt;/span&gt; and add this after the last filter definition&lt;br /&gt;
&lt;pre&gt;&amp;lt;filter&amp;gt;
    &amp;lt;filter-name&amp;gt;springSecurityFilterChain&amp;lt;/filter-name&amp;gt;
    &amp;lt;filter-class&amp;gt;org.springframework.web.filter.DelegatingFilterProxy&amp;lt;/filter-class&amp;gt;
&amp;lt;/filter&amp;gt;
&lt;/pre&gt;and&lt;br /&gt;
&lt;pre&gt;&amp;lt;filter-mapping&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter-name&amp;gt;springSecurityFilterChain&amp;lt;/filter-name&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;
&amp;lt;/filter-mapping&amp;gt;
&lt;/pre&gt;after the last filter mapping. (Question: Is there a more grails-ish way?)&lt;br /&gt;
&lt;h3&gt;4. Install the libraries&lt;/h3&gt;Copy &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;spring-security-config-3.0.2.RELEASE.jar&lt;/span&gt;, &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;spring-security-core-3.0.2.RELEASE.jar&lt;/span&gt; and &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;spring-security-web-3.0.2.RELEASE.jar&lt;/span&gt; from Spring Security to your Grails &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;lib&lt;/span&gt; directory.&lt;br /&gt;
&lt;h3&gt;5. Configure the security filter&lt;/h3&gt;There are two ways to configure the security filter. Either you can declare your Spring beans in &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;grails-app/conf/spring/resources.groovy&lt;/span&gt; or in &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;grails-app/conf/spring/resources.xml&lt;/span&gt; (which you have to create first).&lt;br /&gt;
The following snipped uses the later option. It will password protect your whole application using basic authentication (the infamous password box). You can log in using one of the four users (user1, user2, user3, admin) with their corresponding password. We do not use their authorities/roles yet, but I'll need them in one of the later parts of this series.&lt;br /&gt;
&lt;pre&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"&amp;gt;
    &amp;lt;http auto-config="true" use-expressions="true"&amp;gt;
        &amp;lt;http-basic/&amp;gt;
        &amp;lt;intercept-url pattern="/**" access="isAuthenticated()" /&amp;gt;
    &amp;lt;/http&amp;gt;

    &amp;lt;authentication-manager alias="authenticationManager"&amp;gt;
        &amp;lt;authentication-provider&amp;gt;
            &amp;lt;user-service&amp;gt;
                &amp;lt;user name="admin" password="admin" authorities="ROLE_ADMIN"/&amp;gt;
                &amp;lt;user name="user1" password="user1" authorities="ROLE_GROUP1"/&amp;gt;
                &amp;lt;user name="user2" password="user2" authorities="ROLE_GROUP1,ROLE_GROUP2"/&amp;gt;
                &amp;lt;user name="user3" password="user3" authorities=""/&amp;gt;
            &amp;lt;/user-service&amp;gt;
        &amp;lt;/authentication-provider&amp;gt;
    &amp;lt;/authentication-manager&amp;gt;
&amp;lt;/beans:beans&amp;gt;
&lt;/pre&gt;As you can see this is a standard Spring Security configuration.&lt;br /&gt;
Congratulations! You have done it.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;But wait! This is not production ready at all. I have all my users and roles in an LDAP server. Can I use that, too?&lt;/i&gt;&lt;br /&gt;
Certainly! &lt;br /&gt;
&lt;pre&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;beans:beans xmlns="http://www.springframework.org/schema/security"
             xmlns:beans="http://www.springframework.org/schema/beans"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
             http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"&amp;gt;
    &amp;lt;http auto-config="true" use-expressions="true"&amp;gt;
        &amp;lt;http-basic/&amp;gt;
        &amp;lt;intercept-url pattern="/**" access="isAuthenticated()" /&amp;gt;
    &amp;lt;/http&amp;gt;

    &amp;lt;ldap-server url="ldap://localhost:389/dc=acme,dc=com" /&amp;gt;
    &amp;lt;authentication-manager alias="authenticationManager"&amp;gt;
        &amp;lt;ldap-authentication-provider user-search-base="ou=users"
                                      user-search-filter="(cn={0})"
                                      group-search-base="ou=groups"
                                      group-search-filter="(uniqueMember={0})"/&amp;gt;
    &amp;lt;/authentication-manager&amp;gt;
&amp;lt;/beans:beans&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;i&gt;Update:&lt;/i&gt; You'll also need to copy &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;spring-ldap-1.3.0.RELEASE-all.jar&lt;/span&gt; and &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;spring-security-ldap-3.0.2.RELEASE.jar&lt;/span&gt; to Grails &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;lib&lt;/span&gt; directory. &lt;br /&gt;
The security namespace of Spring Security is very concise, this is the reason why I did not create the beans in &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;resources.groovy&lt;/span&gt;. (Although I have to admit that I'm pretty new to Groovy and Grails and might have missed something which would have made it even more concise.)&lt;br /&gt;
&lt;h2&gt;What's next&lt;/h2&gt;From this point on it is almost trivial to expand the configuration to use remember-me, form-based authentication, session hijacking-protection and all the other fine things Spring Security has to offer. I strongly recommend to read the great documentation which comes with Spring Security.&lt;br /&gt;
&lt;br /&gt;
In the next part of this series we will create a tag library which will allow you to show and hide information depending on user roles.&lt;br /&gt;
&lt;h2&gt;Disclaimer&lt;/h2&gt;This post would not have been possible without &lt;a href="http://blog.jayway.com/author/mattiasarthursson"&gt;Mattias Hellborg Arthursson's&lt;/a&gt; &lt;a href="http://blog.jayway.com/2009/11/23/spring-security-for-real-with-grails/"&gt;Spring Security For Real with Grails&lt;/a&gt; which demonstrated that at least it is do-able.&lt;br /&gt;
I'm in no way an experienced Groovy or Grails developer. So all errors are mine.&lt;br /&gt;
The same goes for every funny phrase or wrong spelling. English is not my mother's tongue. I'm sure you've noticed that already. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-6254760229199032034?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/6254760229199032034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=6254760229199032034' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/6254760229199032034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/6254760229199032034'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2010/04/securing-grails-with-spring-security.html' title='Securing Grails with Spring Security, Part 1'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-2734916733913016697</id><published>2010-02-22T10:01:00.002+01:00</published><updated>2010-02-22T10:02:58.870+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Java Decompiler</title><content type='html'>Written in C++, also available as Eclipse plugin: &lt;a href="http://java.decompiler.free.fr/"&gt;http://java.decompiler.free.fr&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-2734916733913016697?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/2734916733913016697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=2734916733913016697' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/2734916733913016697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/2734916733913016697'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2010/02/java-decompiler.html' title='Java Decompiler'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-111642729378827830</id><published>2010-01-20T08:10:00.001+01:00</published><updated>2010-01-20T08:12:49.639+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Audio'/><category scheme='http://www.blogger.com/atom/ns#' term='mp3'/><title type='text'>Lossless concatenation of mp3 files</title><content type='html'>&lt;code style="font-family: courier new;"&gt;cat file list... | ffmpeg -f mp3 -i - -acodec copy outfile.mp3&lt;/code&gt;
Source: &lt;a href="http://lyncd.com/2009/02/how-to-merge-mp3-files/"&gt;http://lyncd.com/2009/02/how-to-merge-mp3-files/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-111642729378827830?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/111642729378827830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=111642729378827830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/111642729378827830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/111642729378827830'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2010/01/lossless-concatenation-of-mp3-files.html' title='Lossless concatenation of mp3 files'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-8711599500725317680</id><published>2010-01-03T12:54:00.001+01:00</published><updated>2010-01-03T12:55:52.056+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='GIT'/><title type='text'>Easy GIT</title><content type='html'>&lt;a href="http://www.gnome.org/%7Enewren/eg/"&gt;Easy GIT&lt;/a&gt; is a single-file wrapper script for &lt;a href="http://git.or.cz/"&gt;git&lt;/a&gt;, designed to make git easy to learn and use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-8711599500725317680?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/8711599500725317680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=8711599500725317680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/8711599500725317680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/8711599500725317680'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2010/01/easy-git.html' title='Easy GIT'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-8122732828171723012</id><published>2009-11-16T10:22:00.000+01:00</published><updated>2009-11-16T10:23:40.685+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Bugs'/><title type='text'>Buttons in Eclipse not working correctly with GTK+ 2.18.1-1</title><content type='html'>&lt;a href="https://bugs.launchpad.net/gtk/+bug/442078"&gt;https://bugs.launchpad.net/gtk/+bug/442078&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-8122732828171723012?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/8122732828171723012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=8122732828171723012' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/8122732828171723012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/8122732828171723012'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/11/buttons-in-eclipse-not-working.html' title='Buttons in Eclipse not working correctly with GTK+ 2.18.1-1'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-6996044337473900746</id><published>2009-11-05T11:21:00.001+01:00</published><updated>2009-11-05T11:23:09.309+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Admin'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Lazy Linux: 10 essential tricks for admins</title><content type='html'>&lt;a href="http://www.ibm.com/developerworks/linux/library/l-10sysadtips/?S_TACT=105AGY46&amp;amp;S_CMP=ART"&gt;How to be a more productive Linux systems administrator&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-6996044337473900746?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/6996044337473900746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=6996044337473900746' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/6996044337473900746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/6996044337473900746'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/11/lazy-linux-10-essential-tricks-for.html' title='Lazy Linux: 10 essential tricks for admins'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-7363821478378286852</id><published>2009-10-29T09:35:00.001+01:00</published><updated>2009-10-29T09:44:38.257+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mindmap'/><title type='text'>XMind</title><content type='html'>&lt;a href="http://www.xmind.net/"&gt;XMind&lt;/a&gt; is now royalty-free and open source software. This means when you want to use an XMind fishbone in a spreadsheet, put your photos and media files into a mind map, or reuse your Freemind/MindManager files, you're free to use XMind without charge. You can even add XMind or XMind Pro as plug-ins into your Eclipse-based enterprise environment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-7363821478378286852?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/7363821478378286852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=7363821478378286852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/7363821478378286852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/7363821478378286852'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/10/xmind.html' title='XMind'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-8793232974026470133</id><published>2009-10-11T11:10:00.003+02:00</published><updated>2009-10-11T11:14:03.456+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><title type='text'>Robocode</title><content type='html'>&lt;a href="http://robocode.sourceforge.net/"&gt;http://robocode.sourceforge.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-8793232974026470133?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/8793232974026470133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=8793232974026470133' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/8793232974026470133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/8793232974026470133'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/10/robocode.html' title='Robocode'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-2247951115260420557</id><published>2009-10-11T11:07:00.000+02:00</published><updated>2009-10-11T11:08:37.951+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><title type='text'></title><content type='html'>&lt;a href="http://ufoai.sourceforge.net/"&gt;UFO: Alien Invasion&lt;/a&gt; is a strategy game featuring tactical combat against hostile alien forces which are about to infiltrate earth at this very moment. You are in command of a small special unit which has been founded to face the alien strike force. To be successful on the long run, you will also have to have a research team study the aliens and their technologies in order to learn as much as possible about their technology, their goals and the aliens themselves.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-2247951115260420557?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/2247951115260420557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=2247951115260420557' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/2247951115260420557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/2247951115260420557'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/10/ufo-alien-invasion-is-strategy-game.html' title=''/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-4223520509865941278</id><published>2009-10-11T11:05:00.001+02:00</published><updated>2009-10-11T11:06:59.717+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><title type='text'>Spring Engine</title><content type='html'>&lt;a href="http://springrts.com/"&gt;Spring&lt;/a&gt; is a project aiming to create a new and versatile RTS Engine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-4223520509865941278?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/4223520509865941278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=4223520509865941278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/4223520509865941278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/4223520509865941278'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/10/spring-engine.html' title='Spring Engine'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-4051845294466036680</id><published>2009-09-20T21:24:00.001+02:00</published><updated>2009-09-20T21:27:08.301+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Debug'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Disassembler'/><title type='text'>PEiD</title><content type='html'>&lt;strong style="font-weight: normal;"&gt;&lt;a href="http://www.peid.info/"&gt;PEiD&lt;/a&gt; detects most common packers, cryptors and compilers for PE files. It can currently detect more than 600 different signatures in PE files.&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-4051845294466036680?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/4051845294466036680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=4051845294466036680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/4051845294466036680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/4051845294466036680'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/09/peid.html' title='PEiD'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-2886756097247034779</id><published>2009-09-20T21:21:00.001+02:00</published><updated>2009-09-20T21:27:34.965+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Debug'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Disassembler'/><title type='text'>OllyDbg</title><content type='html'>&lt;a href="http://www.ollydbg.de/"&gt;OllyDbg&lt;/a&gt; is a 32-bit assembler level analysing debugger for Microsoft&lt;sup&gt;®&lt;/sup&gt; Windows&lt;sup&gt;®&lt;/sup&gt;. Emphasis on &lt;b&gt;binary code analysis&lt;/b&gt; makes it particularly useful in cases where source is unavailable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-2886756097247034779?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/2886756097247034779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=2886756097247034779' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/2886756097247034779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/2886756097247034779'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/09/ollydbg.html' title='OllyDbg'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-2809991725050159527</id><published>2009-09-13T17:36:00.001+02:00</published><updated>2009-09-13T17:36:53.093+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>haXe</title><content type='html'>&lt;p&gt;&lt;b&gt;haXe&lt;/b&gt; (pronounced as &lt;em&gt;hex&lt;/em&gt;) is an &lt;em&gt;open source&lt;/em&gt; programming language.&lt;/p&gt; &lt;p&gt;While most other languages are bound to their own platform (Java to the JVM, C# to .Net, ActionScript to the Flash Player), &lt;b&gt;haXe&lt;/b&gt; is a &lt;em&gt;multiplatform language&lt;/em&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-2809991725050159527?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/2809991725050159527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=2809991725050159527' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/2809991725050159527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/2809991725050159527'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/09/haxe.html' title='haXe'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-7193295036019992395</id><published>2009-08-30T16:57:00.001+02:00</published><updated>2009-08-30T16:58:58.112+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Hemisphere Games</title><content type='html'>Enter the ambient world of &lt;a href="http://www.hemispheregames.com/osmos/"&gt;Osmos&lt;/a&gt;: elegant, physics-based gameplay, dreamlike visuals, and a minimalist, electronic soundtrack.

Your objective is to grow by absorbing other motes. Propel yourself by ejecting matter behind you. But be wise: ejecting matter also shrinks you. Relax… good things come to those who wait.

Progress from serenely ambient levels into varied and more challenging worlds. Confront attractors, repulsors and intelligent motes with similar abilities and goals as you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-7193295036019992395?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/7193295036019992395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=7193295036019992395' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/7193295036019992395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/7193295036019992395'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/08/hemisphere-games.html' title='Hemisphere Games'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-6316407730737119527</id><published>2009-08-29T21:26:00.000+02:00</published><updated>2009-08-29T21:27:18.651+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Livecd'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>netboot.me</title><content type='html'>&lt;a href="http://www.netboot.me/"&gt;netboot.me&lt;/a&gt; is a service that allows you to boot nearly any operating system     or utility on any computer with a wired internet connection - without having to     know ahead of time what you'll want to boot. Once you can netboot.me, you never     need to update your boot disk again!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-6316407730737119527?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/6316407730737119527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=6316407730737119527' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/6316407730737119527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/6316407730737119527'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/08/netbootme.html' title='netboot.me'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-2557127120708145103</id><published>2009-08-29T15:07:00.001+02:00</published><updated>2009-08-29T15:08:27.177+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='AVI'/><title type='text'>DivFix++</title><content type='html'>&lt;a href="http://divfixpp.sourceforge.net/"&gt;DivFix++&lt;/a&gt; repairs AVI files which other programs couldn't...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-2557127120708145103?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/2557127120708145103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=2557127120708145103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/2557127120708145103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/2557127120708145103'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/08/divfix.html' title='DivFix++'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-2989376602711975274</id><published>2009-08-19T13:15:00.000+02:00</published><updated>2009-08-19T13:16:15.000+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>Browser Security Handbook</title><content type='html'>&lt;a href="http://code.google.com/p/browsersec/"&gt;Browser Security Handbook&lt;/a&gt; is meant to provide web application developers, browser engineers, and information security researchers with a one-stop reference to key security properties of contemporary web browsers. Insufficient understanding of these often poorly-documented characteristics is a major contributing factor to the prevalence of several classes of security vulnerabilities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-2989376602711975274?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/2989376602711975274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=2989376602711975274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/2989376602711975274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/2989376602711975274'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/08/browser-security-handbook.html' title='Browser Security Handbook'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-8897547131364703313</id><published>2009-08-16T16:46:00.003+02:00</published><updated>2009-08-16T16:47:34.620+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Audio'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Split wave by cue file</title><content type='html'>&lt;strong style="font-weight: normal; font-family: courier new;"&gt;cuebreakpoints audio.cue | shnsplit -o wav audio.wav&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-8897547131364703313?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/8897547131364703313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=8897547131364703313' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/8897547131364703313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/8897547131364703313'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/08/split-wave-by-cue-file.html' title='Split wave by cue file'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-5467579762590140104</id><published>2009-08-10T09:22:00.000+02:00</published><updated>2009-08-10T09:23:06.376+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Graphics'/><title type='text'></title><content type='html'>&lt;a href="http://sourceforge.net/projects/imageenlarger/"&gt;SmillaEnlarger&lt;/a&gt; is a small graphical tool ( based on Qt ) to resize, especially magnify bitmaps in high quality.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-5467579762590140104?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/5467579762590140104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=5467579762590140104' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/5467579762590140104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/5467579762590140104'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/08/smillaenlarger-is-small-graphical-tool.html' title=''/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-3502325834645446199</id><published>2009-08-07T11:08:00.003+02:00</published><updated>2009-08-07T11:10:40.314+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Freeware Windows Disk Defragmentation</title><content type='html'>&lt;a href="http://www.mydefrag.com/"&gt;http://www.mydefrag.com&lt;/a&gt;

MyDefrag is a disk defragmenter and optimizer     (a maintenance utility to make your harddisk faster)     for Windows 2000, 2003, XP, Vista, 2008, and for X64.     It is freeware, no time limit, fully functional, no advertisements.     Fast, low overhead, with many optimization strategies, can handle floppies, USB     disks, memory sticks, and anything else that looks like a disk to Windows.     Included are a set of easy to use scripts for endusers, a scripting engine for     demanding users, a screensaver, and a combined Windows plus commandline version     that can be scheduled by the Windows task scheduler or for use from administrator     scripts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-3502325834645446199?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/3502325834645446199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=3502325834645446199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/3502325834645446199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/3502325834645446199'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/08/freeware-windows-disk-defragmentation.html' title='Freeware Windows Disk Defragmentation'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-2142839548814805362</id><published>2009-08-05T09:40:00.000+02:00</published><updated>2009-08-05T09:41:10.054+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LaTeX'/><title type='text'>Unofficial class for European curricula vitae</title><content type='html'>&lt;a href="http://texcatalogue.sarovar.org/entries/europecv.html"&gt;http://texcatalogue.sarovar.org/entries/europecv.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-2142839548814805362?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/2142839548814805362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=2142839548814805362' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/2142839548814805362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/2142839548814805362'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/08/unofficial-class-for-european-curricula.html' title='Unofficial class for European curricula vitae'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-1521796359729909258</id><published>2009-08-02T09:49:00.002+02:00</published><updated>2009-08-02T09:50:14.343+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Netbeans'/><title type='text'>GUI for NetBeans Startup Settings</title><content type='html'>&lt;a href="http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=6829"&gt;http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=6829&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-1521796359729909258?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/1521796359729909258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=1521796359729909258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/1521796359729909258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/1521796359729909258'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/08/gui-for-netbeans-startup-settings.html' title='GUI for NetBeans Startup Settings'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-2137408804778105575</id><published>2009-07-18T12:50:00.002+02:00</published><updated>2009-07-18T12:54:46.283+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Blender'/><title type='text'>Running Blender with a broken OpenGL driver</title><content type='html'>&lt;span style="font-weight: bold;font-family:courier new;" &gt;LIBGL_ALWAYS_SOFTWARE=1 blender &lt;/span&gt;

this fixes the broken screen updates, but is (naturally) slower than hardware OpenGL&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-2137408804778105575?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/2137408804778105575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=2137408804778105575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/2137408804778105575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/2137408804778105575'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/07/running-blender-with-broken-opengl.html' title='Running Blender with a broken OpenGL driver'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4492147817683247981.post-7806884417681982980</id><published>2009-07-10T17:57:00.002+02:00</published><updated>2009-07-10T17:58:38.784+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Livecd'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>UNetbootin</title><content type='html'>UNetbootin allows you to create bootable Live USB drives for a variety of Linux distributions from Windows or Linux, without requiring you to burn a CD.
&lt;a href="http://unetbootin.sourceforge.net"&gt;http://unetbootin.sourceforge.net&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4492147817683247981-7806884417681982980?l=waste-sorting.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://waste-sorting.blogspot.com/feeds/7806884417681982980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4492147817683247981&amp;postID=7806884417681982980' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/7806884417681982980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4492147817683247981/posts/default/7806884417681982980'/><link rel='alternate' type='text/html' href='http://waste-sorting.blogspot.com/2009/07/unetbootin.html' title='UNetbootin'/><author><name>Lugaru</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
