<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3604934337836325839</id><updated>2024-09-13T12:33:43.789+02:00</updated><category term="Java"/><category term="RegExp"/><category term="communication"/><category term="government"/><category term="innovation"/><category term="mail"/><category term="security"/><category term="wisdomcard"/><title type='text'>Agile Power</title><subtitle type='html'>a pragmatic knowledge transfer</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://agilepower.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3604934337836325839/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://agilepower.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Max Jonas Werner</name><uri>http://www.blogger.com/profile/17416219464992157051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3604934337836325839.post-6156089958848525526</id><published>2009-02-25T11:55:00.001+01:00</published><updated>2009-02-25T12:08:32.106+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mail"/><category scheme="http://www.blogger.com/atom/ns#" term="wisdomcard"/><title type='text'>Is brevity really the soul of wit?</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtajj4a6fewg5aFUaMKtyvDoMDMvKdrTFt56y28G3q44Lckm1CLLUW-GlsDfdaUdvNZTVVlpA5SiNLc-RdVoqPFIlhpdBTlZh6eXI-AKTNnM4Lh3TF5N98F5c0xJZq9hxCcZtPWz_iGDJB/s1600-h/maillength.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 380px; height: 259px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtajj4a6fewg5aFUaMKtyvDoMDMvKdrTFt56y28G3q44Lckm1CLLUW-GlsDfdaUdvNZTVVlpA5SiNLc-RdVoqPFIlhpdBTlZh6eXI-AKTNnM4Lh3TF5N98F5c0xJZq9hxCcZtPWz_iGDJB/s400/maillength.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5306689836709009378&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;Inspired by &lt;a href=&quot;http://thisisindexed.com&quot;&gt;Indexed&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://agilepower.blogspot.com/feeds/6156089958848525526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://agilepower.blogspot.com/2009/02/is-brevity-really-soul-of-wit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3604934337836325839/posts/default/6156089958848525526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3604934337836325839/posts/default/6156089958848525526'/><link rel='alternate' type='text/html' href='http://agilepower.blogspot.com/2009/02/is-brevity-really-soul-of-wit.html' title='Is brevity really the soul of wit?'/><author><name>Max Jonas Werner</name><uri>http://www.blogger.com/profile/17416219464992157051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtajj4a6fewg5aFUaMKtyvDoMDMvKdrTFt56y28G3q44Lckm1CLLUW-GlsDfdaUdvNZTVVlpA5SiNLc-RdVoqPFIlhpdBTlZh6eXI-AKTNnM4Lh3TF5N98F5c0xJZq9hxCcZtPWz_iGDJB/s72-c/maillength.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3604934337836325839.post-5500780509508336467</id><published>2009-02-24T22:54:00.003+01:00</published><updated>2009-02-24T22:59:29.705+01:00</updated><title type='text'>Poster: Software Engineering Quotes</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4epZwdTGdtjYGYB5B8CcIhFrC0TssuyZna6wdiIioScQt558N3og6xjaPSl7KC5lZrk_uDBq0Vq6MBRiJzEbEE-jgZlVrhaOLoZBlLhCG_6MBys4gcxttkWGlEjZCfL0A_QSnJHx8l3c/s1600-h/SEQuotes.jpg&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 226px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4epZwdTGdtjYGYB5B8CcIhFrC0TssuyZna6wdiIioScQt558N3og6xjaPSl7KC5lZrk_uDBq0Vq6MBRiJzEbEE-jgZlVrhaOLoZBlLhCG_6MBys4gcxttkWGlEjZCfL0A_QSnJHx8l3c/s320/SEQuotes.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5306486403625870162&quot; /&gt;&lt;/a&gt;&lt;br /&gt;I few months ago Max and I discovered a cool site on hilarious quotes from famous tech people. We&#39;ve decided to compile a poster, which we wan&#39;t to share with you.&lt;div&gt;We hope you enjoy it, feel free to post further quotes. May be we can provide some updates from time to time.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilepower.blogspot.com/feeds/5500780509508336467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://agilepower.blogspot.com/2009/02/poster-software-engineering-quotes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3604934337836325839/posts/default/5500780509508336467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3604934337836325839/posts/default/5500780509508336467'/><link rel='alternate' type='text/html' href='http://agilepower.blogspot.com/2009/02/poster-software-engineering-quotes.html' title='Poster: Software Engineering Quotes'/><author><name>Chris</name><uri>http://www.blogger.com/profile/18104671277242737153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4epZwdTGdtjYGYB5B8CcIhFrC0TssuyZna6wdiIioScQt558N3og6xjaPSl7KC5lZrk_uDBq0Vq6MBRiJzEbEE-jgZlVrhaOLoZBlLhCG_6MBys4gcxttkWGlEjZCfL0A_QSnJHx8l3c/s72-c/SEQuotes.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3604934337836325839.post-1973391641279000239</id><published>2009-02-05T11:22:00.002+01:00</published><updated>2009-02-05T12:15:15.853+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="communication"/><category scheme="http://www.blogger.com/atom/ns#" term="government"/><category scheme="http://www.blogger.com/atom/ns#" term="innovation"/><category scheme="http://www.blogger.com/atom/ns#" term="security"/><title type='text'>De-Mail</title><content type='html'>Yesterday a thing called &quot;De-Mail&quot; has hit the general public here in Germany, even the old bull of German news TV &lt;a href=&quot;http://www.tagesschau.de/multimedia/video/video445530.html&quot;&gt;picked it up&lt;/a&gt;. (German only). For those of you who don&#39;t know what De-Mail is (as did I until recently): De-Mail is ought to be a service centrally controlled by the government to offer a legally valid and secure transfer of documents etc. The aim is to allow for official errands to be handled from home. The minimal prerequisite to accomplish that is to register at one of the official partners for an e-mail address.&lt;br /&gt;&lt;br /&gt;After I learned about this governmental effort yesterday I read some articles about it and must say that I can&#39;t believe it will be a big success (or a success at all). After all you have to register at one of the providers (the usual suspects Deutsche Telekom, T-Systems and Deutsche Post come into play here) and furthermore the fact that the whole project was initially started and is backed by the German government (more precisely by the department of the interior) makes this whole thing not more but less trustworthy. Honestly: Who does actually trust government more than a dedicated company, which in the first instance has no interest in spying out its customers (which the government - proving it again and again - definitely has)?&lt;br /&gt;&lt;br /&gt;Moreover: Why are the &quot;thinkers&quot; behind this project reinventing the wheel again as is also done again and again in other governmental projects? There &lt;span style=&quot;font-weight: bold;&quot;&gt;are &lt;/span&gt;mail services already and the tools for secure communication also &lt;span style=&quot;font-weight: bold;&quot;&gt;are&lt;/span&gt; out there. It would have been much more efficient, cheap and mass compatible if the whole project would have consisted of integrating &lt;span style=&quot;font-weight: bold;&quot;&gt;existing&lt;/span&gt; services (everyone already has an e-mail address and many out there already have e.g. a PGP key).&lt;br /&gt;&lt;br /&gt;My conclusion: De-Mail is doomed from the beginning.</content><link rel='replies' type='application/atom+xml' href='http://agilepower.blogspot.com/feeds/1973391641279000239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://agilepower.blogspot.com/2009/02/de-mail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3604934337836325839/posts/default/1973391641279000239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3604934337836325839/posts/default/1973391641279000239'/><link rel='alternate' type='text/html' href='http://agilepower.blogspot.com/2009/02/de-mail.html' title='De-Mail'/><author><name>Max Jonas Werner</name><uri>http://www.blogger.com/profile/17416219464992157051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3604934337836325839.post-27811064714688578</id><published>2009-02-04T23:07:00.006+01:00</published><updated>2009-02-04T23:37:14.111+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="RegExp"/><title type='text'>Java RegExp - Filter unicode character subset</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Task:&lt;/span&gt; Find a specific subset of unicode characters in a Java string. In the given case I was asked to prevent an upload of a malformed csv-file through a servlet. Before the file is written to the db the submitted file has to be checked for specified illegal characters like Chr(13) etc.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Solution:&lt;/span&gt; Usage of Java regular expressions.&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Java offers a wide range of possibilities to search within a string. I&#39;ve used the following code in my solution:&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: -webkit-monospace; font-size: 13px; white-space: pre; &quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: -webkit-monospace; font-size: 13px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: -webkit-monospace; font-size: 13px; white-space: pre; &quot;&gt;boolean containsInvalidCharacters(String s) { &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: -webkit-monospace; font-size: 13px; white-space: pre; &quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt; &lt;/span&gt;Pattern p = null;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: -webkit-monospace; font-size: 13px; white-space: pre; &quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt; &lt;/span&gt;Matcher m = null;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: -webkit-monospace; font-size: 13px; white-space: pre; &quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt; &lt;/span&gt;// Use a compiled pattern if you check serveral times for the same pattern&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: -webkit-monospace; font-size: 13px; white-space: pre; &quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt; &lt;/span&gt;p = Pattern.compile(&quot;[\u0000-\u0020[\u0100-\uFFFF]]&quot;); &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: -webkit-monospace; font-size: 13px; white-space: pre; &quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt; &lt;/span&gt;m = p.matcher(s); &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: -webkit-monospace; font-size: 13px; white-space: pre; &quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt; &lt;/span&gt;return m.find();&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 12px; &quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: -webkit-monospace; font-size: 13px; white-space: pre; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 12px; &quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;The pattern excludes all unicode characters between 0x0000 - 0x0020 and 0x100 - 0xFFFF. With the find function no .* or + is needed is addition to the pattern.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold; &quot;&gt;Nasty Traps: &lt;/span&gt;Be aware of the .&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(204, 0, 0);&quot;&gt;matches()&lt;/span&gt; method with is provided by the Matcher and the String class. This method checks for an exact match  with a given string. If you just want to check for the occurence  of a substring use &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 153, 0);&quot;&gt;.find()&lt;/span&gt; method.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Helpful links: &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; ;font-family:Times;&quot;&gt;&lt;span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;a href=&quot;http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt;java.util.regex&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;a href=&quot;http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt; Pattern Class (some examples)&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:Times;&quot;&gt;&lt;a href=&quot;http://www.torsten-horn.de/techdocs/ascii.htm&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt;ASCII &amp;amp; ANSI Table (for reference)&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; ;font-family:Times;&quot;&gt;&lt;a href=&quot;http://de.wikipedia.org/wiki/ISO_8859&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt;ISO 8859 - latin1 (normally used on windows machines e.g.)&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(85, 26, 139); font-weight: bold; text-decoration: underline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilepower.blogspot.com/feeds/27811064714688578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://agilepower.blogspot.com/2009/02/java-regexp-filter-unicode-character.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3604934337836325839/posts/default/27811064714688578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3604934337836325839/posts/default/27811064714688578'/><link rel='alternate' type='text/html' href='http://agilepower.blogspot.com/2009/02/java-regexp-filter-unicode-character.html' title='Java RegExp - Filter unicode character subset'/><author><name>Chris</name><uri>http://www.blogger.com/profile/18104671277242737153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>