<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>my2cents</title>
	<atom:link href="http://www.frightanic.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.frightanic.com</link>
	<description>&#34;The Earth was made round so that we would not see too far down the road&#34; - Karen Blixen</description>
	<lastBuildDate>Thu, 10 May 2012 06:34:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>How to add AccessDescisionVoters to AccessDescisionManager in Spring Security</title>
		<link>http://www.frightanic.com/2012/05/10/how-to-add-accessdescisionvoters-to-accessdescisionmanager-in-spring-security/</link>
		<comments>http://www.frightanic.com/2012/05/10/how-to-add-accessdescisionvoters-to-accessdescisionmanager-in-spring-security/#comments</comments>
		<pubDate>Thu, 10 May 2012 06:34:27 +0000</pubDate>
		<dc:creator>Marcel Stör</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Spring Security]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=879</guid>
		<description><![CDATA[Here&#8217;s a pretty neat approach to add AccessDescisionVoters to the default AccessDescisionManager in Spring Security: /** * This BeanPostProcessor adds all {@link AccessDecisionVoter}s that are set with * {@link #setAdditionalAccessDecisionVoters(List)} to beans that are instances of {@link AffirmativeBased}. This is the * default {@link AccessDecisionManager} implementation that the spring security namespace handler creates. * &#60;p&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a pretty neat approach to add AccessDescisionVoters to the default AccessDescisionManager in Spring Security:</p>
<pre class="brush:java">/**
 * This BeanPostProcessor adds all {@link AccessDecisionVoter}s that are set with
 * {@link #setAdditionalAccessDecisionVoters(List)} to beans that are instances of {@link AffirmativeBased}. This is the
 * default {@link AccessDecisionManager} implementation that the spring security namespace handler creates.
 * &lt;p&gt;
 *
 * The configuration could look like:
 *
 * &lt;pre&gt;
 * {@code
 * &lt;bean id="voterAdder"&gt;
 *   &lt;property name="additionalAccessDecisionVoters"&gt;
 *     &lt;list&gt;
 *       &lt;bean /&gt;
 *     &lt;/list&gt;
 *   &lt;/property&gt;
 * &lt;/bean&gt;
 * }
 * &lt;/pre&gt;
 */
@Component
public class VoterAdder implements BeanPostProcessor {
  private List&lt;AccessDecisionVoter&gt; additionalAccessDecisionVoters;

  public void setAdditionalAccessDecisionVoters(List&lt;AccessDecisionVoter&gt; additionalAccessDecisionVoters) {
    this.additionalAccessDecisionVoters = additionalAccessDecisionVoters;
  }

  @Override
  public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
    return bean;
  }

  @Override
  public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
    if (bean instanceof AffirmativeBased) {
      AffirmativeBased dm = (AffirmativeBased) bean;
      additionalAccessDecisionVoters.addAll(dm.getDecisionVoters());
      dm.setDecisionVoters(additionalAccessDecisionVoters);
    }
    return bean;
  }
}</pre>
<p>Source: <a href="http://forum.springsource.org/showthread.php?116830-How-to-add-voters-to-the-default-accessDecisionManager&amp;s=1a6d05dedb0342570b900141a6d53d2e&amp;p=386079#post386079" target="_blank">http://forum.springsource.org/showthread.php?116830-How-to-add-voters-to-the-default-accessDecisionManager&amp;s=1a6d05dedb0342570b900141a6d53d2e&amp;p=386079#post386079</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2012/05/10/how-to-add-accessdescisionvoters-to-accessdescisionmanager-in-spring-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Connecting to MS SQL Server 2012 Express through JDBC failed</title>
		<link>http://www.frightanic.com/2012/04/30/connecting-to-ms-sql-server-2012-express-through-jdbc-failed/</link>
		<comments>http://www.frightanic.com/2012/04/30/connecting-to-ms-sql-server-2012-express-through-jdbc-failed/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 20:55:31 +0000</pubDate>
		<dc:creator>Marcel Stör</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[JDBC]]></category>
		<category><![CDATA[jTDS]]></category>
		<category><![CDATA[MS SQL]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=872</guid>
		<description><![CDATA[In order to test a particular feature of our JEE application I installed a free copy of MS SQL Server 2012 Express. I&#8217;m a total MS SQL illiterate. As always with MS SQL I used the jTDS JDBC driver to connect from Java. The first hurdle was to learn that MS SQL Express by default [...]]]></description>
			<content:encoded><![CDATA[<p>In order to test a particular feature of our JEE application I installed a free copy of MS SQL Server 2012 Express. I&#8217;m a total MS SQL illiterate. As always with MS SQL I used the <a href="http://sourceforge.net/projects/jtds/" target="_blank">jTDS JDBC driver</a> to connect from Java.</p>
<p>The first hurdle was to learn that MS SQL Express by default uses dynamic ports. To connect in a TCP/IP fashion from Java you need to <a href="http://msdn.microsoft.com/en-us/library/ms177440.aspx" target="_blank">configure static ports manually</a>.</p>
<p>This allowed me to connect from Oracle SQL Developer (using the jTDS driver) but connecting from my Java application failed: &#8220;Cannot open database &#8220;&lt;my-db-name&gt;&#8221; requested by the login. The login failed&#8221;. This felt really odd. I double-checked the JDBC connection string and was confident everything was in good order (<a href="http://datacleaner.eobjects.org/topic/267/MS-SQL-server-EXPRESS-connection-string" target="_blank">examples</a>).</p>
<p>I experimented for a few hours until I found the culprit: the MS SQL database contained a &#8216;-&#8217; in its name. So, this had to go. Why this failed in the app but not with Oracle SQL Developer I don&#8217;t know. Didn&#8217;t bother analyzing once the connection could be established, sorry&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2012/04/30/connecting-to-ms-sql-server-2012-express-through-jdbc-failed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convert Image to byte array in Java</title>
		<link>http://www.frightanic.com/2012/04/18/convert-image-to-byte-array-in-java/</link>
		<comments>http://www.frightanic.com/2012/04/18/convert-image-to-byte-array-in-java/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 13:55:57 +0000</pubDate>
		<dc:creator>Marcel Stör</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[BufferedImage]]></category>
		<category><![CDATA[byte]]></category>
		<category><![CDATA[image]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=822</guid>
		<description><![CDATA[final Image image = ...; final ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { final BufferedImage bufferedImage = createBufferedImageFrom(image); ImageIO.write(bufferedImage, "png", baos); } finally { IOUtils.closeQuietly(baos); } return baos.toByteArray(); private BufferedImage createBufferedImageFrom(final Image image) { if (image instanceof BufferedImage) { return (BufferedImage) image; } else { final BufferedImage bi = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_RGB); final Graphics2D [...]]]></description>
			<content:encoded><![CDATA[<pre class="brush:java">  final Image image = ...;
  final ByteArrayOutputStream baos = new ByteArrayOutputStream();
  try {
    final BufferedImage bufferedImage = createBufferedImageFrom(image);
    ImageIO.write(bufferedImage, "png", baos);
  } finally {
    IOUtils.closeQuietly(baos);
  }
  return baos.toByteArray();

private BufferedImage createBufferedImageFrom(final Image image) {
  if (image instanceof BufferedImage) {
    return (BufferedImage) image;
  } else {
    final BufferedImage bi = new BufferedImage(image.getWidth(null), image.getHeight(null),
        BufferedImage.TYPE_INT_RGB);
    final Graphics2D g2 = bi.createGraphics();
    g2.drawImage(image, 0, 0, null);
    return bi;
  }
}</pre>
<p>If you don&#8217;t want to make use of <code>IOUtils </code>from <a href="http://commons.apache.org/lang/" target="_blank">Apache Commons Lang</a>, you should you know, the code in the <code>finally </code>block would be something like</p>
<pre class="brush:java">
try {
  if (baos != null) {
    baos.close();
  }
} catch (IOException ioe) {
  // ignore
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2012/04/18/convert-image-to-byte-array-in-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Regex for GSM 03.38 7bit character set</title>
		<link>http://www.frightanic.com/2012/04/10/regex-for-gsm-03-38-7bit-character-set/</link>
		<comments>http://www.frightanic.com/2012/04/10/regex-for-gsm-03-38-7bit-character-set/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 21:38:08 +0000</pubDate>
		<dc:creator>Marcel Stör</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[gsm 03.38]]></category>
		<category><![CDATA[regexp]]></category>
		<category><![CDATA[regular expression]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=819</guid>
		<description><![CDATA[If your application sends SMS you want to make sure that characters to be sent comply with GSM 03.38 (e.g. 7bit). If you need to validate (user) input for invalid characters you could do that pretty easily with regular expressions. For Java the following regex is ready to use. For other languages you can base [...]]]></description>
			<content:encoded><![CDATA[<p>If your application sends SMS you want to make sure that characters to be sent comply with <a href="http://en.wikipedia.org/wiki/GSM_03.38#GSM_7_bit_default_alphabet_and_extension_table_of_3GPP_TS_23.038_.2F_GSM_03.38" target="_blank">GSM 03.38</a> (e.g. 7bit).</p>
<p>If you need to validate (user) input for invalid characters you could do that pretty easily with regular expressions. For Java the following regex is ready to use. For other languages you can base your implementation on the &#8220;pure&#8221; unescaped regex shown in the first line of  the code comment.</p>
<pre class="brush:java">/*-
 * ^[A-Za-z0-9 \r\n@£$¥èéùìòÇØøÅå\u0394_\u03A6\u0393\u039B\u03A9\u03A0\u03A8\u03A3\u0398\u039EÆæßÉ!"#$%&amp;'()*+,\-./:;&lt;=&gt;?¡ÄÖÑÜ§¿äöñüà^{}\\\[~\]|\u20AC]*$
 *
 * Assert position at the beginning of the string «^»
 * Match a single character present in the list below «[A-Za-z0-9 \r\n@£$¥èéùìòÇØøÅå\u0394_\u03A6\u0393\u039B\u03A9\u03A0\u03A8\u03A3\u0398\u039EÆæßÉ!"#$%&amp;'()*+,\-./:;&lt;=&gt;?¡ÄÖÑÜ§¿äöñüà^{}\\\[~\]|\u20AC]*»
 *    Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
 *    A character in the range between "A" and "Z" «A-Z»
 *    A character in the range between "a" and "z" «a-z»
 *    A character in the range between "0" and "9" «0-9»
 *    The character " " « »
 *    A carriage return character «\r»
 *    A line feed character «\n»
 *    One of the characters "@£$¥èéùìòÇØøÅå" «@£$¥èéùìòÇØøÅå»
 *    Unicode character U+0394 «\u0394», Greek capital Delta
 *    The character "_" «_»
 *    Unicode character U+03A6 «\u03A6», Greek capital Phi
 *    Unicode character U+0393 «\u0393», Greek capital Gamma
 *    Unicode character U+039B «\u039B», Greek capital Lambda
 *    Unicode character U+03A9 «\u03A9», Greek capital Omega
 *    Unicode character U+03A0 «\u03A0», Greek capital Pi
 *    Unicode character U+03A8 «\u03A8», Greek capital Psi
 *    Unicode character U+03A3 «\u03A3», Greek capital Sigma
 *    Unicode character U+0398 «\u0398», Greek capital Theta
 *    Unicode character U+039E «\u039E», Greek capital Xi
 *    One of the characters "ÆæßÉ!"#$%&amp;'()*+," «ÆæßÉ!"#$%&amp;'()*+,»
 *    A - character «\-»
 *    One of the characters "./:;&lt;=&gt;?¡ÄÖÑÜ§¿äöñüà^{}" «./:;&lt;=&gt;?¡ÄÖÑÜ§¿äöñüà^{}»
 *    A \ character «\\»
 *    A [ character «\[»
 *    The character "~" «~»
 *    A ] character «\]»
 *    The character "|" «|»
 *    Unicode character U+20AC «\u20AC», Euro sign
 * Assert position at the end of the string (or before the line break at the end of the string, if any) «$»
 */
public static final String GSM_CHARACTERS_REGEX = "^[A-Za-z0-9 \\r\\n@£$¥èéùìòÇØøÅå\u0394_\u03A6\u0393\u039B\u03A9\u03A0\u03A8\u03A3\u0398\u039EÆæßÉ!\"#$%&amp;'()*+,\\-./:;&lt;=&gt;?¡ÄÖÑÜ§¿äöñüà^{}\\\\\\[~\\]|\u20AC]*$";</pre>
<p>Geeh, who allowed the Greek to smuggle part of their alphabet into GSM 03.38? Since those characters don&#8217;t fit into Latin1 (ISO-8859-1) they should be UTF-8 encoded in the regex. More on that in this excellent regex tutorial: <a href="http://www.regular-expressions.info/unicode.html" target="_blank">http://www.regular-expressions.info/unicode.html</a>. Oh yes, and I <em>do</em> recommend using RegexBuddy &#8211; it really is my regex life-saver.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2012/04/10/regex-for-gsm-03-38-7bit-character-set/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Swiss ICT top 500 2011</title>
		<link>http://www.frightanic.com/2012/02/01/swiss-ict-top-500-2011/</link>
		<comments>http://www.frightanic.com/2012/02/01/swiss-ict-top-500-2011/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 08:20:43 +0000</pubDate>
		<dc:creator>Marcel Stör</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=815</guid>
		<description><![CDATA[http://www1.computerworld.ch/index.cfm?pid=184&#38;op=slc]]></description>
			<content:encoded><![CDATA[<p><a href="http://www1.computerworld.ch/index.cfm?pid=184&amp;op=slc" target="_blank">http://www1.computerworld.ch/index.cfm?pid=184&amp;op=slc</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2012/02/01/swiss-ict-top-500-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The hardest riddle on the Internet</title>
		<link>http://www.frightanic.com/2012/01/11/the-hardest-riddle-on-the-internet/</link>
		<comments>http://www.frightanic.com/2012/01/11/the-hardest-riddle-on-the-internet/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 21:27:54 +0000</pubDate>
		<dc:creator>Marcel Stör</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=812</guid>
		<description><![CDATA[By coincidence I dug up the long lost URL to a super interesting online riddle: http://www.deathball.net/notpron/]]></description>
			<content:encoded><![CDATA[<p>By coincidence I dug up the long lost URL to a super interesting online riddle: <a href="http://www.deathball.net/notpron/" target="_blank">http://www.deathball.net/notpron/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2012/01/11/the-hardest-riddle-on-the-internet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UnknownHostException with &#8216;%&#8217; in IPv6 address</title>
		<link>http://www.frightanic.com/2011/12/23/unknownhostexception-with-in-ipv6-address/</link>
		<comments>http://www.frightanic.com/2011/12/23/unknownhostexception-with-in-ipv6-address/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 08:46:56 +0000</pubDate>
		<dc:creator>Marcel Stör</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[dnsjava]]></category>
		<category><![CDATA[jee]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=808</guid>
		<description><![CDATA[Recently I tried to use dnsjava to resolve whatever address request.getRemoteAddr() would return. This worked very well in most cases. However, in some cases I would see something like: java.net.UnknownHostException: Invalid address: fe80::1d9:b65a:ed86:7940%11 Not being much of a networking expert I was puzzled about the &#8216;%11&#8242;. Once again superuser.com came to rescue:  http://superuser.com/questions/99746/why-is-there-a-in-the-ipv6-address.]]></description>
			<content:encoded><![CDATA[<p>Recently I tried to use <a href="http://www.dnsjava.org/" target="_blank">dnsjava</a> to resolve whatever address request.getRemoteAddr() would return. This worked very well in most cases. However, in some cases I would see something like:</p>
<pre class="brush:java">java.net.UnknownHostException: Invalid address: fe80::1d9:b65a:ed86:7940%11</pre>
<p>Not being much of a networking expert I was puzzled about the &#8216;%11&#8242;. Once again superuser.com came to rescue:  <a href="http://superuser.com/questions/99746/why-is-there-a-in-the-ipv6-address" target="_blank">http://superuser.com/questions/99746/why-is-there-a-in-the-ipv6-address</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2011/12/23/unknownhostexception-with-in-ipv6-address/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a bootable OS X Lion USB drive</title>
		<link>http://www.frightanic.com/2011/12/11/creating-a-bootable-os-x-lion-usb-drive/</link>
		<comments>http://www.frightanic.com/2011/12/11/creating-a-bootable-os-x-lion-usb-drive/#comments</comments>
		<pubDate>Sun, 11 Dec 2011 08:52:22 +0000</pubDate>
		<dc:creator>Marcel Stör</dc:creator>
				<category><![CDATA[Apple & Mac]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[OS X Lion]]></category>
		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=796</guid>
		<description><![CDATA[http://osxdaily.com/2011/07/08/make-a-bootable-mac-os-x-10-7-lion-installer-from-a-usb-flash-drive/ really helped.]]></description>
			<content:encoded><![CDATA[<p><a href="http://osxdaily.com/2011/07/08/make-a-bootable-mac-os-x-10-7-lion-installer-from-a-usb-flash-drive/" target="_blank">http://osxdaily.com/2011/07/08/make-a-bootable-mac-os-x-10-7-lion-installer-from-a-usb-flash-drive/</a> really helped.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2011/12/11/creating-a-bootable-os-x-lion-usb-drive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Corporate culture: Oracle vs. Sun</title>
		<link>http://www.frightanic.com/2011/11/19/corporate-culture-oracle-vs-sun/</link>
		<comments>http://www.frightanic.com/2011/11/19/corporate-culture-oracle-vs-sun/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 19:45:32 +0000</pubDate>
		<dc:creator>Marcel Stör</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Devoxx]]></category>
		<category><![CDATA[Devoxx 2011]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=805</guid>
		<description><![CDATA[At the technical panel discucssion on Friday morning at Devoxx there was the interesting question &#8220;Does Oracle&#8217;s corporate culture stand in the way of success for Java?&#8221;. Even more interesting was the answer from either Brian Goetz or Mark Reinold (don&#8217;t remember), both big wings at Oracle&#8230; &#8220;I think Java became a success despite Sun&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>At the technical panel discucssion on Friday morning at Devoxx there was the interesting question &#8220;Does Oracle&#8217;s corporate culture stand in the way of success for Java?&#8221;. Even more interesting was the answer from either Brian Goetz or Mark Reinold (don&#8217;t remember), both big wings at Oracle&#8230;</p>
<p>&#8220;I think Java became a success <em>despite</em> Sun&#8217;s corporate culture. Priorities at Sun changed quite rapidly from time to time. At Oracle it takes longer to make a plan but then with stick with it&#8221; (something along the lines of that)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2011/11/19/corporate-culture-oracle-vs-sun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle is in deep trouble</title>
		<link>http://www.frightanic.com/2011/11/17/oracle-is-in-deep-trouble/</link>
		<comments>http://www.frightanic.com/2011/11/17/oracle-is-in-deep-trouble/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 19:25:16 +0000</pubDate>
		<dc:creator>Marcel Stör</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Devoxx]]></category>
		<category><![CDATA[Devoxx 2011]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.frightanic.com/?p=788</guid>
		<description><![CDATA[The two keynotes at Devoxx 2011 yesterday by Henrik Ståhl and Cameron Purdy from Oracle and today by Google&#8217;s Tim Bray couldn&#8217;t have been more different. If that is all Oracle&#8217;s got to bring to the table then I fear they&#8217;re in big trouble&#8230; While Henrik Ståhl showed at least some passion and inspiration (neatly [...]]]></description>
			<content:encoded><![CDATA[<p>The two keynotes at Devoxx 2011 yesterday by Henrik Ståhl and Cameron Purdy from Oracle and today by Google&#8217;s Tim Bray couldn&#8217;t have been more different. If that is all Oracle&#8217;s got to bring to the table then I fear they&#8217;re in big trouble&#8230;</p>
<p>While Henrik Ståhl showed at least some passion and inspiration (neatly hidden underneath the Scandinavian cover) Cameron Purdy seemed to be nearly falling asleep himself flipping through his overloaded Oracle marketing slides. That he brought a colleague on stage who demonstrated the &#8220;cloud features&#8221; &#8211; gosh, how I hate this over-hyped cloud stuff &#8211; of the upcoming Glassfish 4.0 to<em> him</em>, instead of the audience, was seriously odd.</p>
<p>Tim Bray might be as high profile at Google Android as Ståhl/Purdy are at Oracle but there was pure passion pouring out of his mouth. Passion for software, passion for code, passion for improvement &#8211; and he spoke for himself and much less for Google*. He was vibrant and inspiring. Also, he was very humble and particularly respectful towards the Android competitors. Not a single rant or joke about iPhone or Windows Mobile 7 which he expects to catch up to Apple/Google pretty soon.</p>
<p>Tim Bray @Devoxx 2011:</p>
<ol>
<li>&#8220;Information wants to be free.&#8221;</li>
<li>&#8220;The absence of women is the elephant in the living room. It must be discussed.&#8221; on the lack of women @Devoxx showing <a href="http://en.wikipedia.org/wiki/Banksy" target="_blank">Banksy</a>&#8216;s famous <a href="http://images.fanpop.com/images/image_uploads/red-elephant-banksy-338521_800_501.jpg" target="_blank" rel="lightbox[788]">red elephant photo</a></li>
<li>&#8220;If you are not working on mobile you are away from the action.&#8221;</li>
<li>&#8220;&#8230;wouldn&#8217;t you rather feed the poor, cloth the naked, cure the sick?&#8221; on why it&#8217;d be so much more important to develop apps for people in the third world rather than for us westerns who lead a lifestyle that lacks nothing (mobile Internet access dwarfs &#8220;cable-based&#8221; access particularly in underdeveloped countries)</li>
<li>&#8220;The importance of static type checking is proportional to the number of APIs your coding against, but inversely proportional to easyness of unit testing.&#8221; or so</li>
</ol>
<p>* I&#8217;m neither an Android developer, and I don&#8217;t intend to become one, nor is it the mobile platform of my choice. I&#8217;m all Apple <img src='http://www.frightanic.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.frightanic.com/2011/11/17/oracle-is-in-deep-trouble/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

