<?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:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D0YMRno7eSp7ImA9WhBUFkQ.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610</id><updated>2013-05-04T21:19:47.401+02:00</updated><category term="logging" /><category term="puremvc" /><category term="amf3" /><category term="livecycle" /><category term="cairngorm" /><category term="finder" /><category term="adobe" /><category term="flash player 10" /><category term="itemrenderer" /><category term="blazeds" /><category term="osx" /><category term="grails" /><category term="nokia" /><category term="git" /><category term="amazon" /><category term="jetty" /><category term="spring" /><category term="devoxx" /><category term="symbian" /><category term="web service" /><category term="tilelist" /><category term="servlet" /><category term="smarthphone" /><category term="eclipse" /><category term="sem" /><category term="flex builder" /><category term="apache" /><category term="facebook" /><category term="idea" /><category term="centos" /><category term="charts" /><category term="Jasper" /><category term="meego" /><category term="air" /><category term="java" /><category term="seam" /><category term="wifi" /><category term="sni" /><category term="php" /><category term="httpd" /><category term="logger" /><category term="dvcs" /><category term="flex comiler" /><category term="aop" /><category term="tx-datasource" /><category term="openssl" /><category term="flex" /><category term="netbeans" /><category term="beta" /><category term="seo" /><category term="mvc" /><category term="social networks" /><category term="android" /><category term="flash builder" /><category term="groovy" /><category term="mac" /><category term="heroku" /><category term="qt" /><category term="weaving" /><category term="mercurial" /><category term="svn" /><category term="tomcat ltw" /><category term="jdk7" /><title>Zilet's playground</title><subtitle type="html">Some useful software notes and stuff that I create.

Useful articles and tutorials on programming and development techniques.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.miloszikic.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/ZiletovBlog" /><feedburner:info uri="ziletovblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;AkABQHczcCp7ImA9WhBSFk4.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-1767382548599976014</id><published>2013-02-23T17:59:00.000+01:00</published><updated>2013-02-23T17:59:11.988+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-23T17:59:11.988+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="jetty" /><category scheme="http://www.blogger.com/atom/ns#" term="heroku" /><category scheme="http://www.blogger.com/atom/ns#" term="servlet" /><category scheme="http://www.blogger.com/atom/ns#" term="grails" /><title>Running Servlet 3.0 applications on Heroku</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://heroku.com/" rel="nofollow"&gt;Heroku&lt;/a&gt; comes with Jetty 7.5.4 runner which does not support servlet 3.0. However it is very easy to overcome this as Heroku lets you push your own jetty runner version easily. All you have to do is to download it to a 'server' folder in the root of your project:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre class="brush:shell;"&gt;mkdir server
curl http://repo1.maven.org/maven2/org/mortbay/jetty/jetty-runner/8.1.9.v20130131/jetty-runner-8.1.9.v20130131.jar &amp;gt; server/jetty-runner.jar
&lt;/pre&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;And if you like tomcat better you can do this as well. Slick!&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/IbMm664SZ-o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/1767382548599976014/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=1767382548599976014" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/1767382548599976014?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/1767382548599976014?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/IbMm664SZ-o/running-servlet-30-applications-on.html" title="Running Servlet 3.0 applications on Heroku" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2013/02/running-servlet-30-applications-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4GQHg-cCp7ImA9WhNQF0s.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-6803936225697483215</id><published>2012-11-15T19:55:00.003+01:00</published><updated>2012-11-24T14:32:01.658+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-11-24T14:32:01.658+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="facebook" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title>Native Facebook SSO in Android</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-fr_x6sq2l6A/UKU0zl4xmoI/AAAAAAAAC2A/ixYxJk0ptq4/s1600/android-fb.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Android Facebook integration" border="0" src="http://1.bp.blogspot.com/-fr_x6sq2l6A/UKU0zl4xmoI/AAAAAAAAC2A/ixYxJk0ptq4/s1600/android-fb.jpg" title="" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;Today mobile app without easy way to get inside is considered unfriendly. Users love to share the joy of using something nice with their friends and simply love to have to remember just one password.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;Facebook is a great SSO service and it is considered a "must have" feature.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;Fortunately it is easy to integrate it. There is Android&amp;nbsp;&lt;a href="https://developers.facebook.com/android/" rel="nofollow"&gt;Facebook SDK&lt;/a&gt;&amp;nbsp;created by Facebook itself, but I want to draw your attention to &lt;a href="http://code.google.com/p/android-query/"&gt;Android Query&lt;/a&gt;&amp;nbsp;library. It is a great asset for Android development. It contains all the little helpers that you might need during developing your super awesome apps. And of course you want to focus on getting it awesome, so AndroidQuery is a real thing to help you out.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;Apart from other things in the package there is a &lt;a href="http://authentication/"&gt;SSO capatibility&lt;/a&gt;&amp;nbsp;and Facebook authentication is really easy (either through web, or native FB app).&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;The process there is straight forward, and you have demos to help as well. What is not that clear is how to generate a key hash for Facebook native android app. Here is how it looks on Facebook developer page:&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-VLpjVFf4Jrw/UKU4AVegyZI/AAAAAAAAC2Q/RC_O-NfwLlI/s1600/facebook+key+hash.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="facebook key hash" border="0" height="106" src="http://1.bp.blogspot.com/-VLpjVFf4Jrw/UKU4AVegyZI/AAAAAAAAC2Q/RC_O-NfwLlI/s400/facebook+key+hash.png" title="" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;This field will accept multiple hashes. So, for your developer certificate use following (use the password "&lt;b&gt;android&lt;/b&gt;"):&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;pre class="brush:shell;"&gt;keytool -exportcert -alias androiddebugkey \
-keystore ~/.android/debug.keystore | openssl sha1 -binary \
| openssl enc -a -e
&lt;/pre&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;And for your production builds you can generate key hash by executing following over your p12 certificate&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;pre class="brush:shell;"&gt;keytool -export -alias com.yourappname -storetype pkcs12 \
-keystore cert/certificate.p12 | openssl sha1 -binary \
| openssl enc -a -e
&lt;/pre&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;"com.yourappname" is your keyalias. You can find out this one by executing&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre class="brush:shell;"&gt;keytool -list -storetype pkcs12 -keystore cert/certificate.p12 -v
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;Happy coding!&lt;/span&gt;&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/T1y8wSMg89w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/6803936225697483215/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=6803936225697483215" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/6803936225697483215?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/6803936225697483215?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/T1y8wSMg89w/native-facebook-sso-in-android.html" title="Native Facebook SSO in Android" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-fr_x6sq2l6A/UKU0zl4xmoI/AAAAAAAAC2A/ixYxJk0ptq4/s72-c/android-fb.jpg" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Belgrade, Serbia</georss:featurename><georss:point>44.8205556 20.4622222</georss:point><georss:box>44.6403511 20.146365199999998 45.0007601 20.7780792</georss:box><feedburner:origLink>http://blog.miloszikic.com/2012/11/native-facebook-sso-in-android.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04GQH4zfip7ImA9WhNQEE0.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-8866527297474758531</id><published>2012-07-29T18:10:00.002+02:00</published><updated>2012-11-15T19:58:41.086+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-11-15T19:58:41.086+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="amazon" /><category scheme="http://www.blogger.com/atom/ns#" term="php" /><category scheme="http://www.blogger.com/atom/ns#" term="apache" /><title>Using low-power servers to host php sites (e.g. Amazon Micro instance)</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
First answer should be DON'T or better said understand your needs and then decide.&lt;br /&gt;
&lt;br /&gt;
It really falls down to what are the expectations and if the site you are planning to run is not having 10s of thousands of visits daily you can probably utilize some of the low power servers available out there. Amazon is great for starting it up since it provide you with one year free tier option. You will have to leave the credit card info with them though since they might be some other charges in the future usage and Amazon would like to be able to charge for it.&lt;br /&gt;
&lt;br /&gt;
So important things:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Do not expect to much&lt;/li&gt;
&lt;li&gt;If you can separate web server and db server (maybe 2 micro instances)&lt;/li&gt;
&lt;li&gt;If you can use nginx instead of apache web server. Nginx comes with much lower memory footprint.&lt;/li&gt;
&lt;li&gt;Go with some lighter site frameworks (e.g. your own or wordpress). Drupal or Typo3 will take up a lot more resources.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Here are some recommended values for apache (httpd.conf)&lt;/div&gt;
&lt;div&gt;
&lt;pre class="brush:shell;"&gt;Timeout 30 #Set this to some reasonable amount - who waits more then 30 secs for site to load?

    StartServers          3
    MinSpareServers       2
    MaxSpareServers       1

    MaxClients            6
    MaxRequestsPerChild   500
