<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://tedwise.com/wp-atom.php">
	<title type="text">Ted Wise</title>
	<subtitle type="text">Anything that interests me</subtitle>

	<updated>2010-02-07T22:47:05Z</updated>
	<generator uri="http://wordpress.org/" version="abc">WordPress</generator>

	<link rel="alternate" type="text/html" href="http://tedwise.com" />
	<id>http://tedwise.com/feed/atom/</id>
	

			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/TedWise" /><feedburner:info uri="tedwise" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>39.940043</geo:lat><geo:long>-75.597294</geo:long><entry>
		<author>
			<name>Ted Wise</name>
						<uri>http://tedwise.com</uri>
					</author>
		<title type="html"><![CDATA[Creating a circular gradient in iReport]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TedWise/~3/Eqkb18CHO-U/" />
		<id>http://tedwise.com/?p=965</id>
		<updated>2010-02-07T22:47:05Z</updated>
		<published>2010-02-07T22:47:05Z</published>
		<category scheme="http://tedwise.com" term="Java" /><category scheme="http://tedwise.com" term="circular gradient" /><category scheme="http://tedwise.com" term="iReport" /><category scheme="http://tedwise.com" term="JasperReports" /><category scheme="http://tedwise.com" term="PDF" />		<summary type="html"><![CDATA[<img src="http://tedwise.com/wp-content/uploads/2009/10/java.png" width="17" height="32" alt="" title="Java" /><br/>JasperReports is an extremely flexible tool for creating reports in Java.  Reports are defined as JRXML templates, compiled to JASPER binaries and run through the JasperReports run-time.  iReport is the GUI report writing tool that creates the JRXML templates.
A JRXML template is an XML file with a jrxml extension.  Here's an example of a very [...]]]></summary>
		<content type="html" xml:base="http://tedwise.com/2010/02/07/creating-a-circular-gradient-in-ireport/">&lt;img src="http://tedwise.com/wp-content/uploads/2009/10/java.png" width="17" height="32" alt="" title="Java" /&gt;&lt;br/&gt;&lt;p&gt;JasperReports is an extremely flexible tool for creating reports in &lt;a title="Java" href="http://tedwise.com/category/computing/java/"&gt;Java&lt;/a&gt;.  Reports are defined as JRXML templates, compiled to JASPER binaries and run through the JasperReports run-time.  iReport is the GUI report writing tool that creates the JRXML templates.&lt;/p&gt;
&lt;p&gt;A JRXML template is an XML file with a jrxml extension.  Here's an example of a very small template with a single parameter:&lt;/p&gt;
&lt;pre class="xml"&gt;&amp;nbsp;
&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;?xml&lt;/span&gt; &lt;span style="color: #000066;"&gt;version&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;encoding&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&lt;span style="font-weight: bold; color: black;"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;jasperReport&lt;/span&gt; &lt;span style="color: #000066;"&gt;xmlns&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;http://jasperreports.sourceforge.net/jasperreports&amp;quot;&lt;/span&gt;
              &lt;span style="color: #000066;"&gt;xmlns:xsi&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;/span&gt;
              &lt;span style="color: #000066;"&gt;xsi:schemaLocation&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd&amp;quot;&lt;/span&gt;
              &lt;span style="color: #000066;"&gt;name&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;comments&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;pageWidth&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;554&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;pageHeight&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;802&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;columnWidth&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;554&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;leftMargin&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;rightMargin&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;0&amp;quot;&lt;/span&gt;
              &lt;span style="color: #000066;"&gt;topMargin&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;bottomMargin&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;parameter&lt;/span&gt; &lt;span style="color: #000066;"&gt;name&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;displayValue&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;class&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;java.lang.String&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;isForPrompting&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span style="font-weight: bold; color: black;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;pageHeader&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;band&lt;/span&gt; &lt;span style="color: #000066;"&gt;height&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;120&amp;quot;&lt;/span&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;image&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;reportElement&lt;/span&gt; &lt;span style="color: #000066;"&gt;x&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;339&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;y&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;44&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;width&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;65&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;height&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;12&amp;quot;&lt;/span&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/reportElement&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;imageExpression&lt;/span&gt; &lt;span style="color: #000066;"&gt;class&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;net.sf.jasperreports.engine.JRRenderable&amp;quot;&lt;/span&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span style="color: #339933;"&gt;&amp;lt;![CDATA[new com.report.jasper.CircularGradientImageRenderer(&amp;quot;#00FF00&amp;quot;)]]&amp;gt;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/imageExpression&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/image&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;textField&lt;/span&gt; &lt;span style="color: #000066;"&gt;isBlankWhenNull&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;reportElement&lt;/span&gt; &lt;span style="color: #000066;"&gt;x&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;339&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;y&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;44&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;width&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;65&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;height&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;12&amp;quot;&lt;/span&gt;&lt;span style="font-weight: bold; color: black;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;textElement&lt;/span&gt; &lt;span style="color: #000066;"&gt;textAlignment&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;Center&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;verticalAlignment&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;Middle&amp;quot;&lt;/span&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;font&lt;/span&gt; &lt;span style="color: #000066;"&gt;fontName&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;DejaVu Sans&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;size&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;7&amp;quot;&lt;/span&gt;&lt;span style="font-weight: bold; color: black;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/textElement&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;textFieldExpression&lt;/span&gt; &lt;span style="color: #000066;"&gt;class&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;java.lang.String&amp;quot;&lt;/span&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #339933;"&gt;&amp;lt;![CDATA[$P{displayValue}]]&amp;gt;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/textFieldExpression&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/textField&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/band&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/pageHeader&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&lt;span style="font-weight: bold; color: black;"&gt;&amp;lt;/jasperReport&lt;span style="font-weight: bold; color: black;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&amp;nbsp;&lt;/pre&gt;
&lt;p&gt;A common requirement when displaying values is to highlight them by displaying them with a background color.  But many background colors can cause values to be difficult to read or can make values illegible when reports are faxed or copied in black-and-white.&lt;/p&gt;
&lt;p&gt;To get around this, a circular gradient background can be used.  The resulting background looks like this:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://tedwise.com/wp-content/uploads/2010/02/gradient_background.jpg"&gt;&lt;img src="http://tedwise.com/wp-content/uploads/2010/02/gradient_background.jpg" alt="" title="gradient_background" width="95" height="45" class="aligncenter size-full wp-image-966" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;iReport lets you place images on a report that can come from a physical file or can be dynamically generated.  In our case, we'll write a simple Java class that will generate the gradient background.  Note that the example provided here will only work when generating PDF reports.&lt;/p&gt;
&lt;pre class="java"&gt;&amp;nbsp;
&lt;span style="color: #000000; font-weight: bold;"&gt;package&lt;/span&gt; com.&lt;span style="color: #006600;"&gt;report&lt;/span&gt;.&lt;span style="color: #006600;"&gt;jasper&lt;/span&gt;;
&amp;nbsp;
&lt;span style="color: #a1a100;"&gt;import java.awt.*;&lt;/span&gt;
&lt;span style="color: #a1a100;"&gt;import java.awt.geom.AffineTransform;&lt;/span&gt;
&lt;span style="color: #a1a100;"&gt;import java.awt.geom.Rectangle2D;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #a1a100;"&gt;import net.sf.jasperreports.engine.JRAbstractSvgRenderer;&lt;/span&gt;
&lt;span style="color: #a1a100;"&gt;import net.sf.jasperreports.engine.JRException;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #808080; font-style: italic;"&gt;/**
 * Draws a colored, circular gradient background used in the report.
 */&lt;/span&gt;
&lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;class&lt;/span&gt; CircularGradientImageRenderer &lt;span style="color: #000000; font-weight: bold;"&gt;extends&lt;/span&gt; JRAbstractSvgRenderer &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;
    &lt;span style="color: #808080; font-style: italic;"&gt;/**
     * The gradient color.
     */&lt;/span&gt;
    &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AString+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;String&lt;/span&gt;&lt;/a&gt; rgb;
&amp;nbsp;
    &lt;span style="color: #808080; font-style: italic;"&gt;/**
     * Create a circular gradient image in a bounded square.
     *
     * @param rgb The gradient color.
     */&lt;/span&gt;
    &lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; CircularGradientImageRenderer&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AString+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;String&lt;/span&gt;&lt;/a&gt; rgb&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;
        &lt;span style="color: #000000; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #006600;"&gt;rgb&lt;/span&gt; = rgb;
    &lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style="color: #808080; font-style: italic;"&gt;/**
     * Pull out a substring without returning null.
     *
     * @param value The value.
     * @param begin The beginning index.
     * @param end   The ending index.
     * @return The substring.
     */&lt;/span&gt;
    &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;static&lt;/span&gt; &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AString+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;String&lt;/span&gt;&lt;/a&gt; safeSubstring&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AString+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;String&lt;/span&gt;&lt;/a&gt; value, &lt;span style="color: #993333;"&gt;int&lt;/span&gt; begin, &lt;span style="color: #993333;"&gt;int&lt;/span&gt; end&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;
        &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AString+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;String&lt;/span&gt;&lt;/a&gt; sub = &lt;span style="color: #ff0000;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;value != &lt;span style="color: #000000; font-weight: bold;"&gt;null&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;
            &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;value.&lt;span style="color: #006600;"&gt;length&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &amp;gt; begin&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;
                end = &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AMath+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;Math&lt;/span&gt;&lt;/a&gt;.&lt;span style="color: #006600;"&gt;min&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;end, value.&lt;span style="color: #006600;"&gt;length&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; - &lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;
                sub = value.&lt;span style="color: #006600;"&gt;substring&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;begin, end + &lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;
        &lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span style="color: #000000; font-weight: bold;"&gt;return&lt;/span&gt; sub;
    &lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style="color: #808080; font-style: italic;"&gt;/**
     * Parse a hex value without throwing an exception.
     *
     * @param value The value to convert.
     * @return The integer value.
     */&lt;/span&gt;
    &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;static&lt;/span&gt; &lt;span style="color: #993333;"&gt;int&lt;/span&gt; safeHexParse&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AString+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;String&lt;/span&gt;&lt;/a&gt; value&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;
        &lt;span style="color: #000000; font-weight: bold;"&gt;try&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;
            &lt;span style="color: #000000; font-weight: bold;"&gt;return&lt;/span&gt; &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AInteger+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;Integer&lt;/span&gt;&lt;/a&gt;.&lt;span style="color: #006600;"&gt;parseInt&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;value, &lt;span style="color: #cc66cc;"&gt;16&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;catch&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3ANumberFormatException+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;NumberFormatException&lt;/span&gt;&lt;/a&gt; e&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;
            &lt;span style="color: #000000; font-weight: bold;"&gt;return&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;;
        &lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;
    &lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style="color: #808080; font-style: italic;"&gt;/**
     * Convert a string hex color into a Java Color object.
     *
     * @param rgb The string value.
     * @return The Color object.
     */&lt;/span&gt;
    &lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;static&lt;/span&gt; &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AColor+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;Color&lt;/span&gt;&lt;/a&gt; stringToRGB&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AString+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;String&lt;/span&gt;&lt;/a&gt; rgb&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;
        &lt;span style="color: #993333;"&gt;int&lt;/span&gt; r = &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;;
        &lt;span style="color: #993333;"&gt;int&lt;/span&gt; g = &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;;
        &lt;span style="color: #993333;"&gt;int&lt;/span&gt; b = &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;;
&amp;nbsp;
        &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;rgb != &lt;span style="color: #000000; font-weight: bold;"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; rgb.&lt;span style="color: #006600;"&gt;startsWith&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;quot;#&amp;quot;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;
            r = safeHexParse&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;safeSubstring&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;rgb, &lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;, &lt;span style="color: #cc66cc;"&gt;2&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;
            g = safeHexParse&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;safeSubstring&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;rgb, &lt;span style="color: #cc66cc;"&gt;3&lt;/span&gt;, &lt;span style="color: #cc66cc;"&gt;4&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;
            b = safeHexParse&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;safeSubstring&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;rgb, &lt;span style="color: #cc66cc;"&gt;5&lt;/span&gt;, &lt;span style="color: #cc66cc;"&gt;6&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span style="color: #000000; font-weight: bold;"&gt;return&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AColor+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;Color&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;r, g, b&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #993333;"&gt;void&lt;/span&gt; render&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AGraphics2D+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;Graphics2D&lt;/span&gt;&lt;/a&gt; g2d, &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3ARectangle2D+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;Rectangle2D&lt;/span&gt;&lt;/a&gt; rect&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;throws&lt;/span&gt; JRException &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;
        &lt;span style="color: #808080; font-style: italic;"&gt;// Save the Graphics2D affine transform&lt;/span&gt;
        &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AAffineTransform+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;AffineTransform&lt;/span&gt;&lt;/a&gt; savedTrans = g2d.&lt;span style="color: #006600;"&gt;getTransform&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style="color: #993333;"&gt;float&lt;/span&gt; radius = &lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #993333;"&gt;float&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AMath+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;Math&lt;/span&gt;&lt;/a&gt;.&lt;span style="color: #006600;"&gt;max&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;rect.&lt;span style="color: #006600;"&gt;getHeight&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;, rect.&lt;span style="color: #006600;"&gt;getWidth&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; / &lt;span style="color: #cc66cc;"&gt;2&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style="color: #993333;"&gt;float&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#93;&lt;/span&gt; fractions = &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;.0f, &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;.3f, &lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;.0f&lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;;
        &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AColor+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;Color&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #66cc66;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#93;&lt;/span&gt; colors = &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AColor+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;Color&lt;/span&gt;&lt;/a&gt;.&lt;span style="color: #006600;"&gt;WHITE&lt;/span&gt;, &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AColor+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span style="color: #aaaadd; font-weight: bold;"&gt;Color&lt;/span&gt;&lt;/a&gt;.&lt;span style="color: #006600;"&gt;WHITE&lt;/span&gt;, stringToRGB&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;rgb&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style="color: #808080; font-style: italic;"&gt;// Paint a nice background...&lt;/span&gt;
        g2d.&lt;span style="color: #006600;"&gt;setPaint&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; RadialGradientPaint&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #993333;"&gt;float&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; rect.&lt;span style="color: #006600;"&gt;getCenterX&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;, &lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #993333;"&gt;float&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; rect.&lt;span style="color: #006600;"&gt;getCenterY&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;, radius, fractions, colors&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;
        g2d.&lt;span style="color: #006600;"&gt;fillRect&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;, &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;, &lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #993333;"&gt;int&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; rect.&lt;span style="color: #006600;"&gt;getWidth&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;, &lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #993333;"&gt;int&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; rect.&lt;span style="color: #006600;"&gt;getHeight&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;
        g2d.&lt;span style="color: #006600;"&gt;draw&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;rect&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style="color: #808080; font-style: italic;"&gt;// Restore the Graphics2D affine transform&lt;/span&gt;
        g2d.&lt;span style="color: #006600;"&gt;setTransform&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;savedTrans&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;
&lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;&lt;/pre&gt;
&lt;p&gt;This simple class is provided with a drawing rectangle and context by JasperReports.  It uses the Java RadialGradientPaint class to draw the circular gradient.  This class was added in Java 6 so don't go looking for it in earlier Java versions.&lt;/p&gt;
&lt;p&gt;To make this work in iReport, you create two items.  The first item is the background image.  Drag an image widget from the tool palette to the report.  iReport will prompt you for an image to display in the widget.  Press cancel.  We're dynamically creating the widget so we don't need an image file.  Place the image widget wherever you want the value displayed, and size it appropriately.&lt;/p&gt;
&lt;p&gt;Next, select the Image Expression property and press the ellipsis button next to the field.  A pop-up window will appear.  In that window, type the name of the Java class that will dynamically create the gradient background.  The class we're using takes an RGB color as a String parameter, so a red gradient would be "#FF0000".&lt;/p&gt;
&lt;p&gt;&lt;a href="http://tedwise.com/wp-content/uploads/2010/02/new-com.report....-Image-Expression.jpg"&gt;&lt;img src="http://tedwise.com/wp-content/uploads/2010/02/new-com.report....-Image-Expression-300x289.jpg" alt="" title="new com.report.... - Image Expression" width="300" height="289" class="aligncenter size-medium wp-image-967" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Next, set the Expression Class property.  Set the property to 'net.sf.jasperreports.engine.JRRenderable'.  This tells JasperReports that the custom class is writing a rendered image.  You could also write a Java class that created a 'java.awt.Image'.  But that is a fixed-pixel size image that won't scale appropriately in a PDF.&lt;/p&gt;
&lt;p&gt;Finally, we drag a Text Field widget onto the report.  Place it on top of the image widget created earlier and size it identically.  If you find that the text field ends up behind the image, select the image, right click it and choose Send to Back.&lt;/p&gt;
&lt;p&gt;Don't look at the raw XML trying to find a z-order attribute, you won't find one.  JasperReports represents z-order by the order elements appear in the XML file.  Elements that appear last overwrite elements that appear earlier in the file.&lt;/p&gt;
&lt;p&gt;That's all there is to it.  You can change the size of the inner white circle by tweaking the Java class.&lt;/p&gt;
&lt;pre class="java"&gt;&amp;nbsp;
&lt;span style="color: #993333;"&gt;float&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#93;&lt;/span&gt; fractions = &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;.0f, &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;.3f, &lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;.0f&lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;;
&amp;nbsp;&lt;/pre&gt;
&lt;p&gt;Move the center value (0.3f) up and down to find the right size.&lt;/p&gt;
&lt;p&gt;One last tip.  If you try to preview the report in iReport you might receive errors that the class can't be found.  Bring up the settings in iReport and add the path to the compiled class in the Classpath section.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=Eqkb18CHO-U:Z9PxmT-cldg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=Eqkb18CHO-U:Z9PxmT-cldg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?i=Eqkb18CHO-U:Z9PxmT-cldg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TedWise/~4/Eqkb18CHO-U" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://tedwise.com/2010/02/07/creating-a-circular-gradient-in-ireport/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://tedwise.com/2010/02/07/creating-a-circular-gradient-in-ireport/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://tedwise.com/2010/02/07/creating-a-circular-gradient-in-ireport/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Ted Wise</name>
						<uri>http://tedwise.com</uri>
					</author>
		<title type="html"><![CDATA[Larry&#8217;s vision of the cloud]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TedWise/~3/yDMvQWgmBYM/" />
		<id>http://tedwise.com/?p=963</id>
		<updated>2010-02-02T14:13:07Z</updated>
		<published>2010-02-02T14:13:07Z</published>
		<category scheme="http://tedwise.com" term="Computing" /><category scheme="http://tedwise.com" term="Amazon" /><category scheme="http://tedwise.com" term="Cloud Computing" /><category scheme="http://tedwise.com" term="Google" /><category scheme="http://tedwise.com" term="Oracle" />		<summary type="html"><![CDATA[<img src="http://tedwise.com/wp-content/uploads/2009/10/computer.png" width="32" height="32" alt="" title="Computing" /><br/>While taking a trip to sun.com today, I noticed that it's already redirecting to oracle.com.  And at the same moment I noticed that the headliner at oracle.com is an announcement about the Oracle Cloud Computing Forum.  Given Larry's well know views of the cloud, I found this amusing.  And a vision of Larry running a [...]]]></summary>
		<content type="html" xml:base="http://tedwise.com/2010/02/02/larrys-vision-of-the-cloud/">&lt;img src="http://tedwise.com/wp-content/uploads/2009/10/computer.png" width="32" height="32" alt="" title="Computing" /&gt;&lt;br/&gt;&lt;p&gt;While taking a trip to sun.com today, I noticed that it's already redirecting to oracle.com.  And at the same moment I noticed that the headliner at oracle.com is an announcement about the Oracle Cloud Computing Forum.  Given Larry's well know views of the cloud, I found this amusing.  And a vision of Larry running a cloud conference immediately came to mind.  Here's how I imagine a Cloud Computing Forum run by Larry Ellison would go:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Larry&lt;/strong&gt;: "Welcome to the Oracle Cloud Computing Forum.  Please take a seat.  There's been lots of talk about cloud computing and we here at Oracle wanted to share our own corporate vision.  Ready?  Here goes.  There IS NO cloud!  It's all a bunch of CRAP!  It's the same thing we've been doing for TWENTY FREAKING years!  You want a cloud?  Go buy our hardware and software you CHEAPSKATES!  Thank you, that concludes our forum.  I'd like to open the mic for questions."&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Random Guy&lt;/strong&gt;: "Isn't a cloud more then just a web site?"&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Larry&lt;/strong&gt;: "No.  Next question."&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Other Random Guy&lt;/strong&gt;: "Is a cloud just outsourcing your IT?"&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Larry&lt;/strong&gt;: "How many times do I have to tell you?  There IS NO cloud.  And yes, it's just outsourcing your IT.  And only idiots would do that.  Buy our hardware and software."&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Final Random Guy&lt;/strong&gt;: "What about Amazon's and Google's vision of the cloud?"&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Larry&lt;/strong&gt;: "Google is just hotelling web apps and any idiot can do that in their own data center.  Amazon is just hosting a big virtualization server and any idiot can do that too.  You want to swallow that crap?  Fine.  I'll buy your &lt;a title="company" href="http://tedwise.com/my-company/"&gt;company&lt;/a&gt; and fire you for being stupid, or you can just buy our hardware and software.  Now everyone go home, the conference is over."&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=yDMvQWgmBYM:YAsRt4Fe_zA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=yDMvQWgmBYM:YAsRt4Fe_zA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?i=yDMvQWgmBYM:YAsRt4Fe_zA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TedWise/~4/yDMvQWgmBYM" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://tedwise.com/2010/02/02/larrys-vision-of-the-cloud/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://tedwise.com/2010/02/02/larrys-vision-of-the-cloud/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://tedwise.com/2010/02/02/larrys-vision-of-the-cloud/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Ted Wise</name>
						<uri>http://tedwise.com</uri>
					</author>
		<title type="html"><![CDATA[Apple&#8217;s Trojan horse]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TedWise/~3/bqbR08nhPXU/" />
		<id>http://tedwise.com/?p=961</id>
		<updated>2010-02-02T14:08:25Z</updated>
		<published>2010-02-02T14:08:25Z</published>
		<category scheme="http://tedwise.com" term="iPhone" /><category scheme="http://tedwise.com" term="Apple" /><category scheme="http://tedwise.com" term="iPad" /><category scheme="http://tedwise.com" term="iPhone OS" /><category scheme="http://tedwise.com" term="OS/X" />		<summary type="html"><![CDATA[<img src="http://tedwise.com/wp-content/uploads/2009/10/iphone.png" width="17" height="32" alt="" title="iPhone" /><br/>Apple's trojan horse is the "computer as appliance".  They've managed to create devices that are almost as wide in scope and functionality as general computing devices but are easily accessible to non-technical people.  And, more importantly, don't need technical maintenance or an understanding of the computing underpinnings.
If it were just the App store, [...]]]></summary>
		<content type="html" xml:base="http://tedwise.com/2010/02/02/apples-trojan-horse/">&lt;img src="http://tedwise.com/wp-content/uploads/2009/10/iphone.png" width="17" height="32" alt="" title="iPhone" /&gt;&lt;br/&gt;&lt;p&gt;Apple's trojan horse is the "computer as appliance".  They've managed to create devices that are &lt;em&gt;almost&lt;/em&gt; as wide in scope and functionality as general computing devices but are easily accessible to non-technical people.  And, more importantly, don't need technical maintenance or an understanding of the computing underpinnings.&lt;/p&gt;
&lt;p&gt;If it were just the App store, then all of the new stores that other vendors have created would have propelled their devices off the shelves.&lt;/p&gt;
&lt;p&gt;If the iPad succeeds, it's because its an idiot-proof appliance.  And Apple isn't unique in knowing this.  Nobody has to setup their Kindle's file system.  Or figure out where that book they downloaded went.&lt;/p&gt;
&lt;p&gt;Do you want to know how the unreleased iPad works?  It works just like the &lt;a title="iPhone" href="http://tedwise.com/category/computing/mac/iphone/"&gt;iPhone&lt;/a&gt;.  It's the exact same operating system.  It's 90% of the same UI.  What are the major technical differences?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It's much faster.&lt;/li&gt;
&lt;li&gt;The OS now allows files to be exchanged both between iPad applications and with computers.&lt;/li&gt;
&lt;li&gt;It supports hardware bluetooth keyboards and custom on-screen touch keyboards.&lt;/li&gt;
&lt;li&gt;It has new UI elements that take advantage of a bigger screen.&lt;/li&gt;
&lt;li&gt;It supports external displays, aka the projector.&lt;/li&gt;
&lt;li&gt;And, lastly, it has a big, bright, sharp screen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks to the screen size and the CPU speed, the apps are going to be larger in scope.  There are apps for editing Microsoft Office files on the iPhone but no one uses them for more then display and minor touch-up.  The screen is too small, the device is too slow and it's too hard getting documents in and out.  The last two points will likely evaporate with the next iPhone refresh.  But the first one never will.&lt;/p&gt;
&lt;p&gt;But, at launch, Apple showed a mobile edition of iWork.  With a well thought-out gesture interface.  And, an application for drawing on the iPhone was reworked for large-scale drawing on the iPad.  You can run a sizable portion of Photoshop on the iPad.  And it makes sense to do it.  And, Mac software makers who weren't considering the iPhone are now announcing iPad plans.  Omni Group, who makes the Mac's equivalent of Visio, are halting existing development to create iPad versions of their applications.&lt;/p&gt;
&lt;p&gt;Why all this trouble?  Why not create a tablet running standard OS/X instead of iPhone OS?  After all, you could create an App Store for OS/X apps.  90% of Mac software doesn't even require an installer.  Again, it's because Apple is moving toward computing appliances.  Which means locked-down devices with restricted technical underpinnings.  And OS/X is wide open.  It has a standard filesystem.  It has drivers.  It has software that can get into the guts of the OS and need to be wiped to clear it out.  And for a consumer device you don't ever want to worry about, that's not good enough.&lt;/p&gt;
&lt;p&gt;The other vendors know it too.  Asus, the largest computer &lt;a title="company" href="http://tedwise.com/my-company/"&gt;company&lt;/a&gt; in the world, announced they aren't going to make a tablet.  Why?  Because they said Windows 7 can't compete with the iPhone OS on a tablet device.  And there's no way that mobile Windows can either.  And Android isn't close enough yet.&lt;/p&gt;
&lt;p&gt;If Apple is right, and this is a market that's been going either unserved or underserved by netbooks, then stand to make a killing.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=bqbR08nhPXU:giuVWGhl4U0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=bqbR08nhPXU:giuVWGhl4U0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?i=bqbR08nhPXU:giuVWGhl4U0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TedWise/~4/bqbR08nhPXU" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://tedwise.com/2010/02/02/apples-trojan-horse/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://tedwise.com/2010/02/02/apples-trojan-horse/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://tedwise.com/2010/02/02/apples-trojan-horse/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Ted Wise</name>
						<uri>http://tedwise.com</uri>
					</author>
		<title type="html"><![CDATA[Steve Jobs holds forth at Apple town hall]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TedWise/~3/oRmjaRlKJfE/" />
		<id>http://tedwise.com/?p=958</id>
		<updated>2010-01-31T23:12:54Z</updated>
		<published>2010-01-31T23:12:54Z</published>
		<category scheme="http://tedwise.com" term="Mac" /><category scheme="http://tedwise.com" term="Adobe" /><category scheme="http://tedwise.com" term="Android" /><category scheme="http://tedwise.com" term="Apple" /><category scheme="http://tedwise.com" term="Flash" /><category scheme="http://tedwise.com" term="Google" /><category scheme="http://tedwise.com" term="HTML5" /><category scheme="http://tedwise.com" term="iPad" /><category scheme="http://tedwise.com" term="iPhone" />		<summary type="html"><![CDATA[<img src="http://tedwise.com/wp-content/uploads/2009/10/apple.gif" width="32" height="32" alt="" title="Mac" /><br/>Steve Jobs held an internal town hall at Apple after the unveiling of the iPad.  Since secrecy is so tight, many at Apple had no idea the iPad was coming.  He took questions and second-hand commenters say he had a few choice comments.
He said that Apple bought Lala because they wanted their talent [...]]]></summary>
		<content type="html" xml:base="http://tedwise.com/2010/01/31/steve-jobs-holds-forth-at-apple-town-hall/">&lt;img src="http://tedwise.com/wp-content/uploads/2009/10/apple.gif" width="32" height="32" alt="" title="Mac" /&gt;&lt;br/&gt;&lt;p&gt;Steve Jobs held an internal town hall at Apple after the unveiling of the iPad.  Since secrecy is so tight, many at Apple had no idea the iPad was coming.  He took questions and second-hand commenters say he had a few choice comments.&lt;/p&gt;
&lt;p&gt;He said that Apple bought Lala because they wanted their talent for the iTunes team.&lt;/p&gt;
&lt;p&gt;He said that Apple didn't go into the search business but Google went into the phone business.  He feels that the Android team at Google (not the entire &lt;a title="company" href="http://tedwise.com/my-company/"&gt;company&lt;/a&gt;) would love to kill off the &lt;a title="iPhone" href="http://tedwise.com/category/computing/mac/iphone/"&gt;iPhone&lt;/a&gt;.  And he feels that the Google "do no evil" corporate mantra is a bunch of crap.&lt;/p&gt;
&lt;p&gt;According to Jobs, Apple is going to update the iPhone/iPad faster then Google can with the Android.  He also said that the next iPhone hardware update was going to be an "A+" update.  He rounded out the hardware talk by stating that the next Mac refresh was going to "take it to the next level".&lt;/p&gt;
&lt;p&gt;Finally, he lamented that the "kick-ass" Adobe of old was now a "lazy" company and that Flash was a dead technology.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;My take - Google has a split focus between their Google OS and Android.  What they're trying to accomplish - a netbook-like computing appliance, is EXACTLY what the iPad is.  Google's problem is they've decided that Android won't do what they want, so they've gone down the Google OS road as well.  This means they need double the resources and gain little between advances in one platform.  Google's approach is, ironically, the Microsoft approach.  Google is checking of technical functionality checkboxes at the expense of ease of use and paradigm shifts.  They'll probably sell a crap-load of Android devices but they're relegating themselves to the Microsoft second-tier in the mind of consumers.&lt;/p&gt;
&lt;p&gt;Will Apple really update their platform faster then Google will?  I have no idea.  They've let iPhone OS languish while the iPad was in development, we'll see if that picks back up now that the iPad is public.  The biggest problem for them is they're trying to forge new ground - looking for new approaches that differ from long-established solutions - like, a filesystem.  That's not a fast or simple process.&lt;/p&gt;
&lt;p&gt;From the hardware perspective its now assumed that the new Apple-designed A4 CPU will be coming to the iPhone.  Probably a speed-throttled version.  Maybe that's what Jobs means by an "A+" update.  It will probably have an increased screen resolution and a better camera.  Beyond that, I have no idea.&lt;/p&gt;
&lt;p&gt;And the Mac refresh he's talking about will be a switch to the new Intel i5 chipset.  This brings a significant jump in performance without a battery life impact.&lt;/p&gt;
&lt;p&gt;And finally, yes, he's correct.  Flash is a dead-end and it needs to die so that HTML5 moves forward.  Honestly, it's already happening at a much faster pace then I expected.  Google just announced they're killing IE 6 support in Google Docs and other web properties.  And YouTube and Vimeo now support HTML5 video in place of Flash.  That's coupled with announcements that, for the first time ever, the percentage of Flash-enabled user agents is dropping.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=oRmjaRlKJfE:1tuEXAEce6g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=oRmjaRlKJfE:1tuEXAEce6g:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?i=oRmjaRlKJfE:1tuEXAEce6g:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TedWise/~4/oRmjaRlKJfE" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://tedwise.com/2010/01/31/steve-jobs-holds-forth-at-apple-town-hall/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://tedwise.com/2010/01/31/steve-jobs-holds-forth-at-apple-town-hall/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://tedwise.com/2010/01/31/steve-jobs-holds-forth-at-apple-town-hall/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Ted Wise</name>
						<uri>http://tedwise.com</uri>
					</author>
		<title type="html"><![CDATA[Don&#8217;t misunderstand Oracle&#8217;s purchase of Sun]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TedWise/~3/m_hw5ljblmQ/" />
		<id>http://tedwise.com/?p=956</id>
		<updated>2010-01-31T16:42:27Z</updated>
		<published>2010-01-31T16:42:27Z</published>
		<category scheme="http://tedwise.com" term="Computing" /><category scheme="http://tedwise.com" term="Eclipse" /><category scheme="http://tedwise.com" term="GlassFish" /><category scheme="http://tedwise.com" term="IBM" /><category scheme="http://tedwise.com" term="Java" /><category scheme="http://tedwise.com" term="JDeveloper" /><category scheme="http://tedwise.com" term="MySQL" /><category scheme="http://tedwise.com" term="NetBeans" /><category scheme="http://tedwise.com" term="OpenSolaris" /><category scheme="http://tedwise.com" term="Oracle" /><category scheme="http://tedwise.com" term="Solaris" /><category scheme="http://tedwise.com" term="SPARC" /><category scheme="http://tedwise.com" term="Sun" />		<summary type="html"><![CDATA[<img src="http://tedwise.com/wp-content/uploads/2009/10/computer.png" width="32" height="32" alt="" title="Computing" /><br/>I was reading a blog post about what will happen now that Oracle has purchased Sun.  The poster repeated a number of fallacies that I've seen around the web.
1. MySQL is dead now.
MySQL is dead?  No its not.  Oracle has owned InnoDB and never once used it against MySQL users.  They own [...]]]></summary>
		<content type="html" xml:base="http://tedwise.com/2010/01/31/dont-misunderstand-oracles-purchase-of-sun/">&lt;img src="http://tedwise.com/wp-content/uploads/2009/10/computer.png" width="32" height="32" alt="" title="Computing" /&gt;&lt;br/&gt;&lt;p&gt;I was &lt;a href="http://developers-arena.blogspot.com/2010/01/oracle-buying-sun-will-change-it.html"&gt;reading a blog post &lt;/a&gt;about what will happen now that Oracle has purchased Sun.  The poster repeated a number of fallacies that I've seen around the web.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. MySQL is dead now.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;MySQL is dead?  No its not.  Oracle has owned InnoDB and never once used it against MySQL users.  They own BerkelyDB and support and sell it.  Oracle is attempting to own every segment of the market from the "Enterprise" to the "tactical".  They're placing MySQL at the tactical end.  They'll sell you MySQL support and attempt to upsell you if they get the opportunity.&lt;/p&gt;
&lt;p&gt;I'm no Oracle fan but they're not attempting to kill any open-source projects.  They're continuing to fund Glassfish, Hudson, Netbeans and numerous other open-source projects.  They're even continuing to donate to Eclipse.  And they intend to increase the community involvement in the &lt;a title="Java" href="http://tedwise.com/category/computing/java/"&gt;Java&lt;/a&gt; language.&lt;/p&gt;
&lt;p&gt;2. &lt;strong&gt;Solaris/OpenSolaris is going to be killed off.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Oracle is looking to combat IBM.  IBM's "secret sauce" in the lucrative Enterprise space is owning the entire stack, from the hardware, to the OS to the software running on top of it.  That's why Oracle is keeping Solaris and the SPARC hardware.  They'll tell Enterprise buyers that they'll get the pinnacle of speed and reliability with carefully developed and tuned software running on their own hardware.&lt;/p&gt;
&lt;p&gt;3. &lt;strong&gt;Oracle's plans for Java aren't clear and Netbeans is history.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Oracle says they're increasing community involvement.  They seem to want to move at least some of the R&amp;amp;D for Java out to the community.  And, again, Netbeans isn't history.  The official Oracle roadmap lists an increase in funding for Netbeans.  They intend to use Netbeans as the "tactical" IDE offering, while using JDeveloper as the Enterprise one.  Personally, I'd move everything to Netbeans (or Eclipse) and kill off that piece-of-crap JDeveloper, but I'm not Larry.&lt;/p&gt;
&lt;p&gt;4. &lt;strong&gt;SPARC is dead - Oracle isn't a hardware &lt;a title="company" href="http://tedwise.com/my-company/"&gt;company&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Oracle &lt;em&gt;wants&lt;/em&gt; to be in the hardware business.  That's how they intend to compete with IBM.  They see IBM as their competition, not Microsoft.  They're increasing the hardware push and co-branding them as Sun/Oracle.&lt;/p&gt;
&lt;p&gt;5. &lt;strong&gt;OpenOffice and VirtualBox are dead.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Oracle is starting up a new division to work on OpenOffice and they're integrating VirtualBox with Oracle VM.&lt;/p&gt;
&lt;p&gt;I'm no great fan of Oracle's business.  They make overly complicated and buggy software and then charge you an arm and leg to make it work.  But the Oracle DB is hands down the best database server on the market.  Larry intends to own everything including the kitchen sink and will sell you any part of that vast array of software.  And if the software is free, he'll sell you the support instead.&lt;/p&gt;
&lt;p&gt;I would greatly prefer that Oracle start uniting platforms and move to an open source model but, at least at present, that doesn't appear likely.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;References&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://java.dzone.com/articles/oracles-roadmap-sun"&gt;http://java.dzone.com/articles/oracles-roadmap-sun&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.oracle.com/ocom/groups/public/documents/webcontent/038563.pdf"&gt;http://www.oracle.com/ocom/groups/public/documents/webcontent/038563.pdf&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=m_hw5ljblmQ:F0MmgCEnHgU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=m_hw5ljblmQ:F0MmgCEnHgU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?i=m_hw5ljblmQ:F0MmgCEnHgU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TedWise/~4/m_hw5ljblmQ" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://tedwise.com/2010/01/31/dont-misunderstand-oracles-purchase-of-sun/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://tedwise.com/2010/01/31/dont-misunderstand-oracles-purchase-of-sun/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://tedwise.com/2010/01/31/dont-misunderstand-oracles-purchase-of-sun/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Ted Wise</name>
						<uri>http://tedwise.com</uri>
					</author>
		<title type="html"><![CDATA[Maven Micro-Tip: Get sources and Javadocs]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TedWise/~3/1ljah9ZBFnc/" />
		<id>http://tedwise.com/?p=953</id>
		<updated>2010-01-27T19:43:46Z</updated>
		<published>2010-01-27T13:52:33Z</published>
		<category scheme="http://tedwise.com" term="Java" /><category scheme="http://tedwise.com" term="Javadoc" /><category scheme="http://tedwise.com" term="Maven" /><category scheme="http://tedwise.com" term="Source code" /><category scheme="http://tedwise.com" term="Tip" />		<summary type="html"><![CDATA[<img src="http://tedwise.com/wp-content/uploads/2009/10/java.png" width="17" height="32" alt="" title="Java" /><br/>When you're using Maven in an IDE you often find the need for your IDE to resolve source code and Javadocs for your library dependencies.  There's an easy way to accomplish that goal.
# mvn dependency:sources
# mvn dependency:resolve -Dclassifier=javadoc
The first command will attempt to download source code for each of the dependencies in your pom file.
The [...]]]></summary>
		<content type="html" xml:base="http://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/">&lt;img src="http://tedwise.com/wp-content/uploads/2009/10/java.png" width="17" height="32" alt="" title="Java" /&gt;&lt;br/&gt;&lt;p&gt;When you're using Maven in an IDE you often find the need for your IDE to resolve source code and Javadocs for your library dependencies.  There's an easy way to accomplish that goal.&lt;/p&gt;
&lt;pre&gt;# mvn dependency:sources
# mvn dependency:resolve -Dclassifier=javadoc&lt;/pre&gt;
&lt;p&gt;The first command will attempt to download source code for each of the dependencies in your pom file.&lt;/p&gt;
&lt;p&gt;The second command will attempt to download the Javadocs.&lt;/p&gt;
&lt;p&gt;Maven is at the mercy of the library packagers here.  So some of them won't have source code packaged and many of them won't have Javadocs.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=1ljah9ZBFnc:mV7mbRQdUps:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=1ljah9ZBFnc:mV7mbRQdUps:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?i=1ljah9ZBFnc:mV7mbRQdUps:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TedWise/~4/1ljah9ZBFnc" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Ted Wise</name>
						<uri>http://tedwise.com</uri>
					</author>
		<title type="html"><![CDATA[The HTML5 video mess.  See it today!]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TedWise/~3/QytTGXBlMsw/" />
		<id>http://tedwise.com/?p=947</id>
		<updated>2010-01-22T14:10:25Z</updated>
		<published>2010-01-22T14:10:25Z</published>
		<category scheme="http://tedwise.com" term="Web" /><category scheme="http://tedwise.com" term="Chrome" /><category scheme="http://tedwise.com" term="Codec" /><category scheme="http://tedwise.com" term="Firefox" /><category scheme="http://tedwise.com" term="H.264" /><category scheme="http://tedwise.com" term="HTML5" /><category scheme="http://tedwise.com" term="Internet Explorer" /><category scheme="http://tedwise.com" term="Ogg Theora" /><category scheme="http://tedwise.com" term="Safari" /><category scheme="http://tedwise.com" term="video tag" /><category scheme="http://tedwise.com" term="Vimeo" /><category scheme="http://tedwise.com" term="YouTube" />		<summary type="html"><![CDATA[<img src="http://tedwise.com/wp-content/uploads/2009/10/web.png" width="29" height="32" alt="" title="Web" /><br/>Two giant video web sites are now running HTML5 video betas.  This means that you can use their sites without having Flash active.  Vimeo's setup is especially impressive in that it very closely mimics the Flash experience.
If you don't know what HTML5 video is, its an HTML video tag that will play video [...]]]></summary>
		<content type="html" xml:base="http://tedwise.com/2010/01/22/the-html5-video-mess-see-it-today/">&lt;img src="http://tedwise.com/wp-content/uploads/2009/10/web.png" width="29" height="32" alt="" title="Web" /&gt;&lt;br/&gt;&lt;p&gt;Two giant video web sites are now running HTML5 video betas.  This means that you can use their sites without having Flash active.  Vimeo's setup is especially impressive in that it very closely mimics the Flash experience.&lt;/p&gt;
&lt;p&gt;If you don't know what HTML5 video is, its an HTML video tag that will play video in the browser without requiring a Flash plugin.  More importantly, the browser can interact with the video using &lt;a title="JavaScript" href="http://tedwise.com/category/computing/web-computing/javascript/"&gt;JavaScript&lt;/a&gt; to display video overlays, control "scrubbing" of the video, etc.  Pretty much any interaction you can do with the Flash plugin can be done with HTML5 video.&lt;/p&gt;
&lt;p&gt;The YouTube beta needs to be activated by going to &lt;a href="http://www.youtube.com/html5"&gt;http://www.youtube.com/html5&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The Vimeo beta needs to be activated by clicking on an easy-to-miss link at the bottom right of each video's description.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://tedwise.com/wp-content/uploads/2010/01/Espresso-Intelligentsia-on-Vimeo.jpg"&gt;&lt;img class="aligncenter size-full wp-image-948" title="Espresso, Intelligentsia on Vimeo" src="http://tedwise.com/wp-content/uploads/2010/01/Espresso-Intelligentsia-on-Vimeo.jpg" alt="" width="456" height="341" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Both betas remain active once you select them.  Why would you use the HTML5 version?  Because Flash is often a vector for &lt;a title="security" href="http://tedwise.com/category/computing/security/"&gt;security&lt;/a&gt; problems and because Flash video decoding uses a large percentage of CPU.  A small side bonus is that video scrubbing is smoother with the HTML5 version.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;But most of you won't be able to use the betas&lt;/strong&gt;.  Because both betas require a browser that supports the HTML5 video tag, but, in addition, also supports the H.264 video codec.&lt;/p&gt;
&lt;p&gt;There are three shipping browsers that support the HTML5 video tag: Firefox, Safari and Chrome.  But only Safari and Chrome support the H.264 video codec.  H.264 must be licensed before it can be legally used.  And that license is expensive.  And that license cannot be transferred with source code.  So, downloadable binaries can be licensed and can include H.264 but open source programs that are compiled by others can't be.  That means that Chromium, the open source version of Chrome, can't display H.264 video.&lt;/p&gt;
&lt;p&gt;Mozilla, the maker of Firefox, could probably afford the H.264 license, but they refuse to.  First, a high percentage of Firefox consumers use the source code from Mozilla, not the binaries.  Virtually every Linux distribution works this way.  Secondly, Mozilla, as an open source &lt;a title="company" href="http://tedwise.com/my-company/"&gt;company&lt;/a&gt;, feels that a licensed codec like H.264 is unacceptable.&lt;/p&gt;
&lt;p&gt;So Firefox (and Chrome) also support the open source video codec Ogg Theora.  But Apple doesn't.  And Google won't encode video in Ogg Theora for YouTube.  The first issue is video quality and bit rate.  H.264 has slightly better video quality at an equivalent bit rate to Ogg Theora.  For Ogg Theora to match H.264 video quality the bit rate has to be increased.  And for a web site like YouTube, that means all consumers have to have better Internet connections and Google has to pay a bigger bandwidth bill.  The second issue is hardware support.  There are hardware chipsets available (and in iPhones today) that decode H.264.  That means that the phone CPUs (which aren't that powerful) aren't taxed with decoding video, and that power usage when displaying video is greatly reduced.  The last issue is patents.  Apple isn't satisfied that Ogg Theora doesn't violate patents that exist around video decoding and they're unwilling to be the target of a law suit that goes after Apple's deep pockets.  Google, seemingly, doesn't care.&lt;/p&gt;
&lt;p&gt;So, the biggest single browser, Internet Explorer, doesn't support the HTML5 video tag.  The second biggest browser, Firefox, supports the tag but only displays Ogg Theora videos.  The third biggest browser, Safari, supports H.264 but not Ogg Theora.  And the fourth biggest browser, Chrome, supports both H.264 and Ogg Theora.  And the big video sites refuse to support Ogg Theora.&lt;/p&gt;
&lt;p&gt;It's a mess.&lt;/p&gt;
&lt;p&gt;This impasse will only be resolved when someone buys H.264 outright and releases it to the public or when Ogg Theora is improved, cleared of patent issues and gains hardware support.  Neither events seems likely anytime soon.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=QytTGXBlMsw:B3jYCrLytvo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=QytTGXBlMsw:B3jYCrLytvo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?i=QytTGXBlMsw:B3jYCrLytvo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TedWise/~4/QytTGXBlMsw" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://tedwise.com/2010/01/22/the-html5-video-mess-see-it-today/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://tedwise.com/2010/01/22/the-html5-video-mess-see-it-today/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://tedwise.com/2010/01/22/the-html5-video-mess-see-it-today/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Ted Wise</name>
						<uri>http://tedwise.com</uri>
					</author>
		<title type="html"><![CDATA[It&#8217;s market share time again &#8211; who&#8217;s winning?	Windows, of course.]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TedWise/~3/KkVZPesUiOs/" />
		<id>http://tedwise.com/?p=945</id>
		<updated>2010-01-21T20:19:23Z</updated>
		<published>2010-01-21T20:19:23Z</published>
		<category scheme="http://tedwise.com" term="Computing" /><category scheme="http://tedwise.com" term="Apple" /><category scheme="http://tedwise.com" term="Linux" /><category scheme="http://tedwise.com" term="Market Share" /><category scheme="http://tedwise.com" term="Microsoft" /><category scheme="http://tedwise.com" term="OS/X" /><category scheme="http://tedwise.com" term="Windows" />		<summary type="html"><![CDATA[<img src="http://tedwise.com/wp-content/uploads/2009/10/computer.png" width="32" height="32" alt="" title="Computing" /><br/>ArsTechnica posted the latest operating system market share statistics.  As of December, 2009, Windows is still the lions share of the market at 92.21%.  OS/X is a very distant second at 5.11% and Linux trails at 1.02%.
The trend is very slightly downward for Windows.  It went from 93.66% in January, 2009 to 92.21% [...]]]></summary>
		<content type="html" xml:base="http://tedwise.com/2010/01/21/its-market-share-time-again-whos-winningwindows-of-course/">&lt;img src="http://tedwise.com/wp-content/uploads/2009/10/computer.png" width="32" height="32" alt="" title="Computing" /&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://arstechnica.com/microsoft/news/2010/01/windows-7-growing-faster-than-vista-overtakes-mac-os.ars?utm_source=rss&amp;amp;utm_medium=rss&amp;amp;utm_campaign=rss"&gt;ArsTechnica posted the latest operating system market share statistics&lt;/a&gt;.  As of December, 2009, Windows is still the lions share of the market at 92.21%.  OS/X is a very distant second at 5.11% and &lt;a title="Linux" href="http://tedwise.com/category/computing/linux/"&gt;Linux&lt;/a&gt; trails at 1.02%.&lt;/p&gt;
&lt;p&gt;The trend is very slightly downward for Windows.  It went from 93.66% in January, 2009 to 92.21% - a drop of 1.45%.  At that rate it would take Microsoft 30 years to drop below 50% market share.  But that rate won't continue.&lt;/p&gt;
&lt;p&gt;The trend is upwards for OS/X, 4.71% in January to 5.11% - an increase of 0.4%.  And its upwards for Linux, 0.90% in January to 1.02% - an increase of 0.12%.&lt;/p&gt;
&lt;p&gt;Another way to look at this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Microsoft lost 1.6% of their market share&lt;/li&gt;
&lt;li&gt;Apple gained 8.5%&lt;/li&gt;
&lt;li&gt;Linux gained 13%&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So Linux is increasing market share the fastest while Microsoft is losing share.  You can rack that up to the increased popularity of netbooks.  Which, despite the press, often come with Linux outside the US and don't get returned.&lt;/p&gt;
&lt;p&gt;On the plus side for Microsoft, Windows 7 is a hit.  It has easily outsold Vista for the same time period after launch.  And, the market share for &lt;span style="text-decoration: underline;"&gt;just&lt;/span&gt; Windows 7 is already larger then for OS/X.&lt;/p&gt;
&lt;p&gt;But, Microsoft's biggest problem is the fact that 68.63% (slightly over 2/3) of all Windows installations are XP or &lt;span style="text-decoration: underline;"&gt;earlier&lt;/span&gt;.  Those installations don't have a straight upgrade path to Windows 7.  That high bar for migration - coupled with strong on-line applications - makes upgrading them open to alternatives, from super-cheap Linux netbooks to high-end Macs.&lt;/p&gt;
&lt;p&gt;My guess is that we'll see the overall market share of Windows drop at an increasing rate and that Linux market share will grow at an increasing rate while OS/X will continue to increase at a modest pace.&lt;/p&gt;
&lt;p&gt;And all of this doesn't include mobile.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=KkVZPesUiOs:LdXIuzaW130:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=KkVZPesUiOs:LdXIuzaW130:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?i=KkVZPesUiOs:LdXIuzaW130:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TedWise/~4/KkVZPesUiOs" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://tedwise.com/2010/01/21/its-market-share-time-again-whos-winningwindows-of-course/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://tedwise.com/2010/01/21/its-market-share-time-again-whos-winningwindows-of-course/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://tedwise.com/2010/01/21/its-market-share-time-again-whos-winningwindows-of-course/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Ted Wise</name>
						<uri>http://tedwise.com</uri>
					</author>
		<title type="html"><![CDATA[Will the next iPhone OS allow multitasking?]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TedWise/~3/vNJAT-zhwxU/" />
		<id>http://tedwise.com/?p=942</id>
		<updated>2010-01-19T22:13:36Z</updated>
		<published>2010-01-19T22:13:36Z</published>
		<category scheme="http://tedwise.com" term="iPhone" /><category scheme="http://tedwise.com" term="Multitasking" /><category scheme="http://tedwise.com" term="Slate" /><category scheme="http://tedwise.com" term="Tablet" /><category scheme="http://tedwise.com" term="UI" />		<summary type="html"><![CDATA[<img src="http://tedwise.com/wp-content/uploads/2009/10/iphone.png" width="17" height="32" alt="" title="iPhone" /><br/>It's not the hardware.  And it's not a fundamental software issue.  It's a combination of UI and trust.
From the UI perspective, Apple didn't want multiple apps running at the same time without visual feedback.  So the few apps that they allow, all provide it.  A background phone call shows as a [...]]]></summary>
		<content type="html" xml:base="http://tedwise.com/2010/01/19/will-the-next-iphone-os-allow-multitasking/">&lt;img src="http://tedwise.com/wp-content/uploads/2009/10/iphone.png" width="17" height="32" alt="" title="iPhone" /&gt;&lt;br/&gt;&lt;p&gt;It's not the hardware.  And it's not a fundamental software issue.  It's a combination of UI and trust.&lt;/p&gt;
&lt;p&gt;From the UI perspective, Apple didn't want multiple apps running at the same time without visual feedback.  So the few apps that they allow, all provide it.  A background phone call shows as a throbbing green bar at the top of the screen.  Data transfer shows as a throbbing blue bar.  Running audio shows as a play icon in the top status bar.  And that's about it.&lt;/p&gt;
&lt;p&gt;So to allow more background apps Apple will either have to create a new UI metaphor or allow apps to wire into the existing mechanism.  For example, allowing Pandora to wire into the play icon in the top status bar.  Apple doesn't seem satisfied with the "standard" approach, e.g., let the user remember what's running without visual feedback and use a task list to switch/kill between apps.  The Pre uses a card stack metaphor that technologists liked but the general public doesn't seem to have bought into.&lt;/p&gt;
&lt;p&gt;Beyond the UI metaphor issue is the question of trust.  Background apps chew up memory and battery life.  Both are very limited on small devices.  If you don't care how well or how poorly this is done, then you just let any app run in the background.  If you _do_ care then you need to validate that background applications don't chew up too much of either resource.  So it's entirely possible that Apple will require background apps to be "blessed" by running them through extra validation.  It's also possible that they'll just expand out the list of "special functions" that won't interrupt an app.  As a current example, creating an email from an &lt;a title="iPhone" href="http://tedwise.com/category/computing/mac/iphone/"&gt;iPhone&lt;/a&gt; app won't stop an app from running.  Perhaps they'll expand that list to include phone calls.  Right now, if your GPS is giving you driving directions and you get a phone call, you stop getting driving directions.&lt;/p&gt;
&lt;p&gt;Apple is taking their sweet time.  You couldn't do copy and paste on the phone for two years after its release.  Now Android reviewers are complaining that copy and paste doesn't work nearly as well on Android as it does on the iPhone.  Apple is trying to get the paradigm correct and work consistently and correctly everywhere.  Whether that approach is good enough or acceptable is a question that consumers get to answer.&lt;/p&gt;
&lt;p&gt;And then you throw the tablet into the mix.  It has a much larger screen and a rumored new UI paradigm.  And that has people guessing that the tablet will run multiple apps but the iPhone won't.  It looks like we'll find out more on the 27th.  Everything is just educated guesses until then.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=vNJAT-zhwxU:Ck10A3wzAAU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=vNJAT-zhwxU:Ck10A3wzAAU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?i=vNJAT-zhwxU:Ck10A3wzAAU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TedWise/~4/vNJAT-zhwxU" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://tedwise.com/2010/01/19/will-the-next-iphone-os-allow-multitasking/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://tedwise.com/2010/01/19/will-the-next-iphone-os-allow-multitasking/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://tedwise.com/2010/01/19/will-the-next-iphone-os-allow-multitasking/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Ted Wise</name>
						<uri>http://tedwise.com</uri>
					</author>
		<title type="html"><![CDATA[IE hating has spread to government]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TedWise/~3/pyEM_bYruLg/" />
		<id>http://tedwise.com/?p=940</id>
		<updated>2010-01-19T16:20:38Z</updated>
		<published>2010-01-19T16:20:38Z</published>
		<category scheme="http://tedwise.com" term="Web" /><category scheme="http://tedwise.com" term="Chrome" /><category scheme="http://tedwise.com" term="Firefox" /><category scheme="http://tedwise.com" term="IE" /><category scheme="http://tedwise.com" term="JavaScript" /><category scheme="http://tedwise.com" term="Opera" /><category scheme="http://tedwise.com" term="Safari" /><category scheme="http://tedwise.com" term="Sandbox" /><category scheme="http://tedwise.com" term="Security Model" />		<summary type="html"><![CDATA[<img src="http://tedwise.com/wp-content/uploads/2009/10/web.png" width="29" height="32" alt="" title="Web" /><br/>There was news a few days back that Germany is now recommending that NO ONE use Internet Explorer anymore and that EVERYONE should switch to other browsers for security reasons.  This was in response to the Chinese government hackers using IE flaws to hack into Google.
Now France is recommending the same thing.
Microsoft has protested, [...]]]></summary>
		<content type="html" xml:base="http://tedwise.com/2010/01/19/ie-hating-has-spread-to-government/">&lt;img src="http://tedwise.com/wp-content/uploads/2009/10/web.png" width="29" height="32" alt="" title="Web" /&gt;&lt;br/&gt;&lt;p&gt;There was news a few days back that Germany is now recommending that NO ONE use Internet Explorer anymore and that EVERYONE should switch to other browsers for &lt;a title="security" href="http://tedwise.com/category/computing/security/"&gt;security&lt;/a&gt; reasons.  This was in response to the Chinese government hackers using IE flaws to hack into Google.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.ubergizmo.com/15/archives/2010/01/french_government_urges_you_to_skip_internet_explorer_for_the_moment.html  "&gt;Now France is recommending the same thing.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Microsoft has protested, of course, stating that the problem is a combination of people not upgrading and people using too lax a security setting.  And they're mostly correct.  But they're fighting an uphill battle due to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A poor history&lt;/li&gt;
&lt;li&gt;Being a very, very, very large target&lt;/li&gt;
&lt;li&gt;Having a security model that confuses users&lt;/li&gt;
&lt;li&gt;High security disabling IE-specific features that Microsoft has taught users to rely on&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So is every other browser more secure then IE?  No.&lt;/p&gt;
&lt;p&gt;Security researchers think the IE security model, when set to High by a user, is actually pretty good.  But most users won't set it there or leave it there.  And because IE/Windows is the dominant target, it's the favorite of hackers.&lt;/p&gt;
&lt;p&gt;Do you want to run the most secure browser on the planet?  The only one security researchers have never cracked?  Run Google Chrome.&lt;/p&gt;
&lt;p&gt;Do you want to run a browser which security researchers have cracked but doesn't get much attention from hackers?  Run Firefox.&lt;/p&gt;
&lt;p&gt;Do you want to run a browser which security researchers have cracked but gets zero attention from hackers?  Run Safari or Opera.&lt;/p&gt;
&lt;p&gt;The reason that Chrome is so special is because it was engineered to "sandbox" the code that renders pages and executes &lt;a title="JavaScript" href="http://tedwise.com/category/computing/web-computing/javascript/"&gt;JavaScript&lt;/a&gt; from both the rest of the browser and the operating system.  Even if you bust the web security model you can't get outside of the sandbox.  Well, not yet anyway.  The next version of Firefox is slated to use the same model.  Safari or Opera?  No announced plans.&lt;/p&gt;
&lt;p&gt;So you can expect, especially in EU governments, to see Chrome and Firefox market share pick up.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=pyEM_bYruLg:MlQXKnKTrFQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TedWise?a=pyEM_bYruLg:MlQXKnKTrFQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TedWise?i=pyEM_bYruLg:MlQXKnKTrFQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TedWise/~4/pyEM_bYruLg" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://tedwise.com/2010/01/19/ie-hating-has-spread-to-government/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://tedwise.com/2010/01/19/ie-hating-has-spread-to-government/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://tedwise.com/2010/01/19/ie-hating-has-spread-to-government/</feedburner:origLink></entry>
	</feed><!-- Dynamic page generated in 1.305 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-03-10 13:22:11 --><!-- Compression = gzip -->