&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
We are not allowing many concurrent requests here but it will limit the apache memory consumption so other processes may run. If you do not have intensive operations that require a lot of memory for php processes you should put some small amount for &lt;i&gt;php memory_limit&lt;/i&gt; in php.ini&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre class="brush:shell;"&gt;memory_limit = 64M #maximum amount of memory one php process can consume
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
And if you run MySQL or similar on this server monitor it for usage. If your MySQL process gets killed (Amazon has a watchdog that will do this automatically if there is no more free memory) you may adjust the apache configuration values to even lower values.&lt;br /&gt;
&lt;br /&gt;
Conclusion: if you run some small blog or personal page this configuration will run smoothly for you and will provide you with snappy performance. If you have more then 1k unique visitors a day think of something different (or pay for small ec2 instance).&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/ux5doEnV2ek" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/8866527297474758531/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=8866527297474758531" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/8866527297474758531?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/8866527297474758531?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/ux5doEnV2ek/using-low-power-servers-to-host-php.html" title="Using low-power servers to host php sites (e.g. Amazon Micro instance)" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2012/07/using-low-power-servers-to-host-php.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AESX84fip7ImA9WhBQGUU.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-3053084342452144871</id><published>2012-03-03T22:39:00.000+01:00</published><updated>2013-03-22T20:48:28.136+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-22T20:48:28.136+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="finder" /><category scheme="http://www.blogger.com/atom/ns#" term="osx" /><category scheme="http://www.blogger.com/atom/ns#" term="mac" /><title>OS X Finder open in path shortcuts for various Apps (ITerm2, Sublime Text 2, Vim)</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-ti1A87wAxTg/T1KHjKo4y-I/AAAAAAAACa8/LQ2gy8w9zi8/s1600/open-in-path.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="97" src="http://1.bp.blogspot.com/-ti1A87wAxTg/T1KHjKo4y-I/AAAAAAAACa8/LQ2gy8w9zi8/s320/open-in-path.jpg" width="232" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;While using Finder app a lot of times I need to open a terminal in the current path. Yes you can get info of the folder you are in, select path and then launch terminal and past the path... (sloooooow) :(&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Luckily I found a neat useful app to open &lt;a href="http://code.google.com/p/cdto/"&gt;Terminal app in finders path&lt;/a&gt;. Since I am &lt;a href="http://www.iterm2.com/"&gt;ITerm&lt;/a&gt; fan I tried to dig out more and found a script that can launch ITerm in path as well. You can find it &lt;a href="https://gist.github.com/905546"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;In order to make the use of this you will need to create application with the help of Automator. Just paste it to automator, click save and voila or download the apps I already &lt;a href="https://bitbucket.org/zilet/finder-open-in-path/overview"&gt;bundled&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;There are couple of more apps that I like using it this way so I created few more scripts and bundled apps for it:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;ITerm 2&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Sublime Text 2&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;MacVim&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Vim&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;And here is how to install these sweeties:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Download source code from &lt;a href="https://bitbucket.org/zilet/finder-open-in-path/get/76ffcd994e7f.zip"&gt;bitbucket project&lt;/a&gt;&amp;nbsp;(or &lt;a href="https://bitbucket.org/zilet/finder-open-in-path/overview"&gt;clone&lt;/a&gt; it)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Select apps you want and move application files to your Applications folder (e.g. /Applications)&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-3tkQbR_ZwSs/T1KNYLtI5CI/AAAAAAAACbE/f2Odx8c1JRQ/s1600/open-in-path-folders.jpg" imageanchor="1" style="font-family: Times; margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-3tkQbR_ZwSs/T1KNYLtI5CI/AAAAAAAACbE/f2Odx8c1JRQ/s1600/open-in-path-folders.jpg" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;Then pick up the application icon and drag it to finders toolbar&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;There you go.. all set up.. enjoy!&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Go ahead fork me up and add apps that you like using as well.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;b&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Update&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;2013/03/20:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Source code along with binaries available now on &lt;a href="https://github.com/zilet/finder-open-in-path" rel="nofollow"&gt;github&lt;/a&gt; as well &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/zj8db9ftIII" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/3053084342452144871/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=3053084342452144871" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/3053084342452144871?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/3053084342452144871?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/zj8db9ftIII/os-x-finder-open-in-path-shortcuts-for.html" title="OS X Finder open in path shortcuts for various Apps (ITerm2, Sublime Text 2, Vim)" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-ti1A87wAxTg/T1KHjKo4y-I/AAAAAAAACa8/LQ2gy8w9zi8/s72-c/open-in-path.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2012/03/os-x-finder-open-in-path-shortcuts-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYGQXg5fCp7ImA9WhVaF0k.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-5240832428944537906</id><published>2012-02-26T17:20:00.000+01:00</published><updated>2012-06-15T10:15:20.624+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-06-15T10:15:20.624+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jdk7" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="idea" /><category scheme="http://www.blogger.com/atom/ns#" term="eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="netbeans" /><category scheme="http://www.blogger.com/atom/ns#" term="osx" /><title>JDK 1.7 on Mac OS X and in various IDEs</title><content type="html">&lt;span style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="189" src="http://2.bp.blogspot.com/-rUD_duRbEQw/T0pqHaWtbcI/AAAAAAAACaw/h-LMQHodoLw/s200/java7.jpg" width="200" /&gt;&lt;/span&gt;Hey JDK 1.7 is out for a while and here is how to use it in your favorite IDE.&lt;br /&gt;
&lt;br /&gt;
But first you need to &lt;a href="http://jdk7.java.net/macportpreview/"&gt;download JDK 1.7 OS X Preview&lt;/a&gt;. Follow the installation instructions and your JDD 1.7 installation should finish up in&lt;br /&gt;
&lt;br /&gt;
/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/&lt;br /&gt;
&lt;br /&gt;
&lt;div style="clear: both;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Eclipse&lt;/b&gt;  &lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Edit your eclipse.ini&lt;br /&gt;
&lt;code&gt;vim /Applications/Eclipse.app/Contents/MacOS/eclipse.ini&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Add before first line:&lt;br /&gt;
&lt;code&gt;- vm&lt;br /&gt;
/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/bin/java&lt;br /&gt;
&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;NetBeans&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Edit your netbeans.conf&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;"vim /Applications/NetBeans/NetBeans\ 7.1.app/Contents/Resources/NetBeans/etc/netbeans.conf"&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Change &lt;i&gt;netbeans_jdkhome&lt;/i&gt; to&lt;br /&gt;
&lt;code&gt;netbeans_jdkhome="/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home"&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="background-color: #f3f3f3; font-family: 'Trebuchet MS', sans-serif;"&gt;
&lt;b&gt;&lt;span style="font-size: x-small;"&gt;6/15/2012 - Update:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;This worked before official 11 release. Idea changed how they handle JDKs and they are depending on Apples JDK to run.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;You can use Oracles JDK 1.7 for running any projects in IDEA however, but you cannot run IDEA itself.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;IntelliJ IDEA&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Edit your Info.plist&lt;br /&gt;
&lt;code&gt;vim /Applications/IntelliJ\ IDEA\ 11.app/bin/idea.sh&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Add to the top:&lt;br /&gt;
&lt;code&gt;IDEA_JDK=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Save and run IDEA by&lt;br /&gt;
&lt;code&gt;cd /Applications/IntelliJ\ IDEA\ 11.app/&lt;br /&gt;
./bin/idea.sh&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/DWeefDw7J3g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/5240832428944537906/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=5240832428944537906" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/5240832428944537906?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/5240832428944537906?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/DWeefDw7J3g/jdk-17-on-mac-os-x-and-in-various-ides.html" title="JDK 1.7 on Mac OS X and in various IDEs" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-rUD_duRbEQw/T0pqHaWtbcI/AAAAAAAACaw/h-LMQHodoLw/s72-c/java7.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.miloszikic.com/2012/02/jdk-17-on-mac-os-x-and-in-various-ides.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMHRH0zfip7ImA9WhVTEko.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-2188215534038804976</id><published>2012-02-11T00:00:00.000+01:00</published><updated>2012-02-26T18:13:55.386+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-26T18:13:55.386+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mercurial" /><category scheme="http://www.blogger.com/atom/ns#" term="git" /><category scheme="http://www.blogger.com/atom/ns#" term="dvcs" /><category scheme="http://www.blogger.com/atom/ns#" term="svn" /><title>Distributed version control is natural way of thinking</title><content type="html">Every day I get amazed with afraid looks in developer eyes when I mention working with distributed version control systems. These systems are now very mature and present for a long time and todays developers should feel confortable trying things out.&lt;br /&gt;
&lt;br /&gt;
...BUT reality is very different. Since there are not many enthusiast out there experimenting every day, being passionate about software and focusing on their work in big enterprises I get the situation. I do not think this is good.&lt;br /&gt;
&lt;br /&gt;
.. Yes yes I know it is expensive for an enterprise to upgrade some technology. There are banks out there still having their system on Java 1.2 with no upgrade plan (and of course there are many exams relaying on Cobol). And ok thats fine.&lt;br /&gt;
&lt;br /&gt;
...BUT again we leave in a rapid changing world. We want to be productive and more efficient every day. We want to improve. We are engineers we move forward every day.. or at least some of us do. &lt;br /&gt;
&lt;br /&gt;
I want to encourage positive thinking and educate people over the things I find useful and productive. DVCS are the thing to go. &lt;br /&gt;
&lt;br /&gt;
WHY?&lt;br /&gt;
&lt;br /&gt;
Because DVCS implemented natural human thinking behavior. Our thought BRANCH. They branch very often, and then we return and rethink what we have done and branch to other direction, and then rethink again and again branch and then we come to conclusion. Potentially not the best one but with a big chance to be the best one simple because we have been experimenting with different paths.&lt;br /&gt;
&lt;br /&gt;
That is what distributed is all about. Experiment as much as you like. Branch whenever you need, be creative, productive and efficient.&lt;br /&gt;
&lt;br /&gt;
What are the causes for not accepting this not so new movement? Developers learned to think as the machines worked and now when we managed to make machines work as we think not all of us have evolved to that level.&lt;br /&gt;
&lt;br /&gt;
Do you remember working with MS SourceSafe? No? Good for you. I never personally used it (when I didn't had to) but have worked on educating many developers migrate from it. &lt;br /&gt;
&lt;br /&gt;
LOCKS!&lt;br /&gt;
&lt;br /&gt;
Developers love locking. You lock your file and work on it. So you are the only owner of the file and no one else is not interfering your work. Great in some world, but inefficient, slow and I am not thinking of indirect impact that this revision system caused to poor development teams that were not used to playing good in teams. They all worked in their own world. Their were thought and encouraged to work like that. Thats bad..&lt;br /&gt;
&lt;br /&gt;
Somehow we all managed to overcome this and got used using SVN and merging files become normal.&lt;br /&gt;
&lt;br /&gt;
BUT! SVN (and similars) are central systems. Whatever you want to do to you have to do it over server. Ok it is not the problem because internet is available everywhere. But why will you share all your mindmapping and your experiments with all other developers? Ok even if you want to share it, thats fine, but that is simple bloating the repository since it will be garbage for others but for you valuable process of thinking. And this process is slow! Branching in SVN is slow, comparing changes, listing history (arrrghhh I can scream at the thought of this again) ... all of this needs to go through the central repository. &lt;br /&gt;
&lt;br /&gt;
So you try to overcome all of this and think linearly and keep working with constraints that are not natural to your mind and you transfer that limitations to your code. You do not let your mind play and explore. You do not search for great solutions, but instead just go with the flow, find the shortest path. Thats bad..&lt;br /&gt;
&lt;br /&gt;
And then came DVCS. This is what we needed from the start, but machines were not ready, as machines evolved and our understanding of the ways how to interact with them evolved mankind came up with a way to allow developers work as their brains work, not imposing limitations but instead encouraged experiments. Then &lt;a href="http://github.com"&gt;github&lt;/a&gt; came and made distributed a cool thing and others followed: &lt;a href="https://bitbucket.org/"&gt;bitbucket&lt;/a&gt;, &lt;a href="http://gitorious.org/"&gt;gitorius&lt;/a&gt;, etc.. (I am more a Mercurial guy but do not mind git.. they are both great).&lt;br /&gt;
&lt;br /&gt;
BUT! Enterprises didn't follow and this is bad thing! Enterprises do not realize how much are they loosing. Productivity is suffering. Employees are limited, they are not exploring, not finding better solutions. This should change. Everybody needs to move forward. Its in the nature of mankind. And trust me &lt;a href="http://mercurial.selenic.com/"&gt;Mercurial&lt;/a&gt; is easy to setup in the enterprise and set up all permission models very similar to SVN so just go ahead an try it.&lt;br /&gt;
&lt;br /&gt;
WHY should I bother?&lt;br /&gt;
&lt;br /&gt;
DVC allows you to experiment. Start working on something, realize that you might do it differently, go back couple of steps start going to different direction, realize that you have a better way, and again go back and do it. Then merge something that you liked about your other work, cherry pick some part that you liked. And then you want to share with others. Its simple, pick what you want to share, share just some branches, rebase your changes and compact them to one change set. Remove the clutter for others. Its very very very easy.&lt;br /&gt;
&lt;br /&gt;
And it gets even better! &lt;br /&gt;
&lt;br /&gt;
You have multiple ways of sharing. E.g. you have a central push repository but during your work you want to share some pre alpha code with your coworker thats working on other part of the functionality. There is still no need to push this code to central and you SHOULDN'T. Share it by publishing it to your friend (multiple options here: shared folder, email, web server) and work together, exchange prepare the code and then push it to central. As you see easy and not limiting at all.&lt;br /&gt;
&lt;br /&gt;
I strongly believe that DVCS make better software engineers, and those that are having trouble working this way are NOT welcome to my team. Unset your limits and let your minds free!&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/GGGCiejritU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/2188215534038804976/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=2188215534038804976" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/2188215534038804976?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/2188215534038804976?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/GGGCiejritU/distributed-version-control-is-natural.html" title="Distributed version control is natural way of thinking" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2012/02/distributed-version-control-is-natural.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEICQnczfip7ImA9WhJQFUo.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-4246253026205075661</id><published>2011-04-27T22:35:00.000+02:00</published><updated>2012-07-29T17:42:43.986+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-29T17:42:43.986+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="flex" /><category scheme="http://www.blogger.com/atom/ns#" term="charts" /><title>Using different fill colors for positive and negative values in AreaChart</title><content type="html">&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Recently I have been playing with Flex AreaChart component and wanted to have different color fills for positive and negative values. This is not available out of the box and in order to achieve this new areaRenderer needs to be created.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;I found great forum thread that tackles similar thing (&lt;a href="http://forums.adobe.com/message/3005273"&gt;http://forums.adobe.com/message/3005273&lt;/a&gt;) and this component needed few improvements to have good stroke colors on negative side as well.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;The biggest challenge was the part where line drops from positive to negative value and should change colors in between values and vice versa. Luckily there is&lt;/span&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: Monaco; font-size: 11px;"&gt;renderedBase &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;property available that holds info where is the zero point and with a little bit of trigonometry we can find out where are the important points where we need to split the line and draw different colors.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;And at the end here is the code:&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;i&gt;AreaChartRenderer&lt;/i&gt;:&lt;/span&gt;&lt;br /&gt;
&lt;style type="text/css"&gt;
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco}
&lt;/style&gt;   &lt;br /&gt;
&lt;pre class="brush: as3;"&gt;package 
{
 
 import flash.display.Graphics;
 import flash.geom.Rectangle;
 
 import mx.charts.chartClasses.GraphicsUtilities;
 import mx.charts.renderers.AreaRenderer;
 import mx.graphics.IFill;
 import mx.graphics.IStroke;
 import mx.graphics.SolidColor;
 import mx.graphics.SolidColorStroke;
 
 public class AreaChartRenderer extends AreaRenderer
 {
  
  private var strokePositive:uint              = 0x127625;
  private var strokeNegative:uint              = 0xCC2800;
  
  private var fillPositive:uint                = 0x127625;
  private var alphaPositive:Number             = 0.2;
  private var fillNegative:uint                = 0xCC2800;
  private var alphaNegative:Number             = 0.2;
  
  
  private static var noStroke:SolidColorStroke = new SolidColorStroke(0, 0, 0);
  
  /**
   *  @private
   */
  override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
  {
   super.updateDisplayList(unscaledWidth, unscaledHeight);
   if (!data)
   {
    return;
   }
   
   
   var fill:IFill     = null;
   var stroke:IStroke = null;
   
   var form:String    = getStyle("form");
   
   var g:Graphics     = graphics;
   g.clear();
   
   
   
   var boundary:Array /* of Object */                 = data.filteredCache;
   var n:int                          = boundary.length;
   if (n == 0)
   {
    return;
   }
   
   var xMin:Number;
   var xMax:Number = xMin = boundary[0].x;
   var yMin:Number;
   var yMax:Number = yMin = boundary[0].y;
   
   var v:Object;
   
   // loop through items and prepare fills
   for (var i:int = 0; i &amp;lt; n; i++)
   {
    v = boundary[i];
    
    xMin = Math.min(xMin, v.x);
    yMin = Math.min(yMin, v.y);
    xMax = Math.max(xMax, v.x);
    yMax = Math.max(yMax, v.y);
    
    if (!isNaN(v.min))
    {
     yMin = Math.min(yMin, v.min);
     yMax = Math.max(yMax, v.min);
    }
    
    //middle values
    var x1:Number, y1:Number;
    
    if (boundary[i + 1] != null &amp;amp;&amp;amp; boundary[i].item.value &amp;gt; 0 &amp;amp;&amp;amp; boundary[i + 1].item.value &amp;lt; 0)
    {
     // we have a transtion from positive to negative. We need to break this down to 2 areas for filling
     
     // determine middle point
     
     // y middle point
     
     y1 = data.renderedBase;
     
     x1 = Math.sqrt(Math.pow((boundary[i + 1].x - boundary[i].x), 2) * Math.pow((y1 - boundary[i].y), 2) / Math.pow((boundary[i + 1].y - boundary[i].y), 2)) + boundary[i].x;
     
     // color positive
     fill = new SolidColor(fillPositive, alphaPositive);
     stroke = new SolidColorStroke(strokePositive);
     
     
     fill.begin(g, new Rectangle(xMin, yMin, x1 - xMin, y1 - yMin), null);
     GraphicsUtilities.drawPolyLine(g, boundary, i, i + 2, "x", "y", noStroke, form);
     g.lineTo(x1, data.renderedBase);
     g.lineTo(boundary[i].x, data.renderedBase);
     g.endFill();
     
     // positive stroke
     drawStroke(g, boundary, i, stroke, form, x1, y1);
     
     // color negative
     fill = new SolidColor(fillNegative, alphaNegative);
     stroke = new SolidColorStroke(strokeNegative);
     
     fill.begin(g, new Rectangle(x1, y1, xMax - x1, yMax - y1), null);
     GraphicsUtilities.drawPolyLine(g, boundary, i, i + 2, "x", "y", noStroke, form);
     g.lineTo(boundary[i + 1].x, data.renderedBase);
     g.lineTo(x1, data.renderedBase);
     g.endFill();
     
     drawStroke(g, boundary, i, stroke, form, boundary[i + 1].x, boundary[i + 1].y, x1, y1);
     
     
    }
    else if (boundary[i + 1] != null &amp;amp;&amp;amp; boundary[i].item.value &amp;lt; 0 &amp;amp;&amp;amp; boundary[i + 1].item.value &amp;gt; 0)
    {
     // we have a transtion from negative to positive. We need to break this down to 2 areas for filling
     
     // determine middle point
     
     // y middle point
     
     y1 = data.renderedBase;
     
     x1 = Math.sqrt(Math.pow((boundary[i + 1].x - boundary[i].x), 2) * Math.pow((y1 - boundary[i].y), 2) / Math.pow((boundary[i + 1].y - boundary[i].y), 2)) + boundary[i].x;
     
     
     // color negative
     fill = new SolidColor(fillNegative, alphaNegative);
     stroke = new SolidColorStroke(strokeNegative);
     
     fill.begin(g, new Rectangle(xMin, yMin, x1 - xMin, y1 - yMin), null);
     GraphicsUtilities.drawPolyLine(g, boundary, i, i + 2, "x", "y", noStroke, form);
     g.lineTo(x1, data.renderedBase);
     g.lineTo(boundary[i].x, data.renderedBase);
     g.endFill();
     
     drawStroke(g, boundary, i, stroke, form, x1, y1);
     
     // color positive
     fill = new SolidColor(fillPositive, alphaPositive);
     stroke = new SolidColorStroke(strokePositive);
     
     
     fill.begin(g, new Rectangle(x1, y1, xMax - x1, yMax - y1), null);
     GraphicsUtilities.drawPolyLine(g, boundary, i, i + 2, "x", "y", noStroke, form);
     g.lineTo(boundary[i + 1].x, data.renderedBase);
     g.lineTo(x1, data.renderedBase);
     g.endFill();
     
     drawStroke(g, boundary, i, stroke, form, boundary[i + 1].x, boundary[i + 1].y, x1, y1);
    }
    else
    {
     
     if (boundary[i].item.value &amp;gt; 0)
     {
      fill = new SolidColor(fillPositive, alphaPositive);
      stroke = new SolidColorStroke(strokePositive);
     }
     else
     {
      fill = new SolidColor(fillNegative, alphaNegative);
      stroke = new SolidColorStroke(strokeNegative);
     }
     
     
     if (i &amp;lt; n - 1)
     {
      fill.begin(g, new Rectangle(xMin, yMin, xMax - xMin, yMax - yMin), null);
      GraphicsUtilities.drawPolyLine(g, boundary, i, i + 2, "x", "y", noStroke, form);
      g.lineTo(boundary[i + 1].x, data.renderedBase);
      g.lineTo(boundary[i].x, data.renderedBase);
      g.endFill();
      
      
      drawStroke(g, boundary, i, stroke, form);
     }
    }
   }
   
   
   
  }
  
  /**
   * Draws a line with a given stroke between 2 points. It either uses boundary point array or start and end points 
   * 
   * 
   */  
  
  private function drawStroke(g:Graphics, boundary:Array, i:int, stroke:IStroke, form:String, endX:Number = NaN, endY:Number = NaN, startX:Number = NaN, startY:Number = NaN):void
  {
   
   if (isNaN(startX))
   {
    g.moveTo(boundary[i].x, boundary[i].y);
   } else {
    g.moveTo(startX, startY);
   }
   
   var colorStroke:SolidColorStroke = stroke as SolidColorStroke;
   g.lineStyle(colorStroke.weight, colorStroke.color, colorStroke.alpha);
   
   if (boundary[i].element.minField != null &amp;amp;&amp;amp; boundary[i].element.minField != "")
   {
    g.lineTo(boundary[i + 1].x, boundary[i + 1].min);
    
    GraphicsUtilities.drawPolyLine(g, boundary, i + 1, i, "x", "min", noStroke, form, false);
   }
   else
   {
    if (isNaN(endX))
    {
     g.lineTo(boundary[i + 1].x, boundary[i + 1].y);
    }
    else
    {
     g.lineTo(endX, endY);
    }
   }
   
   g.endFill();
  }
 }
}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
And here is the final result:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-LcKd91weE3U/Tbh9sqyiwDI/AAAAAAAACPY/w1RuOv_9vg0/s1600/multicolorchart.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="199" src="http://4.bp.blogspot.com/-LcKd91weE3U/Tbh9sqyiwDI/AAAAAAAACPY/w1RuOv_9vg0/s320/multicolorchart.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Happy charting!&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/o9H5T12bYlA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/4246253026205075661/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=4246253026205075661" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/4246253026205075661?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/4246253026205075661?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/o9H5T12bYlA/using-different-fill-colors-for.html" title="Using different fill colors for positive and negative values in AreaChart" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-LcKd91weE3U/Tbh9sqyiwDI/AAAAAAAACPY/w1RuOv_9vg0/s72-c/multicolorchart.jpg" height="72" width="72" /><thr:total>7</thr:total><feedburner:origLink>http://blog.miloszikic.com/2011/04/using-different-fill-colors-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEGR307eSp7ImA9WhZTFk4.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-3036443293684745356</id><published>2011-03-20T15:17:00.000+01:00</published><updated>2011-03-20T15:17:06.301+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-20T15:17:06.301+01:00</app:edited><title>Flex ArrayIndexOutOfBounds Exception in SDK 4.1 on incremental builds</title><content type="html">&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #202020; font-family: 'Droid Sans', arial, sans-serif; font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;There is an ArrayIndexOutOfBounds exception with the latest final build of&amp;nbsp;&lt;span class="il" style="background-attachment: initial; background-clip: initial; background-color: #d9e7b0; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #202020;"&gt;Flex&lt;/span&gt;&amp;nbsp;&lt;span class="il" style="background-attachment: initial; background-clip: initial; background-color: #d9e7b0; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #202020;"&gt;SDK&lt;/span&gt;&amp;nbsp;4.1 which manifests itself with incremental builds. Hopefully problem is solved!&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;There is no official full&amp;nbsp;&lt;span class="il" style="background-attachment: initial; background-clip: initial; background-color: #d9e7b0; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #202020;"&gt;sdk&lt;/span&gt;&amp;nbsp;release out there but in order to solve this you should replace mxmlc.&lt;span class="il" style="background-attachment: initial; background-clip: initial; background-color: #d9e7b0; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #202020;"&gt;jar&lt;/span&gt;&amp;nbsp;in libs folder of your existing&amp;nbsp;&lt;span class="il" style="background-attachment: initial; background-clip: initial; background-color: #d9e7b0; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #202020;"&gt;sdk&lt;/span&gt;location.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Good mxmlc.&lt;span class="il" style="background-attachment: initial; background-clip: initial; background-color: #d9e7b0; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #202020;"&gt;jar&lt;/span&gt;&amp;nbsp;file can be downloaded from:&amp;nbsp;&lt;a href="https://bugs.adobe.com/jira/secure/attachment/62348/mxmlc.jar" style="color: #67753a;" target="_blank"&gt;https://bugs.adobe.com/jira/&lt;wbr&gt;&lt;/wbr&gt;secure/attachment/62348/mxmlc.&lt;wbr&gt;&lt;/wbr&gt;&lt;span class="il" style="background-attachment: initial; background-clip: initial; background-color: #d9e7b0; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #202020;"&gt;jar&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;And the complete Jira issue is at:&amp;nbsp;&lt;a href="https://bugs.adobe.com/jira/browse/SDK-26799" style="color: #67753a;" target="_blank"&gt;https://bugs.adobe.com/jira/&lt;wbr&gt;&lt;/wbr&gt;browse/&lt;span class="il" style="background-attachment: initial; background-clip: initial; background-color: #d9e7b0; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #202020;"&gt;SDK&lt;/span&gt;-26799&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Enjoy your incremental builds again :)&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;(it seams that this occurs when you are using halo and spark components al together only)&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/gYYq1uHYZhE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/3036443293684745356/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=3036443293684745356" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/3036443293684745356?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/3036443293684745356?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/gYYq1uHYZhE/flex-arrayindexoutofbounds-exception-in.html" title="Flex ArrayIndexOutOfBounds Exception in SDK 4.1 on incremental builds" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2011/03/flex-arrayindexoutofbounds-exception-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQFRX49fip7ImA9Wx9aFk0.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-3925115046460961758</id><published>2011-03-08T19:01:00.000+01:00</published><updated>2011-03-08T19:01:54.066+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-08T19:01:54.066+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="flex" /><title>Embed fonts in Flex but smartly!</title><content type="html">&lt;span class="Apple-style-span" style="border-collapse: collapse; line-height: 16px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Embeded fonts have so many advantages instead of using system ones. As Adobe stated already over this topic:&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;ul style="margin-bottom: 0px; margin-left: 16px; margin-right: 16px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; line-height: 16px;"&gt;
&lt;li style="line-height: 16px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 6px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="line-height: 16px; margin-bottom: 3px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Client environment does not need the font to be installed.&lt;/div&gt;&lt;/li&gt;
&lt;li style="line-height: 16px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 6px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="line-height: 16px; margin-bottom: 3px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Embedded fonts can be rotated and faded.&lt;/div&gt;&lt;/li&gt;
&lt;li style="line-height: 16px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 6px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="line-height: 16px; margin-bottom: 3px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Embedded fonts are anti-aliased, which means that their edges are smoothed for easier readability. This is especially apparent when the text size is large.&lt;/div&gt;&lt;/li&gt;
&lt;li style="line-height: 16px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 6px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="line-height: 16px; margin-bottom: 3px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Embedded fonts provide smoother playback when zooming.&lt;/div&gt;&lt;/li&gt;
&lt;li style="line-height: 16px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 6px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="line-height: 16px; margin-bottom: 3px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Text appears exactly as you expect when you use embedded fonts.&lt;/div&gt;&lt;/li&gt;
&lt;li style="line-height: 16px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 6px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="line-height: 16px; margin-bottom: 3px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;When you embed a font, you can use the advanced anti-aliasing information that provides clear, high-quality text rendering in SWF files. Using advanced anti-aliasing greatly improves the readability of text, particularly when it is rendered at smaller font sizes.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/span&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;But there are drawbacks as well:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Increased application size (longer download time)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Problems with combining halo and spark components (halo must use embed-as-cff: false)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Increased compile time (more hitting over the keyboard and shouting ccmooon cmooooon :D )&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;So there must be some way to have both of 2 worlds of embeded vs non-embeded fonts and enjoy the coolness of embeded fonts. And yes, there is. There are some optimizations available like embeding just the range of characters.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Flex 4 SDK brought us &amp;nbsp;'''fontswf''' tool to pack your fonts as swf, which I find as a great way to manage application fonts.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;fontswf&lt;/b&gt; has some good arguments to optimize what you get as an output at the end eg. enter character range to be exported.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Sample command line:&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;fontswf -u U+0041-U+005A,U+0061-U+007A,U+0030-U+0039,U+0020-U+002F,U+003A-U+0040,U+005B-U+0060,U+007B-U+007E &amp;nbsp;-a Arial -o arial arial.ttf&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;More about this tool and command line arguments: &lt;a href="http://bit.ly/gshXnH"&gt;http://bit.ly/gshXnH&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;And a bit about ranges (explanation what has been done above):&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;U 0041-U 005A, /* Upper-Case [A..Z] */&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;U 0061-U 007A, /* Lower-Case a-z */&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;U 0030-U 0039, /* Numbers [0..9] */&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;U 0020-U 002F, /* Punctuation */&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;U 003A-U 0040, /* Punctuation */&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;U 005B-U 0060, /* Punctuation */&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;U 007B-U 007E; /* Punctuation */&lt;/span&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/mD1H6JVoh5g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/3925115046460961758/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=3925115046460961758" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/3925115046460961758?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/3925115046460961758?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/mD1H6JVoh5g/embed-fonts-in-flex-but-smartly.html" title="Embed fonts in Flex but smartly!" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2011/03/embed-fonts-in-flex-but-smartly.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4FSH8_cCp7ImA9WhZTE0Q.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-5422922129862325592</id><published>2011-03-07T21:24:00.002+01:00</published><updated>2011-03-17T22:21:59.148+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-17T22:21:59.148+01:00</app:edited><title>Coding in the Cloud</title><content type="html">&lt;span class="Apple-style-span" style="background-color: #f3f3f3; font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Update (03-17) new Cloud ide is available from the creators of Exo platform&amp;nbsp;&lt;a href="http://cloud-ide.com/"&gt;http://cloud-ide.com/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Everyone is speaking that we are in the years of Cloud. Cloud is everywhere. It leverages your infrastructure, it lowers operational costs, it scales whenever and how you need it, it helps you have your data wherever you go... well I will not discuss previously stated but it is definitely time for clouds to offer us something more. To allow us to live completely in the web. And for developers it means having great development tools online.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;There is always a question over how useful is this but with the todays trend to have internet connected devices with not so great processing power and trend for collaboration on every step this might have a great potential. It would be great that you can code check over what your team is doing while you're on your tablet device and even contribute if you want. &lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;....and how close are we to there.. well it seams its around the corner but there are still missing parts so this can be really productive.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;Here is the list what is available that came to my attention:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://c9.io/"&gt;http://c9.io/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://compilr.com/"&gt;http://compilr.com&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://shiftedit.net/"&gt;http://shiftedit.net&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://codepad.org/"&gt;http://codepad.org/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://jsbin.com/"&gt;http://jsbin.com/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.coderun.com/"&gt;http://www.coderun.com&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.bungeeconnect.com/"&gt;http://www.bungeeconnect.com/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://ideone.com/"&gt;http://ideone.com&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.online-php.com/"&gt;http://www.online-php.com/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.willryan.co.uk/WWWorkspace"&gt;http://www.willryan.co.uk/WWWorkspace&lt;/a&gt;/ - this one more a prototype that can be fired up locally&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;And some of this have really cool features like collaborative editing and live chat, language validation and even compilation they still lack a lot of what you get in your favourite IDEs right now. Eg.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;support running just JavaScript&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;some have evaluation ability but fail with good editing features.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;you cannot add additional libraries to your project&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;there is no way to simulate running web applications&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;etc..&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;So basically what we have now is a syntax highlighting and some evaluation... but there is some cool factor in all this and certainly there would be some interesting updates and newcomers in this area so definitely something to watch.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;If you ask for my favorite at this time, I am setting my eye on Cloud9. They are basing their engine on &lt;a href="http://ace.ajax.org/"&gt;ACE&lt;/a&gt;&amp;nbsp;which is a successor of Mozilla Bespin (or SkyWriter) project so definitely have a good base.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;So don't trow out your IDEs ... for now...&lt;/span&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/q4GMTGb8Qtc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/5422922129862325592/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=5422922129862325592" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/5422922129862325592?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/5422922129862325592?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/q4GMTGb8Qtc/coding-in-cloud.html" title="Coding in the Cloud" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2011/03/coding-in-cloud.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcNQnY5cSp7ImA9Wx9RF0Q.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-6764751889146700494</id><published>2010-12-19T22:10:00.001+01:00</published><updated>2010-12-19T22:11:33.829+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-19T22:11:33.829+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="flex" /><category scheme="http://www.blogger.com/atom/ns#" term="web service" /><title>Interacting with WSSE Services from Flex</title><content type="html">&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Connecting to WSSE (Web Service Security Environment) from Flex is a rarely met. Recently I had a requirement to implement backend integration using WSSE UsernameToken Profile.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;If you want to know more about WSSE you can look at the official oasis specifications:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;a href="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf" style="color: blue;"&gt;WSSE specification&lt;/a&gt;&amp;nbsp;(PDF) at OASIS.&lt;/span&gt;&lt;/li&gt;
&lt;li style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;a href="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0.pdf"&gt;Username token profile&lt;/a&gt; (PDF) of WS-Security&lt;/span&gt;&lt;/li&gt;
&lt;li style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;a href="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0.pdf" style="color: blue;"&gt;X.509 token profile&lt;/a&gt;&amp;nbsp;(PDF) of WS-Security.&lt;/span&gt;&lt;/li&gt;
&lt;li style="color: #222222;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;a href="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0.pdf" style="color: blue;"&gt;SAML token profile&lt;/a&gt;&amp;nbsp;(PDF) of WS-Security.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Trebuchet MS', sans-serif;"&gt;I would cover now just the Username token profile which is the biggest chance that you'll met in your environment.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Trebuchet MS', sans-serif;"&gt;Username token can use PasswordText or PasswordDigest for authentication and PasswordDigest is created like this:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 12px; line-height: 16px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-size: 12px; line-height: 16px;"&gt;PasswordDigest = Base64 (SHA1 (Nonce + CreationTimestamp + Password)) (UTF8 Encoded)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 12px; line-height: 16px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 16px;"&gt;SHA1 is not available by default in Flex SDK but hopefully there &lt;a href="https://github.com/mikechambers/as3corelib"&gt;as3corelib is available&lt;/a&gt;&amp;nbsp;(thanks Mike). It contain a method that can encode this for us:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 16px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&amp;nbsp;SHA1.hashToBase64(String)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;And now all we have to do is to assemble proper headers to send to our WSSE service call and here is how:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;pre class="brush: as3"&gt;private function callWS(username:String, pass:String, nonce:String, currentDate:Date):void{
    
    authWS.clearHeaders();
    
    // convert date to UTC time
    currentDate = DateUtil.getUTCDate(currentDate);

    var base64:Base64Encoder = new Base64Encoder();
    base64.encode(nonce);
     
    nonce = base64.toString();
  
    
    var passString:String = nonce+df.format(currentDate)+pass;
    
    var passDigest:String = SHA1.hashToBase64(passString);
    var securityQName:QName = new QName(SECEXT_NS, "Security");
    
    var xmlContent:XML =&lt;wsse:Security
     xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
     xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
     soapenv:mustUnderstand="1"
     &gt;
     &lt;wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-2"&gt;
         &lt;wsu:Created&gt;{df.format(currentDate)}&lt;/wsu:Created&gt;
         &lt;/wsu:Timestamp&gt;
         &lt;wsse:UsernameToken xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-1"&gt;
         &lt;wsse:Username&gt;{username}&lt;/wsse:Username&gt;
         &lt;wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest"&gt;{passDigest}&lt;/wsse:Password&gt;
         &lt;wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"&gt;{nonce}&lt;/wsse:Nonce&gt;
         &lt;wsu:Created&gt;{df.format(currentDate)}&lt;/wsu:Created&gt;
         &lt;/wsse:UsernameToken&gt;
     &lt;/wsse:Security&gt;;
    
    var securityHeader:SOAPHeader = new SOAPHeader(securityQName,xmlContent);
    
    authWS.addHeader(securityHeader);
    
    var obj:Object = new Object();
    obj.param1 = value1;
     
    authWS.getOperation("someOperation").arguments = obj;
    authWS.getOperation("someOperation").send();
   }


&lt;/pre&gt;&lt;br /&gt;
And web service is declared regularly. Here is the example in mxml:&lt;br /&gt;
&lt;pre class="brush: xml"&gt;&lt;fx:Declarations&gt;
  &lt;s:WebService id="authWS" wsdl="http://pathToYourService?wsdl"
       load="authWS_loadHandler(event)"
       result="authWS_resultHandler(event)"
       fault="authWS_faultHandler(event)"
       &gt;&lt;/s:WebService&gt;
  &lt;mx:DateFormatter formatString="YYYY-MM-DDTHH:NN:SSZ" id="df" &gt; &lt;/mx:DateFormatter&gt;
&lt;/fx:Declarations&gt;
&lt;/pre&gt;&lt;br /&gt;
And thats about it. Take note to use &lt;strong&gt;SHA1.hashToBase64(String)&lt;/strong&gt; method to generate your password digest and be sure to always get the UTC time and thats about it.&lt;br /&gt;
&lt;br /&gt;
Happy integration!&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/vfUZik9Nhb8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/6764751889146700494/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=6764751889146700494" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/6764751889146700494?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/6764751889146700494?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/vfUZik9Nhb8/interacting-with-wsse-services-from.html" title="Interacting with WSSE Services from Flex" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2010/12/interacting-with-wsse-services-from.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUEQX89cSp7ImA9Wx9TGEo.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-3321111001748900606</id><published>2010-11-27T17:43:00.000+01:00</published><updated>2010-11-27T17:43:20.169+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-27T17:43:20.169+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="devoxx" /><title>Devoxx 2010 Review</title><content type="html">&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Drago mi je da sam imao priliku da ove godine posetim Devoxx. Kartu za isti je obezbedio lokalni JUG &lt;a href="http://javasvet.rs/"&gt;JavaSvet&lt;/a&gt;&amp;nbsp;a ostatak troškova je pokrio &lt;a href="http://www.gecko.rs/"&gt;Gecko Solutions&lt;/a&gt;&amp;nbsp;(firma u kojoj radim).&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Poseta Devoxxu je bio pun pogodak i korisno je naći se među svim ljudima strogo zagriženih tehnoloških monstruma :)&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Reportažu možete pogledati na stranici &lt;a href="http://javasvet.rs/sastanak/devoxx2010/index.html"&gt;java sveta&lt;/a&gt;. I ako vam se cela ova priča svidi, vidimo se sledeće godine! A obzirom na gužvu za sledeću će biti potrebno mnogo ranije nabaviti karte :(&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;... hmm this is in Serbian !? Well I am Serbian and it is a local JUG community.. but if you still want to read the Devoxx 2010 Review try the &lt;a href="http://translate.google.com/translate?js=n&amp;amp;prev=_t&amp;amp;hl=en&amp;amp;ie=UTF-8&amp;amp;layout=2&amp;amp;eotf=1&amp;amp;sl=sr&amp;amp;tl=en&amp;amp;u=http://javasvet.rs/sastanak/devoxx2010/index.html"&gt;google translation of the article&lt;/a&gt;. It gives a very decent output. Great job google!&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/RrgMukyiHlA" height="1" width="1"/&gt;</content><link rel="related" href="http://javasvet.rs/sastanak/devoxx2010/index.html" title="Devoxx 2010 Review" /><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/3321111001748900606/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=3321111001748900606" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/3321111001748900606?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/3321111001748900606?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/RrgMukyiHlA/devoxx-2010-review.html" title="Devoxx 2010 Review" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2010/11/devoxx-2010-review.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIMQn04fSp7ImA9Wx5aFEU.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-6800946901940911520</id><published>2010-11-11T16:16:00.000+01:00</published><updated>2010-11-11T16:16:23.335+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-11T16:16:23.335+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="centos" /><category scheme="http://www.blogger.com/atom/ns#" term="openssl" /><category scheme="http://www.blogger.com/atom/ns#" term="sni" /><category scheme="http://www.blogger.com/atom/ns#" term="httpd" /><title>Apache and NameBased SSL VHosts with SNI</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;In my company we have one server which needs to server various sites with the ability to have different certificates. Since it has 1 public IP address this can only be achieved through using &lt;a href="http://www.google.com/search?sourceid=chrome&amp;amp;ie=UTF-8&amp;amp;q=SNI"&gt;SNI&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;SNI is available with &lt;a href="http://www.gnu.org/software/gnutls/"&gt;GNUTLS &lt;/a&gt;and with &lt;a href="http://www.openssl.org/"&gt;OpenSSL&lt;/a&gt; starting from 0.9.8f.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Since this server is Centos 5.5 it doesn't come with the appropriate version of OpenSSL. In order to have this up and running best way to do it is to compile OpenSSL along with Apache httpd from the source.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Prior to doing anything it is important to uninstall devel packages:&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&amp;nbsp;&lt;i&gt;&lt;b&gt;yum remove {httpd,openssl}-devel&lt;/b&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Now download OpenSSL 1.0.0a (you can use different version, but I worked with this):&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;wget&amp;nbsp;http://www.openssl.org/source/openssl-1.0.0a.tar.gz&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;tar xzvf&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;openssl-1.0.0a.tar.gz&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;cd openssl-1.0.0a&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;./configure&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;make&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;make install&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;This will install it to the /usr/local/ssl. Now copy openssl from /usr/local/ssl/bin/openssl to /usr/bin/openssl.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Download latest apache http server source&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;wget http://mirror.candidhosting.com/pub/apache//httpd/httpd-2.2.17.tar.gz&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;tar xzvf&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;httpd-2.2.17.tar.gz&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;cd&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;httpd-2.2.17&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;and now it is important to enable ssl and specify path to openssl in the configure script. I included almost all of the apache modules here except Ldap (I had problems compiling it, and since we don't use it here I decided to leave it out). You can always compile additional modules if you like.&lt;/span&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;./configure --enable-so --enable-ssl --with-ssl=/usr/local/ssl \&lt;br /&gt;
--enable-auth-anon \&lt;br /&gt;
--enable-auth-dbm \&lt;br /&gt;
--enable-auth-digest \&lt;br /&gt;
--enable-cache \&lt;br /&gt;
--enable-cern-meta \&lt;br /&gt;
--enable-charset-lite \&lt;br /&gt;
--enable-dav \&lt;br /&gt;
--enable-dav-fs \&lt;br /&gt;
--enable-deflate \&lt;br /&gt;
--enable-disk-cache \&lt;br /&gt;
--enable-expires \&lt;br /&gt;
--enable-ext-filter \&lt;br /&gt;
--enable-file-cache \&lt;br /&gt;
--enable-headers \&lt;br /&gt;
--enable-info \&lt;br /&gt;
--enable-logio \&lt;br /&gt;
--enable-mem-cache \&lt;br /&gt;
--enable-mime-magic \&lt;br /&gt;
--enable-isapi \&lt;br /&gt;
--enable-proxy \&lt;br /&gt;
--enable-proxy-connect \&lt;br /&gt;
--enable-proxy-ftp \&lt;br /&gt;
--enable-proxy-http \&lt;br /&gt;
--enable-rewrite \&lt;br /&gt;
--enable-speling \&lt;br /&gt;
--enable-unique-id \&lt;br /&gt;
--enable-usertrack \&lt;br /&gt;
--enable-vhost-alias&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;when this is finished run&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;make&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;make install&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;This will put apache in the /usr/local/apache2 folder.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;And you are ready to go.. now you can generate certificates per Host Name and add them to your Virtual Hosts and it will work.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Apache has a guide following this topic as well:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;a href="http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI"&gt;http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;And here is great tutorial on OpenSSL usage:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.tc.umn.edu/~brams006/selfsign.html"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;http://www.tc.umn.edu/~brams006/selfsign.html&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/_MBYC5mdcf0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/6800946901940911520/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=6800946901940911520" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/6800946901940911520?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/6800946901940911520?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/_MBYC5mdcf0/apache-and-namebased-ssl-vhosts-with.html" title="Apache and NameBased SSL VHosts with SNI" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2010/11/apache-and-namebased-ssl-vhosts-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcAQnw8fyp7ImA9WxFbEEQ.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-1194532679278038600</id><published>2010-07-02T19:00:00.000+02:00</published><updated>2010-07-02T19:00:43.277+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-02T19:00:43.277+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="wifi" /><title>Fujitsu Siemens Amilo Launch Manager and Windows 7 - enable Wireless</title><content type="html">For all of you that have Amilo laptops which don't have Launch Manager available for new Win 7 here is simple solution to run your wireless again!&lt;br /&gt;
I spent quite a time until finally managed to enable this card. I thought that enabling card just in bios will do the trick but cards have to be enabled from inside os as well and since Launch Manager will not work in default installation this will not work.&lt;br /&gt;
&lt;br /&gt;
And hopefully running Launch Manager in compatibility mode did the trick.&lt;br /&gt;
So steps are:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;go to &lt;a href="http://uk.ts.fujitsu.com/support/"&gt;fsc support page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;find your laptop and downlod launch manager for Windows XP&lt;/li&gt;
&lt;li&gt;extract it and then right click go to compatibility view and select run as "windows xp (service pack 2)" - didn't work for me with service pack 3&lt;/li&gt;
&lt;li&gt;enable "run as administrator" as well&lt;/li&gt;
&lt;li&gt;install it and reboot&lt;/li&gt;
&lt;li&gt;Voila! Press your launch key and it should work.&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;This solution is probably the same for all other laptops with similar problems. So give it a try (don't trow away your old good buddies yet :)&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/0SbU9L37s2I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/1194532679278038600/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=1194532679278038600" title="25 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/1194532679278038600?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/1194532679278038600?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/0SbU9L37s2I/fujitsu-siemens-amilo-launch-manager.html" title="Fujitsu Siemens Amilo Launch Manager and Windows 7 - enable Wireless" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>25</thr:total><feedburner:origLink>http://blog.miloszikic.com/2010/07/fujitsu-siemens-amilo-launch-manager.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04AQn4ycSp7ImA9WxFXE0U.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-6919391682496197288</id><published>2010-05-20T20:57:00.001+02:00</published><updated>2010-05-20T20:59:03.099+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-20T20:59:03.099+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="meego" /><category scheme="http://www.blogger.com/atom/ns#" term="nokia" /><category scheme="http://www.blogger.com/atom/ns#" term="qt" /><category scheme="http://www.blogger.com/atom/ns#" term="smarthphone" /><category scheme="http://www.blogger.com/atom/ns#" term="symbian" /><title>Is Nokia smart enough for the SmartPhone Wars</title><content type="html">Everybody is buzzing about it. It is among us. The SmartPhone Wars is getting huge day by day and it is not going to stop soon. Today we have&lt;a href="http://developer.apple.com/iphone/index.action"&gt; iPhoneOS&lt;/a&gt;, &lt;a href="http://www.android.com/"&gt;Android&lt;/a&gt;, &lt;a href="http://na.blackberry.com/eng/developers/"&gt;RIM&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/windowsmobile/default.aspx"&gt;Windows Mobile&lt;/a&gt;, &lt;a href="http://www.bada.com/"&gt;Bada&lt;/a&gt;,&lt;a href="https://brewmobileplatform.qualcomm.com/devnet/index.jsp"&gt; Brew&lt;/a&gt;,&lt;a href="http://developer.symbian.org/"&gt; Symbian&lt;/a&gt; and &lt;a href="http://meego.com/developers"&gt;MeeGo &lt;/a&gt;and probably some that I left out.. Ohh man what a list!&lt;br /&gt;
&lt;br /&gt;
It is &lt;b&gt;great&lt;/b&gt; for the end users. They get all new features, a lot of cool and flashy buzzwords and services, a lot information to process and it augments every day. Beside this they get new UX patterns with almost each new smart OS out there so they are never bored. Ok maybe too much to process but this wars bring technology to the people. Smart phones are becoming cheaper by the day.&lt;br /&gt;
&lt;br /&gt;
And one more thing a lot of smart phone producers oriented mobile phones production as a fashion accessory. Thats very neat for producers since they are almost pushing people to buy new phone every season. No one wants to be sooooo yesterday and carry around phone produced 6 months ago!! :)&lt;br /&gt;
&lt;br /&gt;
But what is in there for 3rd party developers: huge amount of SDKs and APIs and then again ability to reuse the same idea on multiple platforms. Kinda hell for development and there is no notice of standardization in near future. So where to look what to do first.&lt;br /&gt;
&lt;br /&gt;
Certainly one good thing is to &lt;a href="http://www.google.com/trends?q=android,+iphone,+windows+mobile,+symbian,+rim&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=all&amp;amp;sort=0"&gt;follow trends&lt;/a&gt;. They can say a lot about current state but how to predict a future!? Well thats almost impossible but following blogs and watching out on marketing campaigns can help a lot. At the end some of this smart os platforms will go up. And right now I think that Nokia has that potential.&lt;br /&gt;
&lt;br /&gt;
Yeah they are the biggest company out there and being big makes some stuff going slow. But they are still number one in selling mobile phones. They can soon become a big number one with over 95% sell rate of regular phone (s40 devices). That is good.. keeps money coming in but you can not leave on old glory.&lt;br /&gt;
&lt;br /&gt;
With Smart Phones Nokia is kinda 3 years behind their competition. BUT there are some very smart moves this company is doing at this moment. They have 2 great products on the way:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;new version of Symbian os with multitouch support (&lt;a href="http://www.symbian.org/symbian-feature-set/symbian-releases/symbian3"&gt;Symbian^3&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://meego.com/"&gt;MeeGo &lt;/a&gt;(in partnership with Intel!)&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;And this 2 platforms are very smart. Symbian is a true embedded OS out there. It is build for devices with limited hardware and it can run on much cheaper hardware then any other smart OS out there while performing the same. Beside this battery life on symbian is much much longer then on full blown linux/unix adopted solutions for mobile platforms.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Symbian is not that advanced and smooth compared to other platforms but with new release it will be. And it will be released in upcoming months. So it is practically here.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;And if you don't like Symbian there is full blown debian packed for mobile devices with a name MeeGo so you can do whatever you want without any limitations (geeky :).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;What is great about this platforms? Nothing in specific but development environment is great.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;2 years ago Nokia acquired &lt;a href="http://qt.nokia.com/"&gt;QT framework&lt;/a&gt; and packed it up with mobility SDK. It is great C++ multiplatform development environment. You can easily port any application to any platform that you like (Windows, Linux, MacOS, and now Symbian and MeeGo). And as at seamed that they are falling by the day &amp;nbsp;by the pressure of other companies out there they were cooking some very neat stuff.&lt;br /&gt;
&lt;br /&gt;
QT is great refreshing SDK. Yeath it is C++ but you can call it C++ on steroids. And it is supporting Code once deploy everywhere policy which is here a huge range of devices!&lt;br /&gt;
Beside this Nokia released great IDE and a good set of productivity tools like &lt;a href="http://www.forum.nokia.com/info/sw.nokia.com/id/7557c13f-0b43-4805-85ce-8414bfbade57/Flowella.html"&gt;Flowella&lt;/a&gt;&amp;nbsp;(prototyping tool). Their Simulator is great. It is super fast and is a true simulator and not a full OS (like Android Simulator which is heavy and slow). It supports all cool events to simulate (as well for simulating some unexpected conditions, eg. battery going off, phone drops etc).&lt;br /&gt;
&lt;br /&gt;
So this cool developer tools can be found at&amp;nbsp;&lt;a href="http://qt.nokia.com/products/developer-tools"&gt;http://qt.nokia.com/products/developer-tools&lt;/a&gt;. Feel free to look around and to play with them. And if you like you can play with them while being competitive as well, just join &lt;a href="http://www.callingallinnovators.com/"&gt;Nokia competition.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
And here is some official Nokia video:&lt;br /&gt;
&lt;object height="385" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/39D-a3OU1Nk&amp;hl=en_US&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/39D-a3OU1Nk&amp;hl=en_US&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
And for the end I think that Nokia is on the right path now and poses some great potential. It certainly got my support!&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/ZwA1KoHcfqg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/6919391682496197288/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=6919391682496197288" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/6919391682496197288?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/6919391682496197288?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/ZwA1KoHcfqg/is-nokia-smart-enough-for-smartphone.html" title="Is Nokia smart enough for the SmartPhone Wars" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2010/05/is-nokia-smart-enough-for-smartphone.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMGQnkyeyp7ImA9WxFSEUU.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-7340482214283498561</id><published>2010-04-13T21:37:00.000+02:00</published><updated>2010-04-13T21:37:03.793+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-13T21:37:03.793+02:00</app:edited><title>Why security is important and should we rethink one-time passwords</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Today I got mail from apache saying that their JIRA was attacked and its security mechanism breached using&lt;/span&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Cross-site_scripting" style="text-decoration: none;"&gt;cross site scripting (XSS) attack&lt;/a&gt;&amp;nbsp;which resulted in gaining all user data from the server hosting apache JIRA. Hopefully apache has a good policy of one-time password policy so this was not propagated to rest of their servers.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;Original link:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;a href="https://blogs.apache.org/infra/entry/apache_org_04_09_2010"&gt;https://blogs.apache.org/infra/entry/apache_org_04_09_2010&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;a href="https://blogs.apache.org/infra/entry/apache_org_04_09_2010"&gt;&lt;/a&gt;&lt;/span&gt;Apache guys informed Atlassian of this security flaw but they didn't manage to react on time which resulted with breach in their own system:&amp;nbsp;&lt;span class="Apple-style-span" style="color: black; font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;a href="http://blogs.atlassian.com/news/2010/04/oh_man_what_a_day_an_update_on_our_security_breach.html"&gt;http://blogs.atlassian.com/news/2010/04/oh_man_what_a_day_an_update_on_our_security_breach.html&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;Bad news but this should be a good lesson learned for all of us and to think of security as much as possible and always question ourselves.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;And the last one consider having different passwords for all of your social services and specially for sensitive accounts!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', 'Lucida Grande', Helvetica, Arial, Verdana, sans-serif; font-size: 13px;"&gt;Oh yeah and great work for apache team on detecting and handling this.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/5PMAzHnPQM0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/7340482214283498561/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=7340482214283498561" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/7340482214283498561?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/7340482214283498561?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/5PMAzHnPQM0/why-security-is-important-and-should-we.html" title="Why security is important and should we rethink one-time passwords" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2010/04/why-security-is-important-and-should-we.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcHQXs7eSp7ImA9WxFSEUU.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-1528070305170793504</id><published>2010-04-13T20:40:00.000+02:00</published><updated>2010-04-13T20:40:30.501+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-13T20:40:30.501+02:00</app:edited><title>Maven war plugin and non default webapp folder</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Yesterday I started mavenizing some old project (with a lot of messy legacy code that needs refactoring, but thats another story :) and it took me half an hour to figure one small thing that was in front of my eyes. Therefor I want to share this with you so you can note the same if you need it somewhere.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;It is common war project with a non default maven webapp folder. In order to fix this I configured war plugin to use a nonstandard webapp folder by using configuration element:&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; color: #333333; font-size: 11px;"&gt;&lt;strong&gt;&lt;a href="http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html#webappDirectory" style="color: #4477aa; text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;webappDirectory&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;.&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;&amp;lt;build&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;plugins&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;maven-war-plugin&amp;lt;/artifactId&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.1-beta-1&amp;lt;/version&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;webappDirectory&amp;gt;web&amp;lt;/webappDirectory&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/plugins&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/build&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;A&lt;span class="Apple-style-span" style="font-size: small;"&gt;nd this worked but I found out that I was getting .svn metadata copied to resulting war. This was very&amp;nbsp;awkward&amp;nbsp;for me so I tried to use packagingExcludes and making ignore list and then after about half an hour discovered that proper attribute should b&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;e&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; color: #333333; font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 11px;"&gt;&lt;strong&gt;&lt;a href="http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html#warSourceDirectory" style="color: #4477aa; text-decoration: none;"&gt;warSourceDirectory&lt;/a&gt;&amp;nbsp;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;and not&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;strong&gt;&lt;a href="http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html#webappDirectory" style="color: #4477aa; text-decoration: none;"&gt;webappDirectory&lt;/a&gt;. &lt;/strong&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The later one is used to specify where webapp will finish and it is used to pack war file from there so I didn't notice my mistake at first.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; color: #333333;"&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; color: #333333;"&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;After changing to warSourceDirectory everything behaved normally and expected. Full reference of available options for war plugin are&amp;nbsp;available&amp;nbsp;at:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: black; font-weight: normal;"&gt;&lt;a href="http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; color: #333333;"&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: black; font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; color: #333333;"&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: black; font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Hope that this post helped someone not to loose 30 minutes going into wrong direction :)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/13dY2ycowgE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/1528070305170793504/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=1528070305170793504" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/1528070305170793504?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/1528070305170793504?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/13dY2ycowgE/maven-war-plugin-and-non-default-webapp.html" title="Maven war plugin and non default webapp folder" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://blog.miloszikic.com/2010/04/maven-war-plugin-and-non-default-webapp.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMHQXg7fyp7ImA9WxBbFEU.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-4498505825172411513</id><published>2010-03-13T13:28:00.004+01:00</published><updated>2010-03-13T14:37:10.607+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-13T14:37:10.607+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="flash builder" /><category scheme="http://www.blogger.com/atom/ns#" term="eclipse" /><title>Eclipse - Flash Builder 4 Shortcuts</title><content type="html">Probably much of you power eclipse users know this already but I thought to revisit and write some command keyboard shortcuts that are very useful for me. Some of you may discover something that you were missing. Ok here we go.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;CTR+3&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;easy navigate to all IDE features&lt;/li&gt;&lt;li&gt;you can type whatever you want eg ("Generate getters", "Toggle ASDoc Comments", "Whitespace", "Join lines" etc)&lt;/li&gt;&lt;li&gt;play around it and see that how cool this is&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;CTRL+SHIFT+R&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Opens Resources (all files inside your projects can be found with this)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;CTRL+SHIFT+T&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Opens Types &lt;/li&gt;&lt;li&gt;supports CamelCase (eg. you can type AB and this will find all classes which have AsomethingBsomething)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;CTRL+O&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Quick Outline (gives you fast overview of the class with all of its members)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;CTRL+ALT+H&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Open Hierarchy - easily see from where are your methods called&lt;/li&gt;&lt;li&gt;stop on a method name and play around&lt;/li&gt;&lt;li&gt;works inside Flex SDK as well!!!&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;CTRL+I&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Correct Indentation - select a portion or complete file and press CTRL+I&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;CTRL+Q&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Go to last edit&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;CTRL+E&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;List open editors&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;CTRL+TAB, CTRL+SHIFT+TAB, CTRL+PgUp, CTRL+PgDn&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Shuffle through open editors&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;ALT+Up/Down, CTRL+ALT+Up/Down&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;move/copy line up or down&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;CTRL+Up/Down&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Move editor up/down&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;CTRL+D&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;delete current line&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;CTRL+ALT+R&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Refactor method or variable&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And at last to show all available keys at the moment press &lt;b&gt;CTRL+SHIFT+L.&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/3CCLIDespAo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/4498505825172411513/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=4498505825172411513" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/4498505825172411513?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/4498505825172411513?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/3CCLIDespAo/eclipse-flash-builder-4-shortcuts.html" title="Eclipse - Flash Builder 4 Shortcuts" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.miloszikic.com/2010/03/eclipse-flash-builder-4-shortcuts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYGQno6cSp7ImA9WxBVFU8.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-7473247315581472997</id><published>2010-02-18T21:37:00.002+01:00</published><updated>2010-02-18T21:48:43.419+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-18T21:48:43.419+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="seo" /><category scheme="http://www.blogger.com/atom/ns#" term="sem" /><category scheme="http://www.blogger.com/atom/ns#" term="social networks" /><title>SEO/SEM presentation</title><content type="html">Recently I had a presentation on reveling the secrets behind SEO/SEM and what it has become today.&lt;br /&gt;&lt;br /&gt;In the presentation I take a look on the history of Search engine Marketing and move to concepts behind new media presentations and marketing as well as an overview on social media services.&lt;br /&gt;&lt;br /&gt;You can view and download this presentation at:&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_3220028"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/zilet/seosem-3220028" title="SEO/SEM"&gt;SEO/SEM&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=seo-100218144100-phpapp01&amp;stripped_title=seosem-3220028" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=seo-100218144100-phpapp01&amp;stripped_title=seosem-3220028" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/zilet"&gt;zilet&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/4IuT-bjedVw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/7473247315581472997/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=7473247315581472997" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/7473247315581472997?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/7473247315581472997?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/4IuT-bjedVw/seosem-presentation.html" title="SEO/SEM presentation" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2010/02/seosem-presentation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YFQ347fCp7ImA9WxBVEk8.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-6107761431234359469</id><published>2010-02-15T08:50:00.004+01:00</published><updated>2010-02-15T09:05:12.004+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-15T09:05:12.004+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="flex" /><category scheme="http://www.blogger.com/atom/ns#" term="air" /><title>AIR on Android, just around the corner</title><content type="html">Adobe announced this yesterday at World Mobile Congress 2010.&lt;br /&gt;Air for Android is expected later this year. It is optimized for mobile processors and from demos presented now shows astonish performance!&lt;br /&gt;&lt;br /&gt;And here is the video  presentation:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="256"&gt;&lt;param name="movie" value="http://tv.adobe.com/assets//swf/player.swf"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="FlashVars" value="fileID=5135&amp;amp;context=76&amp;amp;embeded=true&amp;amp;environment=production"&gt;&lt;embed src="http://tv.adobe.com/assets//swf/player.swf" flashvars="fileID=5135&amp;amp;context=76&amp;amp;embeded=true&amp;amp;environment=production" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="256"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Beside this Flash Player 10.1 was made available to content providers and mobile developers worldwide. It is expected to be released in the Q1 2010. Mobile platforms that will support the full Flash Player include Android, the BlackBerry® platform, Symbian® OS, Palm® webOS and Windows Mobile®.&lt;br /&gt;&lt;br /&gt;Now we just have to wait on Apple to loosen up and finally make an agreement with Adobe so we will have nice and beautiful flash available on apple mobile platforms.&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/oxuKHHUjQrs" height="1" width="1"/&gt;</content><link rel="related" href="http://blogs.adobe.com/flashplatform/2010/02/adobe_news_at_mobile_world_con.html" title="AIR on Android, just around the corner" /><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/6107761431234359469/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=6107761431234359469" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/6107761431234359469?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/6107761431234359469?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/oxuKHHUjQrs/air-on-android-just-around-corner.html" title="AIR on Android, just around the corner" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2010/02/air-on-android-just-around-corner.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04HRHw5eSp7ImA9WxNUFEs.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-3990547355631365361</id><published>2009-11-05T23:34:00.004+01:00</published><updated>2009-11-05T23:58:55.221+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-05T23:58:55.221+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="flex" /><category scheme="http://www.blogger.com/atom/ns#" term="logger" /><category scheme="http://www.blogger.com/atom/ns#" term="logging" /><title>Logging in Flex</title><content type="html">Server side developers have been used to use some Log4Something to provide application logging. &lt;br /&gt;&lt;br /&gt;Flex provides similar pattern to this but working a lot lately with various Flex developers they are not aware of it. All of them use trace() since it helps during debugging time but power of logging in production is avoided.&lt;br /&gt;&lt;br /&gt;If You have installed a debug version of Flash player (affects also Air running in ADL) you can configure logging by creating mm.cfg file in your %homepath% (on windows) or $home (on Linux).&lt;br /&gt;&lt;br /&gt;Sample mm.cfg file is:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;ErrorReportingEnable=1&lt;br /&gt;TraceOutputFileEnable=1&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This will enable logging and will put the log stuff in %homepath%\Application Data\Macromedia\Flash Player\Logs\flashlog.txt.&lt;br /&gt;If You want to change the file to which Flex does the logging just add the &lt;span style="font-weight:bold;"&gt;TraceOutputFileName&lt;/span&gt; property to the mm.cfg which will point to the file on the file system. More configuration options are available on &lt;a href="http://livedocs.adobe.com/flex/3/html/help.html?content=logging_04.html"&gt;livedocs.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However there is a more convenient way to achieve this and a better pattern as well. This is to use the same pattern already present in all other logging frameworks.&lt;br /&gt;&lt;br /&gt;First step is to initialize logging on application startup:&lt;br /&gt;&lt;blockquote&gt;// Create a target.&lt;br /&gt;            var logTarget:TraceTarget = new TraceTarget();&lt;br /&gt;&lt;br /&gt;            // Log only messages for the classes in the mx.rpc.* and &lt;br /&gt;            // mx.messaging packages.&lt;br /&gt;            logTarget.filters=["mx.rpc.*","mx.messaging.*"];&lt;br /&gt;&lt;br /&gt;            // Log all log levels.&lt;br /&gt;            logTarget.level = LogEventLevel.ALL;&lt;br /&gt;&lt;br /&gt;            // Add date, time, category, and log level to the output.&lt;br /&gt;            logTarget.includeDate = true;&lt;br /&gt;            logTarget.includeTime = true;&lt;br /&gt;            logTarget.includeCategory = true;&lt;br /&gt;            logTarget.includeLevel = true;&lt;br /&gt;&lt;br /&gt;            // Begin logging.&lt;br /&gt;            Log.addTarget(logTarget);&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This will create a default TraceTarget implementation which will in debug mode log to flashlog.txt if you have mm.cfg configured.&lt;br /&gt;&lt;br /&gt;And then in order to log:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;private static var logger:ILogger = Log.getLogger("com.test.logger.LogerSample");&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And then somewhere in the code just log in known way: logger.debug(), logger.info() etc.&lt;br /&gt;TraceTarget is not that useful for us but we can easily implement our own Targets and provide advanced loging features. &lt;a href="http://code.google.com/p/as3corelib/source/browse/trunk/src/com/adobe/air/logging/FileTarget.as?r=112"&gt;AS3CoreLib&lt;/a&gt; has FileTarget implemented which provides logging to file. It is easy to implement for instance WebServiceTarget, SocketTarget or similar.&lt;br /&gt;&lt;br /&gt;And one more thing for the ones used to pass the class instead of typing the string to Log.getLogger() You can implement a LogUtil class which will have a method like this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;public static function getLogName (object:Object) : String {&lt;br /&gt;  if (object is Class) {&lt;br /&gt;    return getQualifiedClassName(object);&lt;br /&gt;  } else {&lt;br /&gt;    return object.toString();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Now You can use a syntax like this to get logger:&lt;br /&gt;&lt;blockquote&gt;private static var logger:ILogger = Log.getLogger(LogerSample);&lt;/blockquote&gt;&lt;br /&gt;More on this topic can be read on &lt;a href="http://livedocs.adobe.com/flex/3/html/help.html?content=logging_09.html"&gt;logging livedocs.&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/Z9Q8biwgz9o" height="1" width="1"/&gt;</content><link rel="related" href="http://livedocs.adobe.com/flex/3/html/help.html?content=logging_09.html" title="Logging in Flex" /><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/3990547355631365361/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=3990547355631365361" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/3990547355631365361?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/3990547355631365361?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/Z9Q8biwgz9o/logging-in-flex.html" title="Logging in Flex" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2009/11/logging-in-flex.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcDSHYyfyp7ImA9WhNQEE0.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-841382485388271025</id><published>2009-10-14T19:33:00.002+02:00</published><updated>2012-11-15T20:01:19.897+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-11-15T20:01:19.897+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="Jasper" /><category scheme="http://www.blogger.com/atom/ns#" term="groovy" /><title>Groovy and JasperReports</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Yesterday I was trying out to the new iReport 3.6 to generate some reports. Everything went fine but on trying to run the report inside the app I've got:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:java"&gt;java.lang.NoClassDefFoundError: 
org/codehaus/groovy/control/CompilationFailedException
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
This was pretty awkward since I didn't reference any of the groovy stuff inside the code nor in the reports.&lt;br /&gt;
&lt;br /&gt;
After opening the .jrxml source and comparing it with the older version that I had I noticed the language="groovy" attribute in the jreport element. &lt;br /&gt;
&lt;br /&gt;
I don't know how this got set there but seems that groovy is the default from now on. When I removed this and recompiled the report everything worked great.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/vvmpNwL8Dw8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/841382485388271025/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=841382485388271025" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/841382485388271025?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/841382485388271025?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/vvmpNwL8Dw8/groove-and-jasperreports.html" title="Groovy and JasperReports" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://blog.miloszikic.com/2009/10/groove-and-jasperreports.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYHSXw5eCp7ImA9WxJVEU0.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-9120721367535301053</id><published>2009-06-27T13:41:00.002+02:00</published><updated>2009-06-27T13:45:38.220+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-27T13:45:38.220+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tx-datasource" /><category scheme="http://www.blogger.com/atom/ns#" term="seam" /><title>Multiple Data sources and Seam</title><content type="html">If You are using multiple data sources with seam there is a big possibility that You will get to the problem of transaction propagation from one data source to another.&lt;br /&gt;&lt;br /&gt;With EJB it is easy since You can use REQUIRES_NEW transaction type on methods on other data source but since in Seam this is not present (for the reason I am not aware of) and if going to XA data sources is not an option than there is a simple solution that will work perfectly if You need just to read the data from one data source.&lt;br /&gt;&lt;br /&gt;Solution is to use the &lt;local-tx-datasource &gt; on the data source You need transactions on and to use &lt;no-tx-datasource &gt; for the data source from which You read data.&lt;br /&gt;&lt;br /&gt;If You require transactions on both data sources then XA is maybe the only way to go.&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/k56PX5vbaGE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/9120721367535301053/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=9120721367535301053" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/9120721367535301053?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/9120721367535301053?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/k56PX5vbaGE/multiple-data-sources-and-seam.html" title="Multiple Data sources and Seam" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2009/06/multiple-data-sources-and-seam.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMAQn4_fSp7ImA9WxJVEU0.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-1188596488457850776</id><published>2009-06-27T13:23:00.004+02:00</published><updated>2009-06-27T13:34:03.045+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-27T13:34:03.045+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="seam" /><title>Seam convertEntity and ValueNot valid solution</title><content type="html">There are a few things that You should note when using &lt;s:convertEntity /&gt;:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Be sure to keep one persistence context throught out the whole form&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Implement equals and hashcode&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In equals method be sure not to compare against Class types since the objects are proxified and the classes doesn't comply if You compare it simple as &lt;span style="font-style:italic;"&gt;this.getClass().equals(other.getClass())&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In equals method be sure to always use getters if You are using JPA since the properties in proxy objects are not initialized if You access it directly. So always use: &lt;span style="font-style:italic;"&gt;this.getId().equals(other.getId())&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;And thats about it. Happy converting :)&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/NEwRcDNpxBg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/1188596488457850776/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=1188596488457850776" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/1188596488457850776?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/1188596488457850776?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/NEwRcDNpxBg/seam-convertentity-adn-valuenot-valid.html" title="Seam convertEntity and ValueNot valid solution" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2009/06/seam-convertentity-adn-valuenot-valid.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIHQXk7fSp7ImA9WxJXEU4.&quot;"><id>tag:blogger.com,1999:blog-1404651776875741610.post-4908164518333337930</id><published>2009-06-04T18:33:00.002+02:00</published><updated>2009-06-04T18:38:50.705+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-04T18:38:50.705+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="flex builder" /><title>Export release with Non-embeded resources option</title><content type="html">In Flex Builder even if this option is checked it can happen that You don't get all the assets copied after after all!!&lt;br /&gt;&lt;br /&gt;The solution is to copy the assets manually to the bin-release folder and do the export again and voila!&lt;img src="http://feeds.feedburner.com/~r/ZiletovBlog/~4/ssbcqbyGfjc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.miloszikic.com/feeds/4908164518333337930/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1404651776875741610&amp;postID=4908164518333337930" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/4908164518333337930?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1404651776875741610/posts/default/4908164518333337930?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZiletovBlog/~3/ssbcqbyGfjc/export-release-with-non-embeded.html" title="Export release with Non-embeded resources option" /><author><name>Miloš Žikić</name><uri>https://plus.google.com/104015497849467534431</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-7mTiMteiUnY/AAAAAAAAAAI/AAAAAAAAC4A/wIEIbmU5geM/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.miloszikic.com/2009/06/export-release-with-non-embeded.html</feedburner:origLink></entry></feed>
