<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-22315672</id><updated>2011-11-28T00:48:58.903+01:00</updated><category term='mobile'/><category term='flash'/><category term='media'/><category term='spotify'/><category term='javascript'/><category term='cache'/><category term='web'/><category term='3d'/><category term='ec2'/><category term='free'/><category term='as3'/><category term='mirror'/><category term='community'/><category term='hosting'/><category term='full screen'/><category term='Windows'/><category term='open source'/><category term='api'/><category term='Apple'/><category term='red5'/><category term='application'/><category term='svd'/><category term='hydra'/><category term='papervision3d'/><category term='c#'/><category term='MAX'/><category term='dn'/><category term='css'/><category term='10'/><category term='amazon'/><category term='web 2.0'/><category term='player'/><category term='rss'/><category term='DJ'/><category term='portal'/><category term='video'/><category term='link'/><category term='App Store'/><category term='909'/><category term='.net'/><category term='performance'/><category term='code'/><category term='mashup'/><category term='papervision'/><category term='dotnet'/><category term='viddler'/><category term='dance'/><category term='iPod Touch'/><category term='trance'/><category term='astro'/><category term='.net windows'/><category term='feed'/><category term='collada'/><category term='overton'/><category term='azure'/><category term='karen'/><category term='asp.net c#'/><category term='streaming'/><category term='flv'/><category term='drum'/><category term='wii'/><category term='httphandler'/><category term='music'/><category term='ffmpeg'/><category term='break'/><category term='phong'/><category term='h.264'/><category term='machine'/><category term='cloud'/><category term='deezer'/><category term='cs3'/><category term='pv3d'/><category term='syntax highliting'/><category term='blogger'/><category term='desktop'/><category term='starwars'/><category term='minify'/><category term='tv4'/><category term='nyhetskanalen'/><category term='html'/><category term='sucks'/><category term='house'/><category term='server'/><category term='asp.net'/><category term='remix'/><category term='flash video media server red5'/><category term='.net windows forms c#'/><category term='papervison'/><category term='prototype'/><category term='google'/><title type='text'>The Rob Blog</title><subtitle type='html'>Subjects are: Flash, Video, Life, .NET, Internet, Technology, Music, World politics, and other.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-22315672.post-373249789814016533</id><published>2009-07-20T14:34:00.003+02:00</published><updated>2009-07-20T14:35:56.427+02:00</updated><title type='text'>My blog is on ThatsToday.com</title><content type='html'>I will continue blogging on my website &lt;a href="http://thatstoday.com/robbanp/blog/archive/1"&gt;http://thatstoday.com/robbanp/blog/archive/1&lt;/a&gt;&lt;br /&gt;Please check it out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-373249789814016533?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/373249789814016533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=373249789814016533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/373249789814016533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/373249789814016533'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2009/07/my-blog-is-on-thatstodaycom.html' title='My blog is on ThatsToday.com'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-5442458214517662150</id><published>2009-03-22T17:17:00.004+01:00</published><updated>2009-03-22T17:26:03.352+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>CSharp Performance – Cast vs Interface</title><content type='html'>Writing high performance applications is a challenge since you can do the same thing in so many ways. Almost everything you code can be done in many ways that are slow but can be improved to be faster. But on the contrary to this article is my experience on building high traffic web sites, is that &lt;i&gt;it is almost never the application layer that is slow&lt;/i&gt; but almost always the data access and text/XML parsing. &lt;br /&gt;But anyway, I spend so much time on thinking how code can be faster and more slimmed  ☺&lt;br /&gt;&lt;br /&gt;Since I develop more and more abstract and generic functionality using techniques such as Generics and Interfaces, I think of how this will improve both readability and performance. &lt;b&gt;What I want to show in this article, is the performance benefits of using a Interface as a input type instead of an Object.&lt;/b&gt;&lt;br /&gt;Always when you use Object as the parameter data type, to create an abstract or dynamic method you need to Cast the object into your desired class. This cast will be negative on the execution time and also add risk for errors. I also think it is negative on readability since you can’t really see the desired input type.&lt;br /&gt;&lt;br /&gt;Performance test:&lt;br /&gt;In this performance test I have a basic class that implements an interface. I have two methods that execute the test methods doing a cast, and using the interface methods.&lt;br /&gt;The test object is created 1.000.000 times for each method, which are looped 10 times to compare execution times. As you can see the fastest way is to use an Interface to execute the method. On my machine the Interface method takes 7-8ms, and the cast method takes 15-22ms.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5CEb-Bc5B14/ScZl0R6g2TI/AAAAAAAAADA/aUyJ3H8w_0s/s1600-h/Picture+6.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 158px;" src="http://2.bp.blogspot.com/_5CEb-Bc5B14/ScZl0R6g2TI/AAAAAAAAADA/aUyJ3H8w_0s/s320/Picture+6.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5316048358993877298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Here is the code:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt;#region&lt;br /&gt;using System;&lt;br /&gt;using System.Diagnostics;&lt;br /&gt;#endregion&lt;br /&gt;namespace InterfaceTest&lt;br /&gt;{&lt;br /&gt;    internal class Program&lt;br /&gt;    {&lt;br /&gt;        private static void Main(string[] args)&lt;br /&gt;        {&lt;br /&gt;            Stopwatch stopWatch = new Stopwatch();&lt;br /&gt;            TimeSpan ts;&lt;br /&gt;            for (int i = 0; i &lt; 10; i++)&lt;br /&gt;            {&lt;br /&gt;                stopWatch.Start();&lt;br /&gt;                TestCast();&lt;br /&gt;                stopWatch.Stop();&lt;br /&gt;                ts = stopWatch.Elapsed;&lt;br /&gt;                string elapsedTime = String.Format("Casting {0:00}:{1:00}:{2:00}sec.{3:00}ms",&lt;br /&gt;                                                   ts.Hours, ts.Minutes, ts.Seconds,&lt;br /&gt;                                                   ts.Milliseconds/10);&lt;br /&gt;                Console.WriteLine(elapsedTime, "RunTime Cast");&lt;br /&gt;                stopWatch.Reset();&lt;br /&gt;                stopWatch.Start();&lt;br /&gt;                TestInterface();&lt;br /&gt;                stopWatch.Stop();&lt;br /&gt;                ts = stopWatch.Elapsed;&lt;br /&gt;                elapsedTime = String.Format("Interface {0:00}:{1:00}:{2:00}sec.{3:00}ms",&lt;br /&gt;                                            ts.Hours, ts.Minutes, ts.Seconds,&lt;br /&gt;                                            ts.Milliseconds/10);&lt;br /&gt;                Console.WriteLine(elapsedTime, "RunTime Interface");&lt;br /&gt;            }&lt;br /&gt;            Console.ReadKey();&lt;br /&gt;        }&lt;br /&gt;        private static void TestInterface()&lt;br /&gt;        {&lt;br /&gt;            for (int i = 0; i &lt; 1000000; i++)&lt;br /&gt;            {&lt;br /&gt;                TestClass tc = new TestClass();&lt;br /&gt;                DoInterface(tc);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        private static void DoInterface(ITest tc)&lt;br /&gt;        {&lt;br /&gt;            tc.Read("hello speed test");&lt;br /&gt;            tc.DoIt("hello world");&lt;br /&gt;        }&lt;br /&gt;        private static void TestCast()&lt;br /&gt;        {&lt;br /&gt;            for (int i = 0; i &lt; 1000000; i++)&lt;br /&gt;            {&lt;br /&gt;                TestClass tc = new TestClass();&lt;br /&gt;                DoCast(tc);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        private static void DoCast(object obj)&lt;br /&gt;        {&lt;br /&gt;            TestClass tc = obj as TestClass;&lt;br /&gt;            tc.Read("hello speed test");&lt;br /&gt;            tc.DoIt("hello world");&lt;br /&gt;        }&lt;br /&gt;        #region Nested type: ITest&lt;br /&gt;        public interface ITest&lt;br /&gt;        {&lt;br /&gt;            bool DoIt(string testString);&lt;br /&gt;            void Read(string str);&lt;br /&gt;        }&lt;br /&gt;        #endregion&lt;br /&gt;        #region Nested type: TestClass&lt;br /&gt;        public class TestClass : ITest&lt;br /&gt;        {&lt;br /&gt;            private string _testString;&lt;br /&gt;            public TestClass()&lt;br /&gt;            {&lt;br /&gt;                _testString = "empty";&lt;br /&gt;            }&lt;br /&gt;            #region ITest Members&lt;br /&gt;            public void Read(string str)&lt;br /&gt;            {&lt;br /&gt;                _testString = str;&lt;br /&gt;            }&lt;br /&gt;            public bool DoIt(string testString) &lt;br /&gt;            {&lt;br /&gt;                if (testString == _testString)&lt;br /&gt;                {&lt;br /&gt;                    return true;&lt;br /&gt;                }&lt;br /&gt;                else&lt;br /&gt;                {&lt;br /&gt;                    return false;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            #endregion&lt;br /&gt;        }&lt;br /&gt;        #endregion&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-5442458214517662150?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/5442458214517662150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=5442458214517662150' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/5442458214517662150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/5442458214517662150'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2009/03/csharp-performance-cast-vs-interface.html' title='CSharp Performance – Cast vs Interface'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5CEb-Bc5B14/ScZl0R6g2TI/AAAAAAAAADA/aUyJ3H8w_0s/s72-c/Picture+6.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-4270708192899897949</id><published>2009-03-20T14:51:00.001+01:00</published><updated>2009-03-20T14:52:48.772+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='minify'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='httphandler'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnet'/><title type='text'>Cached JavaScript minification on the fly – ASP.NET and HttpHandler</title><content type='html'>If you have a lot of external JavaScript files you should always have a minified version of them when you go public. All popular JS frameworks such as &lt;a href="http://jquery.com/"&gt;JQuery&lt;/a&gt; and &lt;a href="http://www.prototypejs.org/"&gt;Prototype&lt;/a&gt; have minified versions, often on a CDN. But how do you do when you have a lot of your own code that you need to minify? There are a lot of code libraries that handles the minification such as &lt;a href="http://www.crockford.com/javascript/jsmin.html"&gt;JSMin&lt;/a&gt; and &lt;a href="http://developer.yahoo.com/yui/compressor/"&gt;YUI Compressor&lt;/a&gt; that compress your .js files to minified .js files so you can upload them to your server.&lt;br /&gt;My problem is that I have a lot of JavaScript files that are often updated and I don’t want to manually minify the files that are updated. So I figured: Why not do it on the fly? Map all *.js requests on the server to a HttpHandler that minifies the file, and returns the new version. Also add a little cache so it only does this once.&lt;br /&gt;So now I don’t need to worry about a thing when it comes to minify JavaScript files, the server takes care of that automatically!&lt;br /&gt;Here is the code&lt;br /&gt;The HttpHandler called JSMinify is invoked on all requests to *.js files. Activate the handler I web.config:&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt;&amp;lt;httpHandlers&amp;gt;&lt;br /&gt;      &amp;lt;add verb="*" path="*.js" type="Portal.Web.API.Handlers.JSMinify,Portal.Web"/&amp;gt;&lt;br /&gt;&amp;lt;/httpHandlers&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here is the Handler. As you can see I use the Request.PhysicalPath as the path to the file.&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt;using System.Web;&lt;br /&gt;namespace Portal.Web.API.Handlers&lt;br /&gt;{&lt;br /&gt;    public class JSMinify : IHttpHandler&lt;br /&gt;    {&lt;br /&gt;        public void ProcessRequest(HttpContext context)&lt;br /&gt;        {&lt;br /&gt;            HttpResponse objResponse = context.Response;&lt;br /&gt;            string file = context.Request.PhysicalPath;&lt;br /&gt;            objResponse.Write(PCache.FileCache.GetTextFile(file,new Parsers.JSMinifyParser()));&lt;br /&gt;        }&lt;br /&gt;        public bool IsReusable&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return true;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here is my FileCache class that looks for a file on disk, and adds it to the web cache. The method GetTextFile is overloaded to handle a parser that implements IFileParser. I created IFileParser so I can have custom text parsing before I add the text into the cache. I use the file path as the cache key, and the cache settings are so that the cache will expire when the files is updated.&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.Web.Caching;&lt;br /&gt;using Portal.PCache.Parsers;&lt;br /&gt;&lt;br /&gt;namespace Portal.PCache&lt;br /&gt;{&lt;br /&gt;    public static class FileCache&lt;br /&gt;    {&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Gets the text file.&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name="path"&amp;gt;The path.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;        public static string GetTextFile(string path)&lt;br /&gt;        {&lt;br /&gt;            if(Exists(path))&lt;br /&gt;            {&lt;br /&gt;                return Get(path).ToString();&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                string data = ReadFile(path);&lt;br /&gt;                Add(data,path);&lt;br /&gt;                return data;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Gets the text file using a file parser.&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name="path"&amp;gt;The path.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;param name="parser"&amp;gt;The parser.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;        public static string GetTextFile(string path, IFileParser parser)&lt;br /&gt;        {&lt;br /&gt;            if (Exists(path))&lt;br /&gt;            {&lt;br /&gt;                return Get(path).ToString();&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                string data = parser.Parse(path);&lt;br /&gt;                Add(data, path);&lt;br /&gt;                return data;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Reads the file form disk.&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name="path"&amp;gt;The file path.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;        private static string ReadFile(string path)&lt;br /&gt;        {&lt;br /&gt;            TextReader s = new StreamReader(path);&lt;br /&gt;            string data = s.ReadToEnd();&lt;br /&gt;            s.Close();&lt;br /&gt;            s.Dispose();&lt;br /&gt;            return data;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Adds the specified cache object.&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name="cacheObject"&amp;gt;The cache object.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;param name="keyName"&amp;gt;Name of the key.&amp;lt;/param&amp;gt;&lt;br /&gt;        private static void Add(object cacheObject, string keyName)&lt;br /&gt;        {&lt;br /&gt;            System.Web.HttpContext.Current.Cache.Insert(keyName, cacheObject, new CacheDependency(keyName));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Check if object exists in cache&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name="key"&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;        private static bool Exists(string key)&lt;br /&gt;        {&lt;br /&gt;            if (System.Web.HttpContext.Current.Cache[key] != null)&lt;br /&gt;            {&lt;br /&gt;                return true;&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                return false;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// remove object from cache&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name="key"&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;        private static void Remove(string key)&lt;br /&gt;        {&lt;br /&gt;            System.Web.HttpContext.Current.Cache.Remove(key);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// get object from cache&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name="key"&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;        public static object Get(string key)&lt;br /&gt;        {&lt;br /&gt;            return System.Web.HttpContext.Current.Cache[key];&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;In the class JSMinifyParser I have a modified version of the popular library called JSMin. The original &lt;a href="http://www.crockford.com/javascript/jsmin.html"&gt;JSMin&lt;/a&gt; converts one file to another, but I want it to read a file and return the minified string version of that file. So what I did was basically to change the StreamWriter to a TextWriter, and made the method return the string.&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt;//Parser interface&lt;br /&gt;namespace Portal.PCache.Parsers&lt;br /&gt;{&lt;br /&gt;    public interface IFileParser&lt;br /&gt;    {&lt;br /&gt;        string Parse(string s);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;//Parser class&lt;br /&gt;using Portal.PCache.Parsers;&lt;br /&gt;&lt;br /&gt;namespace Portal.Web.API.Parsers&lt;br /&gt;{&lt;br /&gt;    internal class JSMinifyParser : IFileParser&lt;br /&gt;    {&lt;br /&gt;        #region IFileParser Members&lt;br /&gt;&lt;br /&gt;        public string Parse(string s)&lt;br /&gt;        {&lt;br /&gt;            JavaScriptMinifier mini = new JavaScriptMinifier();&lt;br /&gt;            string outs = mini.Minify(s);&lt;br /&gt;            return outs;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        #endregion&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;//JSMin (modified)&lt;br /&gt;using System;&lt;br /&gt;using System.IO;&lt;br /&gt;&lt;br /&gt;/* Originally written in 'C', this code has been converted to the C# language.&lt;br /&gt; * The author's copyright message is reproduced below.&lt;br /&gt; * All modifications from the original to C# are placed in the public domain.&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;/* jsmin.c&lt;br /&gt;   2007-05-22&lt;br /&gt;&lt;br /&gt;Copyright (c) 2002 Douglas Crockford  (www.crockford.com)&lt;br /&gt;&lt;br /&gt;Permission is hereby granted, free of charge, to any person obtaining a copy of&lt;br /&gt;this software and associated documentation files (the "Software"), to deal in&lt;br /&gt;the Software without restriction, including without limitation the rights to&lt;br /&gt;use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies&lt;br /&gt;of the Software, and to permit persons to whom the Software is furnished to do&lt;br /&gt;so, subject to the following conditions:&lt;br /&gt;&lt;br /&gt;The above copyright notice and this permission notice shall be included in all&lt;br /&gt;copies or substantial portions of the Software.&lt;br /&gt;&lt;br /&gt;The Software shall be used for Good, not Evil.&lt;br /&gt;&lt;br /&gt;THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE&lt;br /&gt;SOFTWARE.&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;namespace Portal.Web.API&lt;br /&gt;{&lt;br /&gt;    public class JavaScriptMinifier&lt;br /&gt;    {&lt;br /&gt;        const int EOF = -1;&lt;br /&gt;&lt;br /&gt;        StreamReader sr;&lt;br /&gt;        StringWriter sw;&lt;br /&gt;        int theA;&lt;br /&gt;        int theB;&lt;br /&gt;        int theLookahead = EOF;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        //static void Main(string[] args)&lt;br /&gt;        //{&lt;br /&gt;        //    if (args.Length != 2)&lt;br /&gt;        //    {&lt;br /&gt;        //        Console.WriteLine("invalid arguments, 2 required, 1 in, 1 out");&lt;br /&gt;        //        return;&lt;br /&gt;        //    }&lt;br /&gt;        //    new JavaScriptMinifier().Minify(args[0], args[1]);&lt;br /&gt;        //}&lt;br /&gt;&lt;br /&gt;        public string Minify(string src) //removed the out file path&lt;br /&gt;        {&lt;br /&gt;            using (sr = new StreamReader(src))&lt;br /&gt;            {&lt;br /&gt;                using (sw = new StringWriter())  //used to be a StreamWriter&lt;br /&gt;                {&lt;br /&gt;                    jsmin();&lt;br /&gt;                    return sw.ToString(); // return the minified string&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /* jsmin -- Copy the input to the output, deleting the characters which are&lt;br /&gt;                insignificant to JavaScript. Comments will be removed. Tabs will be&lt;br /&gt;                replaced with spaces. Carriage returns will be replaced with linefeeds.&lt;br /&gt;                Most spaces and linefeeds will be removed.&lt;br /&gt;        */&lt;br /&gt;        void jsmin()&lt;br /&gt;        {&lt;br /&gt;            theA = '\n';&lt;br /&gt;            action(3);&lt;br /&gt;            while (theA != EOF)&lt;br /&gt;            {&lt;br /&gt;                switch (theA)&lt;br /&gt;                {&lt;br /&gt;                    case ' ':&lt;br /&gt;                        {&lt;br /&gt;                            if (isAlphanum(theB))&lt;br /&gt;                            {&lt;br /&gt;                                action(1);&lt;br /&gt;                            }&lt;br /&gt;                            else&lt;br /&gt;                            {&lt;br /&gt;                                action(2);&lt;br /&gt;                            }&lt;br /&gt;                            break;&lt;br /&gt;                        }&lt;br /&gt;                    case '\n':&lt;br /&gt;                        {&lt;br /&gt;                            switch (theB)&lt;br /&gt;                            {&lt;br /&gt;                                case '{':&lt;br /&gt;                                case '[':&lt;br /&gt;                                case '(':&lt;br /&gt;                                case '+':&lt;br /&gt;                                case '-':&lt;br /&gt;                                    {&lt;br /&gt;                                        action(1);&lt;br /&gt;                                        break;&lt;br /&gt;                                    }&lt;br /&gt;                                case ' ':&lt;br /&gt;                                    {&lt;br /&gt;                                        action(3);&lt;br /&gt;                                        break;&lt;br /&gt;                                    }&lt;br /&gt;                                default:&lt;br /&gt;                                    {&lt;br /&gt;                                        if (isAlphanum(theB))&lt;br /&gt;                                        {&lt;br /&gt;                                            action(1);&lt;br /&gt;                                        }&lt;br /&gt;                                        else&lt;br /&gt;                                        {&lt;br /&gt;                                            action(2);&lt;br /&gt;                                        }&lt;br /&gt;                                        break;&lt;br /&gt;                                    }&lt;br /&gt;                            }&lt;br /&gt;                            break;&lt;br /&gt;                        }&lt;br /&gt;                    default:&lt;br /&gt;                        {&lt;br /&gt;                            switch (theB)&lt;br /&gt;                            {&lt;br /&gt;                                case ' ':&lt;br /&gt;                                    {&lt;br /&gt;                                        if (isAlphanum(theA))&lt;br /&gt;                                        {&lt;br /&gt;                                            action(1);&lt;br /&gt;                                            break;&lt;br /&gt;                                        }&lt;br /&gt;                                        action(3);&lt;br /&gt;                                        break;&lt;br /&gt;                                    }&lt;br /&gt;                                case '\n':&lt;br /&gt;                                    {&lt;br /&gt;                                        switch (theA)&lt;br /&gt;                                        {&lt;br /&gt;                                            case '}':&lt;br /&gt;                                            case ']':&lt;br /&gt;                                            case ')':&lt;br /&gt;                                            case '+':&lt;br /&gt;                                            case '-':&lt;br /&gt;                                            case '"':&lt;br /&gt;                                            case '\'':&lt;br /&gt;                                                {&lt;br /&gt;                                                    action(1);&lt;br /&gt;                                                    break;&lt;br /&gt;                                                }&lt;br /&gt;                                            default:&lt;br /&gt;                                                {&lt;br /&gt;                                                    if (isAlphanum(theA))&lt;br /&gt;                                                    {&lt;br /&gt;                                                        action(1);&lt;br /&gt;                                                    }&lt;br /&gt;                                                    else&lt;br /&gt;                                                    {&lt;br /&gt;                                                        action(3);&lt;br /&gt;                                                    }&lt;br /&gt;                                                    break;&lt;br /&gt;                                                }&lt;br /&gt;                                        }&lt;br /&gt;                                        break;&lt;br /&gt;                                    }&lt;br /&gt;                                default:&lt;br /&gt;                                    {&lt;br /&gt;                                        action(1);&lt;br /&gt;                                        break;&lt;br /&gt;                                    }&lt;br /&gt;                            }&lt;br /&gt;                            break;&lt;br /&gt;                        }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        /* action -- do something! What you do is determined by the argument:&lt;br /&gt;                1   Output A. Copy B to A. Get the next B.&lt;br /&gt;                2   Copy B to A. Get the next B. (Delete A).&lt;br /&gt;                3   Get the next B. (Delete B).&lt;br /&gt;           action treats a string as a single character. Wow!&lt;br /&gt;           action recognizes a regular expression if it is preceded by ( or , or =.&lt;br /&gt;        */&lt;br /&gt;        void action(int d)&lt;br /&gt;        {&lt;br /&gt;            if (d &lt;= 1)&lt;br /&gt;            {&lt;br /&gt;                put(theA);&lt;br /&gt;            }&lt;br /&gt;            if (d &lt;= 2)&lt;br /&gt;            {&lt;br /&gt;                theA = theB;&lt;br /&gt;                if (theA == '\'' || theA == '"')&lt;br /&gt;                {&lt;br /&gt;                    for (; ; )&lt;br /&gt;                    {&lt;br /&gt;                        put(theA);&lt;br /&gt;                        theA = get();&lt;br /&gt;                        if (theA == theB)&lt;br /&gt;                        {&lt;br /&gt;                            break;&lt;br /&gt;                        }&lt;br /&gt;                        if (theA &lt;= '\n')&lt;br /&gt;                        {&lt;br /&gt;                            throw new Exception(string.Format("Error: JSMIN unterminated string literal: {0}\n", theA));&lt;br /&gt;                        }&lt;br /&gt;                        if (theA == '\\')&lt;br /&gt;                        {&lt;br /&gt;                            put(theA);&lt;br /&gt;                            theA = get();&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            if (d &lt;= 3)&lt;br /&gt;            {&lt;br /&gt;                theB = next();&lt;br /&gt;                if (theB == '/' &amp;&amp; (theA == '(' || theA == ',' || theA == '=' ||&lt;br /&gt;                                    theA == '[' || theA == '!' || theA == ':' ||&lt;br /&gt;                                    theA == '&amp;' || theA == '|' || theA == '?' ||&lt;br /&gt;                                    theA == '{' || theA == '}' || theA == ';' ||&lt;br /&gt;                                    theA == '\n'))&lt;br /&gt;                {&lt;br /&gt;                    put(theA);&lt;br /&gt;                    put(theB);&lt;br /&gt;                    for (; ; )&lt;br /&gt;                    {&lt;br /&gt;                        theA = get();&lt;br /&gt;                        if (theA == '/')&lt;br /&gt;                        {&lt;br /&gt;                            break;&lt;br /&gt;                        }&lt;br /&gt;                        else if (theA == '\\')&lt;br /&gt;                        {&lt;br /&gt;                            put(theA);&lt;br /&gt;                            theA = get();&lt;br /&gt;                        }&lt;br /&gt;                        else if (theA &lt;= '\n')&lt;br /&gt;                        {&lt;br /&gt;                            throw new Exception(string.Format("Error: JSMIN unterminated Regular Expression literal : {0}.\n", theA));&lt;br /&gt;                        }&lt;br /&gt;                        put(theA);&lt;br /&gt;                    }&lt;br /&gt;                    theB = next();&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        /* next -- get the next character, excluding comments. peek() is used to see&lt;br /&gt;                if a '/' is followed by a '/' or '*'.&lt;br /&gt;        */&lt;br /&gt;        int next()&lt;br /&gt;        {&lt;br /&gt;            int c = get();&lt;br /&gt;            if (c == '/')&lt;br /&gt;            {&lt;br /&gt;                switch (peek())&lt;br /&gt;                {&lt;br /&gt;                    case '/':&lt;br /&gt;                        {&lt;br /&gt;                            for (; ; )&lt;br /&gt;                            {&lt;br /&gt;                                c = get();&lt;br /&gt;                                if (c &lt;= '\n')&lt;br /&gt;                                {&lt;br /&gt;                                    return c;&lt;br /&gt;                                }&lt;br /&gt;                            }&lt;br /&gt;                        }&lt;br /&gt;                    case '*':&lt;br /&gt;                        {&lt;br /&gt;                            get();&lt;br /&gt;                            for (; ; )&lt;br /&gt;                            {&lt;br /&gt;                                switch (get())&lt;br /&gt;                                {&lt;br /&gt;                                    case '*':&lt;br /&gt;                                        {&lt;br /&gt;                                            if (peek() == '/')&lt;br /&gt;                                            {&lt;br /&gt;                                                get();&lt;br /&gt;                                                return ' ';&lt;br /&gt;                                            }&lt;br /&gt;                                            break;&lt;br /&gt;                                        }&lt;br /&gt;                                    case EOF:&lt;br /&gt;                                        {&lt;br /&gt;                                            throw new Exception("Error: JSMIN Unterminated comment.\n");&lt;br /&gt;                                        }&lt;br /&gt;                                }&lt;br /&gt;                            }&lt;br /&gt;                        }&lt;br /&gt;                    default:&lt;br /&gt;                        {&lt;br /&gt;                            return c;&lt;br /&gt;                        }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            return c;&lt;br /&gt;        }&lt;br /&gt;        /* peek -- get the next character without getting it.&lt;br /&gt;        */&lt;br /&gt;        int peek()&lt;br /&gt;        {&lt;br /&gt;            theLookahead = get();&lt;br /&gt;            return theLookahead;&lt;br /&gt;        }&lt;br /&gt;        /* get -- return the next character from stdin. Watch out for lookahead. If&lt;br /&gt;                the character is a control character, translate it to a space or&lt;br /&gt;                linefeed.&lt;br /&gt;        */&lt;br /&gt;        int get()&lt;br /&gt;        {&lt;br /&gt;            int c = theLookahead;&lt;br /&gt;            theLookahead = EOF;&lt;br /&gt;            if (c == EOF)&lt;br /&gt;            {&lt;br /&gt;                c = sr.Read();&lt;br /&gt;            }&lt;br /&gt;            if (c &gt;= ' ' || c == '\n' || c == EOF)&lt;br /&gt;            {&lt;br /&gt;                return c;&lt;br /&gt;            }&lt;br /&gt;            if (c == '\r')&lt;br /&gt;            {&lt;br /&gt;                return '\n';&lt;br /&gt;            }&lt;br /&gt;            return ' ';&lt;br /&gt;        }&lt;br /&gt;        void put(int c)&lt;br /&gt;        {&lt;br /&gt;            sw.Write((char)c);&lt;br /&gt;        }&lt;br /&gt;        /* isAlphanum -- return true if the character is a letter, digit, underscore,&lt;br /&gt;                dollar sign, or non-ASCII character.&lt;br /&gt;        */&lt;br /&gt;        bool isAlphanum(int c)&lt;br /&gt;        {&lt;br /&gt;            return ((c &gt;= 'a' &amp;&amp; c &lt;= 'z') || (c &gt;= '0' &amp;&amp; c &lt;= '9') ||&lt;br /&gt;                (c &gt;= 'A' &amp;&amp; c &lt;= 'Z') || c == '_' || c == '$' || c == '\\' ||&lt;br /&gt;                c &gt; 126);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;So that is basically it! What you need to think about is to map *.js file types to be handled ASP.NET in the IIS settings, otherwise the HttpHandler won’t be triggered. Also there are some differences how you add the handler in web.config for IIS6 and IIS7.  Here is a lot of usefull info on IIS7 &lt;a href="http://learn.iis.net/page.aspx/26/installing-and-configuring-iis-70/"&gt;http://learn.iis.net/page.aspx/26/installing-and-configuring-iis-70/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-4270708192899897949?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/4270708192899897949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=4270708192899897949' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/4270708192899897949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/4270708192899897949'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2009/03/cached-javascript-minification-on-fly.html' title='Cached JavaScript minification on the fly – ASP.NET and HttpHandler'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-840821666121337560</id><published>2009-02-27T15:43:00.009+01:00</published><updated>2009-02-27T16:08:54.036+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='cache'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Type safe web cache wrapper - ASP.NET</title><content type='html'>While building a URL mapping routine for my portal, I needed to optimize the loading of member specific URL keys.&lt;br /&gt;For this I use the HttpContext.Current.Cache object that is easily used in the ASP.NET environment. Whats "ugly" with the Cache object is that it takes a object as a input parameter and of course return the cached object as the type of object.&lt;br /&gt;&lt;br /&gt;So instead of do alot of type casting, I created a small wrapper class that use generics to handle the object types.&lt;br /&gt;&lt;br /&gt;Take a look: &lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt;#region&lt;br /&gt;using System;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.Caching;&lt;br /&gt;#endregion&lt;br /&gt;namespace Portal.PCache&lt;br /&gt;{&lt;br /&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    /// Type safe object cache&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;    public class ObjectCache&lt;br /&gt;    {&lt;br /&gt;        private const int TIMEOUT = 60;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Adds the specified cache object. it will last for max 1hr from last access&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;typeparam name="T"&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;br /&gt;        /// &amp;lt;param name="cacheObject"&amp;gt;The cache object.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;param name="keyName"&amp;gt;Name of the key.&amp;lt;/param&amp;gt;&lt;br /&gt;        public static void Add&amp;lt;T&amp;gt;(T cacheObject, string keyName)&lt;br /&gt;        {&lt;br /&gt;            HttpContext.Current.Cache.Insert(keyName, cacheObject, null, Cache.NoAbsoluteExpiration,&lt;br /&gt;                                             TimeSpan.FromMinutes(TIMEOUT));&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Removes object with the specified key.&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name="key"&amp;gt;The key.&amp;lt;/param&amp;gt;&lt;br /&gt;        public static void Remove(string key)&lt;br /&gt;        {&lt;br /&gt;            HttpContext.Current.Cache.Remove(key);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Check if object with the specified key exists.&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name="key"&amp;gt;The key.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;&lt;br /&gt;        public static bool Exist(string key)&lt;br /&gt;        {&lt;br /&gt;            return HttpContext.Current.Cache[key] != null;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Gets the object with the specified key.&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;typeparam name="T"&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;br /&gt;        /// &amp;lt;param name="key"&amp;gt;The key.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;        public static T Get&amp;lt;T&amp;gt;(string key) where T : class&lt;br /&gt;        {&lt;br /&gt;            return HttpContext.Current.Cache[key] as T;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And to use the class:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt;&lt;br /&gt;MyObject obj = new MyObject();&lt;br /&gt;string key = "myobject1";&lt;br /&gt;&lt;br /&gt;bool exists = ObjectCache.Exist(key);&lt;br /&gt;if(!exists)&lt;br /&gt;{&lt;br /&gt;  ObjectCache.Add&amp;lt;MyObject&amp;gt;(obj, key);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;MyObject another = ObjectCache.Get&amp;lt;MyObject&amp;gt;(key);&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-840821666121337560?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/840821666121337560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=840821666121337560' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/840821666121337560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/840821666121337560'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2009/02/type-safe-web-cache-wrapper-aspnet.html' title='Type safe web cache wrapper - ASP.NET'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-2849730113432845344</id><published>2009-02-04T13:48:00.006+01:00</published><updated>2009-02-04T14:05:19.931+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='link'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>ASP.NET Variables in link - Solved</title><content type='html'>When I implemented an anti-cache function for my website i discovered that ASP.NET somehow parses &amp;lt;link&amp;gt; tags and makes it impossible to add parameters to the url.&lt;br /&gt;&lt;br /&gt;I pass an version number to the url so that I can force new loads of the js and CSS, like this:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt;    &amp;lt;script src="/script/portal.js?v=&amp;lt;%=ScriptVersion%&amp;gt;" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;link href="/css/portal.css?v=&amp;lt;%=ScriptVersion%&amp;gt;" rel="stylesheet" type="text/css" media="screen" /&amp;gt; &amp;lt;!-- does not work --&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Somehow ASP.NET parse the &amp;lt;link&amp;gt; tag and create this ugly code:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="js"&gt;&lt;br /&gt;    &amp;lt;link href="/css/portal.css?v=&amp;amp;lt;%=ScriptVersion%&amp;amp;gt;" rel="stylesheet" type="text/css" media="screen" /&amp;gt; &amp;lt;!-- does not work --&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The only solution for this was to include CSS like this;&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="js"&gt;&lt;br /&gt;    &amp;lt;style type="text/css" media="screen"&amp;gt;&lt;br /&gt;         @import "/css/portal.css?v=&amp;lt;%=ScriptVersion%&amp;gt;";&lt;br /&gt;    &amp;lt;/style&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;JavaScript includes works perfect, it's just the css links that is parsed :/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-2849730113432845344?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/2849730113432845344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=2849730113432845344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2849730113432845344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2849730113432845344'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2009/02/aspnet-variables-in-link-solved.html' title='ASP.NET Variables in link - Solved'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-8334841533263926183</id><published>2009-01-31T14:36:00.012+01:00</published><updated>2009-01-31T15:21:33.029+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='syntax highliting'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Syntax Highlighting on Blogger - A guide that actually works.</title><content type='html'>I started to look for Syntax Highlighting code today to implement on this blog. Since I code in all kind of languages (JS,C#,AS3,SQL, etc.) I need something that can handle different kind of syntax and also looks good. I found &lt;a href="http://code.google.com/p/syntaxhighlighter/" target="_new"&gt;SyntaxHighlighter&lt;/a&gt; from Alex Gorbatchev, which looks awesome.&lt;br /&gt;&lt;br /&gt;How do can you implement this great code in your Blogger pages? I found a few guides that did not really work that well, so I'll now explain how to do it in five easy steps.&lt;br /&gt;&lt;br /&gt;1. Go to your Blogger blog, log in and go to Layout -&gt; Edit HTML.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;2. Open another Browser Tab and copy the CSS from this url: &lt;a href="http://syntaxhighlighter.googlecode.com/svn/trunk/Styles/SyntaxHighlighter.css"&gt;http://syntaxhighlighter.googlecode.com/svn/trunk/Styles/SyntaxHighlighter.css&lt;/a&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;3. In the edit window on Blogger go to the last line of the inline CSS (located in the HEAD tag) and paste the copied CSS code.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;4. Copy this JS code last in the HEAD tag:&lt;br /&gt;(When posting HTML code, remember to replace &lt;code&gt;&lt;&lt;/code&gt; with&lt;code&gt; &amp;amp;lt;&lt;/code&gt;, and replace&lt;code&gt; &gt;&lt;/code&gt; with&lt;code&gt; &amp;amp;gt;&lt;/code&gt;)&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="js"&gt;&lt;br /&gt;&amp;lt;script language='javascript' src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shCore.js' /&amp;gt;&lt;br /&gt;&amp;lt;script language='javascript' src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCpp.js'/&amp;gt;&lt;br /&gt;&amp;lt;script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushJScript.js' type='text/javascript'/&amp;gt;  &lt;br /&gt;&amp;lt;script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCSharp.js' type='text/javascript'/&amp;gt;  &lt;br /&gt;&amp;lt;script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCss.js' type='text/javascript'/&amp;gt;  &lt;br /&gt;&amp;lt;script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushJava.js' type='text/javascript'/&amp;gt;  &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;5. At the end of the edit window just before the /BODY tag, paste this code:&lt;br /&gt;&lt;pre name="code" class="js"&gt;&lt;br /&gt;&amp;lt;script language='javascript'&amp;gt;&lt;br /&gt;dp.SyntaxHighlighter.BloggerMode();&lt;br /&gt;dp.SyntaxHighlighter.HighlightAll(&amp;#39;code&amp;#39;);&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;6. Save! And we're done!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-8334841533263926183?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/8334841533263926183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=8334841533263926183' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/8334841533263926183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/8334841533263926183'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2009/01/syntax-highliting-on-blogger-guide-that.html' title='Syntax Highlighting on Blogger - A guide that actually works.'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-7873097196180117</id><published>2009-01-31T12:21:00.007+01:00</published><updated>2009-01-31T12:49:20.736+01:00</updated><title type='text'>Testing Syntax Highlighting</title><content type='html'>I'm finally planning to post some code examples from my portal, so here is a start with some syntax highliting :)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;JS&lt;/i&gt;&lt;br /&gt;&lt;pre name="code" class="js"&gt;&lt;br /&gt;var test = new Test();&lt;br /&gt;int i = 0; // commenting test&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-7873097196180117?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/7873097196180117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=7873097196180117' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/7873097196180117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/7873097196180117'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2009/01/testing-syntax-highlighting.html' title='Testing Syntax Highlighting'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-545916946465668836</id><published>2009-01-20T14:41:00.006+01:00</published><updated>2009-01-20T15:05:37.031+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='tv4'/><category scheme='http://www.blogger.com/atom/ns#' term='dn'/><category scheme='http://www.blogger.com/atom/ns#' term='svd'/><category scheme='http://www.blogger.com/atom/ns#' term='feed'/><category scheme='http://www.blogger.com/atom/ns#' term='rss'/><category scheme='http://www.blogger.com/atom/ns#' term='nyhetskanalen'/><title type='text'>SvD vs DN vs Nyhetskanalen</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5CEb-Bc5B14/SXXXnxD5eYI/AAAAAAAAACQ/2HvsAjddDVM/s1600-h/Picture+10.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 426px; height: 125px;" src="http://4.bp.blogspot.com/_5CEb-Bc5B14/SXXXnxD5eYI/AAAAAAAAACQ/2HvsAjddDVM/s320/Picture+10.png" alt="" id="BLOGGER_PHOTO_ID_5293374015228443010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Sorry this one is in swedish...&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Under tiden jag jobbar med att lansera vår nya sajt, vars innehåll till stor del innehåller feeds från olika nyhetssajter så ser man det varierande kvalitén i dessa feeds från några av landets största sajter.&lt;br /&gt;&lt;br /&gt;Jag har en sida som innehåller widgets med feeds från bland annat &lt;a href="http://svd.se/"&gt;Svenska Dagbladet&lt;/a&gt;, &lt;a href="http://dn.se/"&gt;Dagens Nyheter&lt;/a&gt; och TV4's &lt;a href="http://nyhetskanalen.se/"&gt;Nyhetskanalen&lt;/a&gt;, och som ni ser på bilden vinner klart SvD. Varför? Jo, till att börja med så har DN i den sin senaste artikel en font tagg! Vilken seriös sajt använder 2009 font? Enligt &lt;a href="http://obsoleteskills.com/Skills/FONTTag"&gt;obsoleteskills.com&lt;/a&gt; blev den obsolete för 8 år sedan.&lt;br /&gt;&lt;br /&gt;Vi går vidare till Nyhetskanalen.se, där vi ser den senaste, absolut hetaste nyheten: Bågjakt blir tillåten i Sverige. Vad hände med beskrivningen? Tomt.&lt;br /&gt;&lt;br /&gt;Samma sak tre nyheter ner: Kvinna återfunnen efter 12 år. Här var det heller inte värt att ha någon beskrivning. Dåligt TV4.&lt;br /&gt;&lt;br /&gt;SvD åt andra sidan har hyffsade nyheter i sin feed. Den enda kritiken är att de är något korta och helt utan bilder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-545916946465668836?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/545916946465668836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=545916946465668836' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/545916946465668836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/545916946465668836'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2009/01/svd-vs-dn-vs-nyhetskanalen.html' title='SvD vs DN vs Nyhetskanalen'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5CEb-Bc5B14/SXXXnxD5eYI/AAAAAAAAACQ/2HvsAjddDVM/s72-c/Picture+10.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-3111905862248969731</id><published>2009-01-14T22:38:00.002+01:00</published><updated>2009-01-14T22:49:23.652+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='azure'/><category scheme='http://www.blogger.com/atom/ns#' term='amazon'/><category scheme='http://www.blogger.com/atom/ns#' term='ec2'/><category scheme='http://www.blogger.com/atom/ns#' term='.net windows'/><title type='text'>How to Run IIS on Amazon EC2 Cloud in 15 mins.</title><content type='html'>Bill Staples has written a step-by-step guide how to kickstart your ASP.NET website on the Amazon  &lt;a href="http://aws.amazon.com/ec2/"&gt;Elastic Compute Cloud&lt;/a&gt; (EC2) Windows Cloud.&lt;br /&gt;&lt;br /&gt;The only bad thing is that EC2 currently use Windows 2003 servers so you can not run your appps on IIS7 :/&lt;br /&gt;&lt;br /&gt;Read the article: &lt;a href="http://blogs.iis.net/bills/archive/2009/01/13/how-to-run-windows-amp-iis-in-the-cloud-on-amazon-ec2-in-15-mins.aspx"&gt;http://blogs.iis.net/bills/archive/2009/01/13/how-to-run-windows-amp-iis-in-the-cloud-on-amazon-ec2-in-15-mins.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-3111905862248969731?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/3111905862248969731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=3111905862248969731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/3111905862248969731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/3111905862248969731'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2009/01/how-to-run-iis-on-amazon-ec2-cloud-in.html' title='How to Run IIS on Amazon EC2 Cloud in 15 mins.'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-8492401044176138600</id><published>2008-12-29T23:24:00.004+01:00</published><updated>2008-12-29T23:32:07.170+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='spotify'/><title type='text'>Auto sucks - Last rant of 2008</title><content type='html'>I &lt;span style="font-weight: bold; font-style: italic;"&gt;hate&lt;/span&gt; automatic settings.&lt;br /&gt;Well not always, but very often. Especially now when I'm in Portugal.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Blogger.com show login (and something else) in Portugese. Too tired to change.&lt;br /&gt;&lt;br /&gt;Apple think I live in United States. Can not change.&lt;br /&gt;&lt;br /&gt;Google is stuck in .pt mode... i never want anything else but .com. Too annoyed to find out how to change.&lt;br /&gt;&lt;br /&gt;Spotify removes songs for me, since I'm listening from Portugal and was registred in Sweden. Unnable to change back to Sweden now when I thought I was smart and changed my location to Portugal.&lt;br /&gt;&lt;br /&gt;See you next year !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-8492401044176138600?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/8492401044176138600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=8492401044176138600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/8492401044176138600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/8492401044176138600'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2008/12/auto-sucks-last-rant-of-2008.html' title='Auto sucks - Last rant of 2008'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-2301367210522801572</id><published>2008-12-15T12:43:00.004+01:00</published><updated>2008-12-29T23:23:00.356+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='DJ'/><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='spotify'/><title type='text'>4 steps to success for Spotify</title><content type='html'>&lt;span style="font-weight: bold;"&gt;- Community&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What I Like about Deezer is the community perspective of a gigantic record collection. When I am out of inspiration I want to see/listen what other peeps dig. I want to see that I'm not alone while searching for cool new songs. This is one reason that I often switch to VLC / ShoutCast, that I want new music that other people choose for me. (Shoutcast/Electro/DIGITAL IMPORTED is a fav.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;- DJ / Party functions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Spotify at it's best is at a party. (almost)unlimited number of songs for all tastes. Whats missing in a part is basic DJ functions such as beat-matching, cross fade between songs and maybe visual effects. When we have the unlimited jukebox, please skip the booring gaps and fade-outs that makes the dance floor fade :) &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;- Mobile version&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I want it in my SonyEricsson. I want it in my iPod Touch. Then I will never leech another pirate song again.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;- API&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As a developer I get all kind of crazy ideas, how to integrate Spotify and music in new web services. Please give me a API to play around with. Please crowdsource the tech developent to us.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-2301367210522801572?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/2301367210522801572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=2301367210522801572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2301367210522801572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2301367210522801572'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2008/12/4-steps-to-success-for-spotify.html' title='4 steps to success for Spotify'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-3699799394569144111</id><published>2008-12-14T19:25:00.003+01:00</published><updated>2008-12-15T12:41:47.617+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPod Touch'/><category scheme='http://www.blogger.com/atom/ns#' term='sucks'/><category scheme='http://www.blogger.com/atom/ns#' term='App Store'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>OMG - App Store is a hassle.</title><content type='html'>Well, I know i'm not the bleeding edge, since I upgraded my Nano to iPod Touch the other day. I really like the little thing which made my flight to Portugal a little easier (watching S05 of a popular TV show :)) But i can't help complaining about what Apple could done better with this gadget.&lt;br /&gt;&lt;br /&gt;First: Sorting music.&lt;br /&gt;&lt;br /&gt;I have alot of mp3 music that are coded in different ways, for example "Acoustic covers vol1" that have it's songs coded for each artist and song name. I want to play this "album" which is a nightmare since all the songs are in defferent artists and albums. Whan I ended up doing is, creating a playlist for each album that I transferred to the iPod. I remember the good ol days when I had a iRiver which could play a "folder" without any problems.&lt;br /&gt;&lt;br /&gt;Second: Downloading from App Store.&lt;br /&gt;&lt;br /&gt;Cool, I can add apps to my iPod! Let's browse and install a random (free) app just to try it out...Login! Huh? How do I create an account? For App Store? for Itunes? for Apple? where in my iPod can I create an account? No freakin where!&lt;br /&gt;&lt;br /&gt;Okay, lets try do open up safari and go to Apple.com and create an account using the iPod. No luck, I get no confirmation e-mail and no success downloading from App Store using that account. So finally, let's open up my computer and go to iTunes, and try to create the account from there. Oh, I need to add additional information to my account. Woot, Credit Card number? Oh well, i trust Apple, so they can have it. But what now?! They think i live in the US?, no I'm from Sweden, currently staying in Portugal. So how do I change country...lets see.... NOWHERE!  Aw crap, I give up.. might just be easier to jailbreak it and add apps that way...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-3699799394569144111?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/3699799394569144111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=3699799394569144111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/3699799394569144111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/3699799394569144111'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2008/12/omg-app-store-is-hassle.html' title='OMG - App Store is a hassle.'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-4652755018564369824</id><published>2008-09-23T09:14:00.003+02:00</published><updated>2008-09-23T09:26:16.072+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='streaming'/><category scheme='http://www.blogger.com/atom/ns#' term='free'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='deezer'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='spotify'/><title type='text'>Deezer.com - The Spotify killer?</title><content type='html'>&lt;div style="width: 180px; height: 236px;"&gt;&lt;object height="236" width="180"&gt;&lt;param name="movie" value="http://www.deezer.com/embedded/widget.swf?path=10474752&amp;amp;lang=en&amp;amp;colorBack=0x525252&amp;amp;colorVolume=0x00CCFF&amp;amp;colorScrollbar=0x666666&amp;amp;colorText=0xFFFFFF&amp;amp;autoplay=0&amp;amp;autoShuffle=1&amp;amp;id=3128756"&gt;&lt;embed src="http://www.deezer.com/embedded/widget.swf?path=10474752&amp;amp;lang=en&amp;amp;colorBack=0x525252&amp;amp;colorVolume=0x00CCFF&amp;amp;colorScrollbar=0x666666&amp;amp;colorText=0xFFFFFF&amp;amp;autoplay=0&amp;amp;autoShuffle=1&amp;amp;id=3128756" type="application/x-shockwave-flash" height="236" width="180"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:78%;color:#000000;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;I have been using Deezer for a few weeks now, and I must say that it kicks ass! Although the (Flash) GUI is a a bit buggy, and the workflow is not too intuitive, the service itself rocks, with all that FREE streaming music... just click and play. &lt;br/&gt;&lt;br/&gt;Above you ca see my embedable playlist, and if you like electro, there sure are some goodies for you there :)&lt;br/&gt;&lt;br/&gt;The media delivery is super fast and i'd say that apx. 60-70% of the songs i play have a great bit rate compression. I used to have Spotify, that was really amazing fast and great quality, but it is still not very accessible to the public, and also it seems that they are removing songs from their database all the time. Allright, just get over to Deezer to find great free music now!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-4652755018564369824?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/4652755018564369824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=4652755018564369824' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/4652755018564369824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/4652755018564369824'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2008/09/deezercom-spotify-killer.html' title='Deezer.com - The Spotify killer?'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-6044035356918376984</id><published>2008-09-19T09:19:00.004+02:00</published><updated>2008-09-19T09:32:46.147+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='server'/><category scheme='http://www.blogger.com/atom/ns#' term='hosting'/><title type='text'>Great delivery Dell!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5CEb-Bc5B14/SNNTsiCGQ7I/AAAAAAAAABg/aqDxTKL-evM/s1600-h/dell_server.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_5CEb-Bc5B14/SNNTsiCGQ7I/AAAAAAAAABg/aqDxTKL-evM/s320/dell_server.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5247630015331713970" /&gt;&lt;/a&gt;&lt;br /&gt;Yeah, every time DHL comes knocking on the door it feels a little bit like christmas. This time the delivery man had a big nice package from Dell, and it was our new 1U rack server.&lt;br /&gt;&lt;br /&gt;I filled her up with 8GB RAM and 2x500Gb SATA HDD, that hopefully will be enough to launch our project for the beta test audience.&lt;br /&gt;&lt;br /&gt;The hosting location is also pretty cool, it's a new server hall located in a nuclear proof cave inside a mountain in the central parts of Stockholm (söder). Thanks to my friends at &lt;a href="http://www.carismar.com/"&gt;Carismar&lt;/a&gt;, i will install the new server in their rack at &lt;a href="http://sv.wikipedia.org/wiki/Pionen"&gt;Pionen&lt;/a&gt; which is the name of the server hall from the hosting company called &lt;a href="http://www.bahnhof.se/"&gt;Bahnhof&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-6044035356918376984?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/6044035356918376984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=6044035356918376984' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/6044035356918376984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/6044035356918376984'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2008/09/great-delivery-dell.html' title='Great delivery Dell!'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5CEb-Bc5B14/SNNTsiCGQ7I/AAAAAAAAABg/aqDxTKL-evM/s72-c/dell_server.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-8453264721519030865</id><published>2008-08-26T16:53:00.002+02:00</published><updated>2008-08-26T17:15:05.296+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='prototype'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>Prototype docs sucks!</title><content type='html'>In our new super cool web 2.0 project I extensively use the JavaScript framework &lt;a href="http://prototypejs.org"&gt;Prototype&lt;/a&gt;, because I use a lot of front-end intelligence and DOM manipulation. It is extremely useful and pretty easy to use, but there is only one problem. Some times when I need further explanation how some thing works, I tend to take a peek in the API documentation, and quite frankly it sucks.&lt;br /&gt;&lt;br /&gt;First, I’m a long time .NET coder and I’m pretty used to the MSDN style documentation which is great once you get the hang of it. Also the Adobe LiveDocs are pretty OK (especially with the user commends below). But the guys at Prototype should spend a few seconds extra to write a proper description of the objects and functionality, AND some decent examples.&lt;br /&gt;Let me give an example:&lt;br /&gt;Under: http://prototypejs.org/api/element/writeAttribute&lt;br /&gt;They tell you:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;writeAttribute(element, attribute[, value = true]) -&gt; HTMLElement&lt;br /&gt;writeAttribute(element, attributes) -&gt; HTMLElement&lt;br /&gt;Adds, specifies or removes attributes passed as either a hash or a name/value pair.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;What the hell does “attribute[, value = true])” mean? I could guess that the second argument is some Boolean value but does the *nothing*, mean??&lt;br /&gt;What I was looking for in this method was actually a way to remove element attributes. I had to take a look in the source code for the writeAttribute method to realize that you pass a null or false as a value, in order to remove the element attribute as you can see here:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;…&lt;br /&gt;if (value === false || value === null)&lt;br /&gt;&lt;br /&gt;        element.removeAttribute(name);&lt;br /&gt;…&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;…and did I mention that there was no example what so ever of the different ways to create/remove attributes in this method?&lt;br /&gt;&lt;br /&gt;Come on team Prototype. Your lib rocks, and so should your docs do!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-8453264721519030865?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/8453264721519030865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=8453264721519030865' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/8453264721519030865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/8453264721519030865'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2008/08/prototype-docs-sucks.html' title='Prototype docs sucks!'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-8900021871610727298</id><published>2008-08-25T13:52:00.003+02:00</published><updated>2009-02-03T11:37:49.023+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='portal'/><title type='text'>Leaving Fi to start new company</title><content type='html'>Yes, it was short but intense. I have left Fi, to start my own company. This is super exciting and i'm currently working on a prototype for this world wide public web site.&lt;br /&gt;&lt;br /&gt;Unfortunately I can not reveal the idea, but please stay tuned for information about how to participate in the upcoming beta test.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-8900021871610727298?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/8900021871610727298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=8900021871610727298' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/8900021871610727298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/8900021871610727298'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2008/08/leaving-fi-to-start-new-company.html' title='Leaving Fi to start new company'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-7575342639185237891</id><published>2007-12-06T21:32:00.000+01:00</published><updated>2007-12-06T21:42:26.688+01:00</updated><title type='text'>New job. Exciting project</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_5CEb-Bc5B14/R1hekywZ6LI/AAAAAAAAAA4/0R-FiAV-BBU/s1600-h/propod.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_5CEb-Bc5B14/R1hekywZ6LI/AAAAAAAAAA4/0R-FiAV-BBU/s320/propod.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5140962960836520114" /&gt;&lt;/a&gt;&lt;br /&gt;There has not been much activity here lately, because I have been busy getting into my new job at FI (a.k.a &lt;a href="http://www.fantasy-interactive.com"&gt;www.fantasy-interactive.com&lt;/a&gt;)!&lt;br /&gt;&lt;br /&gt;I am currently working on a new exciting project which will create quite a buzz in the industry. Code name &lt;a href="http://www.propod.com"&gt;ProPod &lt;/a&gt;is a new media blogging platform that will rock your socks off.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-7575342639185237891?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/7575342639185237891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=7575342639185237891' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/7575342639185237891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/7575342639185237891'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/12/new-job-exciting-project.html' title='New job. Exciting project'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_5CEb-Bc5B14/R1hekywZ6LI/AAAAAAAAAA4/0R-FiAV-BBU/s72-c/propod.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-7146634230790047638</id><published>2007-10-02T12:39:00.000+02:00</published><updated>2007-10-02T12:51:31.186+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='10'/><category scheme='http://www.blogger.com/atom/ns#' term='MAX'/><category scheme='http://www.blogger.com/atom/ns#' term='hydra'/><category scheme='http://www.blogger.com/atom/ns#' term='astro'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Presentation of Flash Player 10 aka Astro</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;This presentation was filmed at the MAX Chicago 2007 by Aral Balkan.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;The video shows a sneek preview of some of the new features of Flash Player 10 such as the new text engine, new 3D features and the new bitmap effect scripting language called Hydra. With Hydra people can create their own custom filters in a ActionScript/C&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt; like environment.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object style="font-family: trebuchet ms;" height="350" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ympeCv8lLmw"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/ympeCv8lLmw" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-7146634230790047638?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/7146634230790047638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=7146634230790047638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/7146634230790047638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/7146634230790047638'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/10/presentation-of-flash-player-10-aka.html' title='Presentation of Flash Player 10 aka Astro'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-3445802451558275481</id><published>2007-09-17T13:10:00.000+02:00</published><updated>2007-09-17T13:38:52.978+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='h.264'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Flash Audio/Video updates</title><content type='html'>Most of you flashers already know about the new Flash player that support &lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/H.264"&gt;H.264&lt;/a&gt; video and &lt;a href="http://en.wikipedia.org/wiki/Advanced_Audio_Coding"&gt;AAC&lt;/a&gt; audio.&lt;br /&gt;&lt;br /&gt;This is a huge step for all you who are interested in Flash and video, since producing high quality video for Flash has been limited to the ON2 VP7 codec or the older worse VP6.&lt;br /&gt;&lt;br /&gt;Now Adobe has implemented a limited sub set of MPEG-4, 3GP and QuickTime movie support whih basically means is that instead of converting your video to VP6/FLV with FFMPEG you can progressive stream .mp4,.m4v,.m4a,.mov and .3gp files using the NetStream API you use to load FLV files now. It only need to have a .FLV file extension.&lt;br /&gt;&lt;br /&gt;Another great thing is the support for all audio sampling rates from 8Khz to 96Khz. The old players were limited to 11Khz, 22Khz and 44.1Khz and any other would be played incorrect (slower or faster).&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Read more here:&lt;br /&gt;&lt;a href="http://www.progettosinergia.com/flashvideo/flashvideoblog.htm#120907"&gt;http://www.progettosinergia.com/flashvideo/flashvideoblog.htm#120907&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And here:&lt;br /&gt;&lt;a href="http://www.kaourantin.net/2007/08/what-just-happened-to-video-on-web_20.html"&gt;http://www.kaourantin.net/2007/08/what-just-happened-to-video-on-web_20.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-3445802451558275481?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/3445802451558275481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=3445802451558275481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/3445802451558275481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/3445802451558275481'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/09/flash-audiovideo-updates.html' title='Flash Audio/Video updates'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-3446339883514527996</id><published>2007-09-17T12:55:00.000+02:00</published><updated>2007-09-17T13:08:35.185+02:00</updated><title type='text'>Resize images 2.0</title><content type='html'>Everyone who work with publishing images on the web have faced a situation that you need to change the images physical proportions; height and width. I usualy open up the good ol' Photoshop and batch resize the images to the desired height and width. But what if you could &lt;span style="font-style:italic;"&gt;resize without make the image smaller or loose information like in cropping?&lt;/span&gt; Well smaller ofcourse but I still want to keep that look and feel of the image but it just need to fit in my web design.&lt;br /&gt;&lt;br /&gt;There is now a pretty cool technique called &lt;span style="font-weight:bold;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Seam_carving"&gt;Seam Carving&lt;/a&gt;&lt;/span&gt; to help you with this.&lt;br /&gt;&lt;br /&gt;Mario Klingeman at Quasimondo has written a great article how to use Seam Carving in Flash, and yes there is also source code available! :D&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.quasimondo.com/archives/000652.php#000652"&gt;Check it out here &gt;&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-3446339883514527996?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/3446339883514527996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=3446339883514527996' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/3446339883514527996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/3446339883514527996'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/09/resize-images-20.html' title='Resize images 2.0'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-3263319752878822819</id><published>2007-07-11T10:04:00.001+02:00</published><updated>2008-08-26T16:52:24.122+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='papervision3d'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Papervision3D public Beta</title><content type='html'>&lt;a href="http://blog.papervision3d.org/2007/07/07/papervision3d-public-beta/"&gt;Papervision3D moves from private testing to a full public beta.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Everybody is welcome to download and start playing with it. We believe you will find it very easy to use and to integrate into your Flash 8, Flash CS3 and Flex projects.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="vplayer_std" align="middle" height="377" width="450"&gt;&lt;param name="allowScriptAccess" value="sameDomain"&gt;&lt;param name="movie" value="http://www.papervision3d.org/showreel/publicbeta/index.swf"&gt;&lt;param name="quality" value="high"&gt;&lt;param name="bgcolor" value="#000000"&gt;&lt;embed src="http://www.papervision3d.org/showreel/publicbeta/index.swf" quality="high" bgcolor="#000000" name="vplayer_std" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" align="middle" height="377" width="450"&gt;&lt;/embed&gt;&lt;/object--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-3263319752878822819?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/3263319752878822819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=3263319752878822819' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/3263319752878822819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/3263319752878822819'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/07/papervision3d-public-beta.html' title='Papervision3D public Beta'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-2240563679177679398</id><published>2007-07-06T12:11:00.000+02:00</published><updated>2007-07-06T12:16:36.045+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cs3'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='pv3d'/><title type='text'>Papervision3D Components for Flash CS3</title><content type='html'>&lt;a style="font-family: trebuchet ms;" href="http://www.rockonflash.com/blog/?p=54"&gt;John Grden&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt; has released great Papervision component to Flash CS3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Look at the features:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:trebuchet ms;font-size:85%;"  &gt;    * Design-time render and editing in Flash IDE&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:trebuchet ms;font-size:85%;"  &gt;    * 3 Material types supported - BitmapFileMaterial, BitmaAssetMaterial and MovieAssetMaterial&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:trebuchet ms;font-size:85%;"  &gt;&lt;br /&gt;* Creates MovieScene3D and Free or Target camera&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:trebuchet ms;font-size:85%;"  &gt;&lt;br /&gt;* Manages resizing / centering of Papervision3D scene [optional]&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:trebuchet ms;font-size:85%;"  &gt;&lt;br /&gt;* Dynamic masking to constrain the viewable render area to the bounds of the component [optional]&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:trebuchet ms;font-size:85%;"  &gt;&lt;br /&gt;* Full API and access to Scene, Camera, Collada objects to code around&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:trebuchet ms;font-size:85%;"  &gt;&lt;br /&gt;* Automatically loads materials via Collada file [when materials list is not given]&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:trebuchet ms;font-size:85%;"  &gt;&lt;br /&gt;* New Custom Panel for modifying rotation, camera zoom, camera focus, camera Z at design-time&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://admin.brightcove.com/destination/player/player.swf" bgcolor="#FFFFFF" flashvars="allowFullScreen=true&amp;initVideoId=1078585951&amp;amp;servicesURL=http://www.brightcove.com&amp;viewerSecureGatewayURL=https://www.brightcove.com&amp;amp;amp;amp;amp;cdnURL=http://admin.brightcove.com&amp;amp;autoStart=false" base="http://admin.brightcove.com" name="bcPlayer" allowfullscreen="true" allowscriptaccess="always" seamlesstabbing="false" type="application/x-shockwave-flash" swliveconnect="true" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" height="412" width="486"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-2240563679177679398?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/2240563679177679398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=2240563679177679398' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2240563679177679398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2240563679177679398'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/07/papervision3d-components-for-flash-cs3.html' title='Papervision3D Components for Flash CS3'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-3962631956078688325</id><published>2007-05-28T23:05:00.000+02:00</published><updated>2007-05-28T23:08:41.849+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='break'/><category scheme='http://www.blogger.com/atom/ns#' term='remix'/><category scheme='http://www.blogger.com/atom/ns#' term='dance'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='mashup'/><title type='text'>New remix!</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;I made a new remix. This time it's P-Diddy and 666 Mafia.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="vplayer_std" align="middle" height="377" width="450"&gt;&lt;param name="allowScriptAccess" value="sameDomain"&gt;&lt;param name="movie" value="http://www.fejmtv.se/videoklipp/spelare/300689b47a30f75b"&gt;&lt;param name="quality" value="high"&gt;&lt;param name="bgcolor" value="#000000"&gt;&lt;embed src="http://www.fejmtv.se/videoklipp/spelare/300689b47a30f75b" quality="high" bgcolor="#000000" name="vplayer_std" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" align="middle" height="377" width="450"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-3962631956078688325?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/3962631956078688325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=3962631956078688325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/3962631956078688325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/3962631956078688325'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/05/new-remix-from-me.html' title='New remix!'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-2209692684482981168</id><published>2007-05-28T22:55:00.000+02:00</published><updated>2007-05-28T23:01:49.148+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='machine'/><category scheme='http://www.blogger.com/atom/ns#' term='house'/><category scheme='http://www.blogger.com/atom/ns#' term='drum'/><category scheme='http://www.blogger.com/atom/ns#' term='909'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Flashy drum machine</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://live.popforge.de/"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_5CEb-Bc5B14/RltB8QlMBGI/AAAAAAAAAAw/5g8WQ3sEMEM/s320/909.gif" alt="" id="BLOGGER_PHOTO_ID_5069718309034525794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;All you who are into electron music know what the Roland 909 is.&lt;/span&gt; &lt;span style="font-family:trebuchet ms;"&gt;This drum machine is with the 808 a legendary piece of electronics.&lt;/span&gt; &lt;span style="font-family:trebuchet ms;"&gt;Mostly famous for the hard beats of the Detroit house genre and is still the base for lots of techno and house tracks.&lt;/span&gt;  &lt;span style="font-family:trebuchet ms;"&gt;The flash guru &lt;a href="http://void.andre-michelle.com/"&gt;André Michelle&lt;/a&gt; has created a realtime 909 drum machine for you all to play around with. This is a must see (hear) for everyone that is the least interested in music and/or Flash.&lt;/span&gt;  &lt;a style="font-family: trebuchet ms;" href="http://live.popforge.de/"&gt;http://live.popforge.de/&lt;br /&gt;&lt;/a&gt; &lt;span style="font-family:trebuchet ms;"&gt;Enjoy&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-2209692684482981168?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/2209692684482981168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=2209692684482981168' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2209692684482981168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2209692684482981168'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/05/flashy-drum-machine.html' title='Flashy drum machine'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_5CEb-Bc5B14/RltB8QlMBGI/AAAAAAAAAAw/5g8WQ3sEMEM/s72-c/909.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-2211475635158478078</id><published>2007-04-16T09:40:00.000+02:00</published><updated>2007-04-16T09:43:25.903+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='papervision'/><category scheme='http://www.blogger.com/atom/ns#' term='wii'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Wii + Flash = WiiFlash</title><content type='html'>&lt;object height="350" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/6JATI7gVFtk"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/6JATI7gVFtk" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;WiiFlash allows you to control your Flash games and applications with the revolutionary Wiimote.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;It supports multiple Wiimotes, IR bar and Nunchuk and integrates very well with Papervision3D. All you need is a Bluetooth enabled PC and a Wiimote, of course.&lt;br /&gt;&lt;/span&gt;If you want to play with it, go and &lt;a href="http://code.google.com/p/wiiflash" target="_blank"&gt;&lt;strong&gt;get the code&lt;/strong&gt;&lt;/a&gt; and subscribe to the &lt;a href="http://osflash.org/mailman/listinfo/wiiflash_osflash.org" target="_blank"&gt;&lt;strong&gt;WiiFlash mailing list&lt;/strong&gt;&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-2211475635158478078?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/2211475635158478078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=2211475635158478078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2211475635158478078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2211475635158478078'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/04/wii-flash-wiiflash.html' title='Wii + Flash = WiiFlash'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-2880711700917862863</id><published>2007-04-16T09:34:00.000+02:00</published><updated>2007-04-16T09:37:48.100+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash video media server red5'/><title type='text'>New Red5 Version Released</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;There is a new version (0.6rc3) of the Open Source Red5 Flash server. This should be the last revision before the official 0.6 release which is due out in a little over a week.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;The final 0.6 will be out just in time for John Grden and I to show off some really cool features of Red5 at FITC next weekend. If you are going to be at the conference please stop in. You won’t be disappointed, as they will be demonstrating some applications using midi, 3D, live multi-track recording and more. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Here are the details about the current 0.6rc3 release:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Major changes since 0.6rc2:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;- Bandwidth control code completely refactored.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;- Client buffering code completely refactored.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;- Keyframe informations are cached so files don’t need to be reparsed&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;before playback.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;- Connections from Flash Media Encoder and On2 Flix Live supported.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;- Access to shared objects can be limited.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;- Connections can provide a list of remote addresses. This is usefull&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;for proxied RTMPT connections.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;…and of course a lot of bugs have been fixed as well. The complete&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;changelog can be found in the “doc” directory after the installation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Installers:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Windows&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;http://dl.fancycode.com/red5/setup-red5-0.6rc3.exe&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;MD5: 14229425035758379df0fc24f94045&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;47Debian&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;http://dl.fancycode.com/red5/debian/0.6rc3/red5_0.6rc3-1_i386.deb&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;MD5: 041c4d388f3346bf435e6989cddecb1fMacOSX&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;http://red5.nl/installer/setup-red5-0.6rc3.dmg&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;http://dl.fancycode.com/red5/mac/setup-red5-0.6rc3.dmg&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;MD5: 4b71b3789d5e05e2b2045d14bf770229&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;WAR (Java 1.5)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;http://dl.fancycode.com/red5/war/red5-0.6rc3-java5.war&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;MD5: 4d523f814580ee9fd69adad533e7bba1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;WAR (Java 1.6)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;http://dl.fancycode.com/red5/war/red5-0.6rc3-java6.war&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;MD5: 4d773cf5dabfe12c915017625c17163c&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Instructions on how to install Red5 on Gentoo are available at&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;http://overlays.gentoo.org/dev/bangert/wiki/Red5Gentoo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;A tarball for all other systems is available at&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;http://dl.fancycode.com/red5/red5-0.6rc3.tar.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;MD5: 86cf3778fd4512b2bad62e5de27d6e20&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Further informations as well as mirrors for the downloads soon can be&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;found on the official homepage at http://osflash.org/red5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Please bring any bugs you encounter to our bugtracking system at&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;http://jira.red5.org&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;If you have questions about using Red5, please subscribe to the mailing&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;list at http://osflash.org/mailman/listinfo/red5_osflash.org&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-2880711700917862863?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/2880711700917862863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=2880711700917862863' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2880711700917862863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2880711700917862863'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/04/new-red5-version-released.html' title='New Red5 Version Released'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-4102651850119832204</id><published>2007-03-12T11:03:00.000+01:00</published><updated>2007-03-12T11:10:27.229+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='papervision'/><category scheme='http://www.blogger.com/atom/ns#' term='starwars'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='red5'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>The first Papervision3D Game</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;John Grden has released the first 3D game ever using flash, papervision3D and Red5.&lt;/span&gt;&lt;br /&gt;This excelent game has started a new era in flash and game development. It is also exciting to see the opens-source communication server Red5 in action.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.rockonflash.com/blog/?p=37"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://www.rockonflash.com/blog/wp-content/images/pv3d/obstacleCourse/screen_0_thumb.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-4102651850119832204?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/4102651850119832204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=4102651850119832204' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/4102651850119832204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/4102651850119832204'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/03/first-papervision3d-game.html' title='The first Papervision3D Game'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-2110668876350023271</id><published>2007-03-09T10:12:00.000+01:00</published><updated>2007-03-09T10:14:42.493+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='viddler'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='flv'/><title type='text'>Web 2.0 The Machine is Us/ing Us Video</title><content type='html'>&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="376" height="299" id="viddler"&gt;&lt;param name="movie" value="http://www.viddler.com/player/58bbc59b/" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="quality" value="high" /&gt;&lt;embed src="http://www.viddler.com/player/58bbc59b/" quality="high" width="376" height="299" allowScriptAccess="always" name="viddler"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-2110668876350023271?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/2110668876350023271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=2110668876350023271' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2110668876350023271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2110668876350023271'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/03/web-20-machine-is-using-us-video.html' title='Web 2.0 The Machine is Us/ing Us Video'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-3129215260171152378</id><published>2007-03-05T09:41:00.000+01:00</published><updated>2007-03-05T09:44:42.564+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='application'/><category scheme='http://www.blogger.com/atom/ns#' term='free'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Adobe Flash Media Encoder</title><content type='html'>&lt;a href="http://www.adobe.com/products/flashmediaserver/flashmediaencoder/" target="new"&gt;Flash Media Encoder (FME)&lt;/a&gt; is a free Windows desktop program that enables webcasters to stream high-quality Flash Video content to a live audience using On2's VP6 codec.&lt;br /&gt;Stefan Richter has written an informative article about this program, check it out!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://streamingmedia.com/article.asp?id=9519"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://www.streamingmedia.com/articleimages/fme.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-3129215260171152378?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/3129215260171152378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=3129215260171152378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/3129215260171152378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/3129215260171152378'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/03/adobe-flash-media-encoder.html' title='Adobe Flash Media Encoder'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-7133185956779024785</id><published>2007-03-05T09:31:00.000+01:00</published><updated>2007-03-05T09:36:33.699+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='papervison'/><category scheme='http://www.blogger.com/atom/ns#' term='as3'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='flv'/><title type='text'>North Face Demo Using Papervision3D</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;Lee from The Flash Blog has created a supercool demo of Movies and Papervision3D&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;It is made with AS3, and shows incredible speed!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://theflashblog.com/index.php"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_5CEb-Bc5B14/RevWOAGIKlI/AAAAAAAAAAk/ijLRAorc_7U/s320/northface.jpg" alt="" id="BLOGGER_PHOTO_ID_5038356144176245330" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-7133185956779024785?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/7133185956779024785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=7133185956779024785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/7133185956779024785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/7133185956779024785'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/03/north-face-demo-using-papervision3d.html' title='North Face Demo Using Papervision3D'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5CEb-Bc5B14/RevWOAGIKlI/AAAAAAAAAAk/ijLRAorc_7U/s72-c/northface.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-2889954568836996193</id><published>2007-02-28T10:10:00.000+01:00</published><updated>2007-02-28T10:21:43.231+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='full screen'/><category scheme='http://www.blogger.com/atom/ns#' term='player'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='flv'/><title type='text'>Video player</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;I've been working on a video player, so here is a sneak preview!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Right now there are two visual effects, blur and light. I',m planning on extend the visuals along the way.&lt;/span&gt;&lt;br /&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="video_player" align="middle" height="383" width="425"&gt;&lt;br /&gt;&lt;param name="allowScriptAccess" value="sameDomain"&gt;&lt;br /&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;br /&gt;&lt;param name="movie" value="http://www.2cool2care.com/misc/video_player.swf"&gt;&lt;param name="quality" value="high"&gt;&lt;param name="bgcolor" value="#000000"&gt;&lt;br /&gt;&lt;embed allowfullscreen="true" src="http://www.2cool2care.com/misc/video_player.swf" quality="high" bgcolor="#000000" name="video_player" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" align="middle" height="383" width="425"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-2889954568836996193?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/2889954568836996193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=2889954568836996193' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2889954568836996193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2889954568836996193'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/02/video-player.html' title='Video player'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-864336592059316475</id><published>2007-02-28T09:30:00.000+01:00</published><updated>2007-02-28T09:37:20.178+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='papervision'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='collada'/><title type='text'>Loading 3D animations</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;Check this amazing example of how to load a collada animation into Papervision 3D.&lt;br /&gt;Tim Knip has made some great proggress in bone and skeleton animations.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a style="font-family: trebuchet ms;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.suite75.net/lab/papervision3d/bipedtest/fps/"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_5CEb-Bc5B14/ReU-K6DOdkI/AAAAAAAAAAY/9JL8TrqXHsM/s320/3dmonster.jpg" alt="" id="BLOGGER_PHOTO_ID_5036500115386168898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The collada-file is around 5 megs, so please be patient whilst loading&lt;br /&gt;&lt;br /&gt;Parsing all keyframes is rather cpu-intensive, after file is loaded yoy have to wait another 20 secs or so.... you may encounter the infamous script-timeout alert of the flash player...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-864336592059316475?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/864336592059316475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=864336592059316475' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/864336592059316475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/864336592059316475'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/02/loading-3d-animations.html' title='Loading 3D animations'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5CEb-Bc5B14/ReU-K6DOdkI/AAAAAAAAAAY/9JL8TrqXHsM/s72-c/3dmonster.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-8900900220760418952</id><published>2007-02-27T17:13:00.000+01:00</published><updated>2007-02-27T17:15:29.370+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='karen'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='overton'/><category scheme='http://www.blogger.com/atom/ns#' term='trance'/><title type='text'>The best song right now - Karen Overton</title><content type='html'>&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/X3_8HwcR24s"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/X3_8HwcR24s" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-8900900220760418952?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/8900900220760418952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=8900900220760418952' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/8900900220760418952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/8900900220760418952'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/02/best-song-right-now-karen-overton.html' title='The best song right now - Karen Overton'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-5075129191976237655</id><published>2007-02-27T09:34:00.000+01:00</published><updated>2007-02-27T09:40:09.745+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='papervision'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='collada'/><title type='text'>So you wanna get started with PV3D?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://labs.blitzagency.com/?p=93"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://labs.blitzagency.com/wp-content/070207/small/LowPolyModel.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;Blitz Ageny wrote a nice tutorial about how to get started with Papervision 3D.&lt;br /&gt;The article explains the first step in exporting your 3d model and how to handle textures for collada export.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://labs.blitzagency.com/?p=93"&gt;http://labs.blitzagency.com/?p=93&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-5075129191976237655?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/5075129191976237655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=5075129191976237655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/5075129191976237655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/5075129191976237655'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/02/so-you-wanna-get-started-with-pv3d.html' title='So you wanna get started with PV3D?'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-4348197702614385847</id><published>2007-02-26T10:16:00.000+01:00</published><updated>2007-02-27T09:40:57.090+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='papervision'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='phong'/><title type='text'>Papervision3D - Phong  shading</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;The PV3D engine gets more and more advanced, now with &lt;a href="http://en.wikipedia.org/wiki/Phong_shading"&gt;Phong &lt;/a&gt;shading!&lt;br /&gt;Check this cool exeample:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.unitzeroone.com/papervision/paperPhong/Main.html"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://papervision3d.files.wordpress.com/2007/02/phongrhino.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-4348197702614385847?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/4348197702614385847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=4348197702614385847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/4348197702614385847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/4348197702614385847'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/02/papervision3d-phong-shading.html' title='Papervision3D - Phong  shading'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-8832937736432691997</id><published>2007-02-26T09:46:00.000+01:00</published><updated>2007-02-27T09:41:20.349+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='mirror'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='flv'/><title type='text'>Papervision3D - Video texture!</title><content type='html'>&lt;span style=";font-family:trebuchet ms;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:trebuchet ms;font-size:85%;"  &gt;&lt;span style=";font-family:trebuchet ms;font-size:100%;"  &gt;Those guys that are working in the Papervision3D collaboration are really amazing!&lt;br /&gt;Here  is a really cool 3D video example of what you can do with PV3D!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://actionscriptarchitect.com/pv3d/Video3DR.html"&gt;&lt;img style="cursor: pointer; width: 209.952px; height: 158.12px;" src="http://2.bp.blogspot.com/_5CEb-Bc5B14/ReKftHQxZZI/AAAAAAAAAAM/88gScp08vX0/s320/3dvideo.jpg" alt="" id="BLOGGER_PHOTO_ID_5035762930745959826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=";font-family:trebuchet ms;font-size:85%;"  &gt;The man behind this example is  Paul Spitzer.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-8832937736432691997?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/8832937736432691997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=8832937736432691997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/8832937736432691997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/8832937736432691997'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/02/papervision3d-video-texture.html' title='Papervision3D - Video texture!'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5CEb-Bc5B14/ReKftHQxZZI/AAAAAAAAAAM/88gScp08vX0/s72-c/3dvideo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-6463484179274699428</id><published>2007-02-26T09:35:00.000+01:00</published><updated>2007-02-27T09:44:46.473+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='ffmpeg'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='flv'/><title type='text'>A Layman's Guide to Flash Video Conversion</title><content type='html'>&lt;span style=";font-family:trebuchet ms;font-size:85%;"  &gt;From time to time most (flash)developers need to handle web-video. If you don't have the Flash IDE to convert the movie files to .FLV (flash video) you will need a thrd party software.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.video-link.tv/wp-content/uploads/2007/02/ffmpeg.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 288px;" src="http://www.video-link.tv/wp-content/uploads/2007/02/ffmpeg.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style=";font-family:trebuchet ms;font-size:85%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I have used FFMPEG for a few years and I must say that it totally rocks and there are soo many developers that are most gratefull for this FREE program.&lt;br /&gt;&lt;br /&gt;Alx Klive, has written a great guide about converting movies to .FLV using FFMpeg. &lt;br /&gt;&lt;a href="http://www.worldtv.com/blog/guides_tutorials/flv_converter.php/"&gt;http://www.worldtv.com/blog/guides_tutorials/flv_converter.php/&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-6463484179274699428?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/6463484179274699428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=6463484179274699428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/6463484179274699428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/6463484179274699428'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2007/02/laymans-guide-to-flash-video-conversion.html' title='A Layman&apos;s Guide to Flash Video Conversion'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-114008298319940903</id><published>2006-02-16T10:25:00.000+01:00</published><updated>2006-02-16T10:43:03.210+01:00</updated><title type='text'>Using Flash,  WebService and Client Cookies</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3127/2269/1600/fws.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/3127/2269/320/fws.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;In a recent project i converted a .NET/Html login function to a Flash 8 login page.&lt;br /&gt;My Flash first used the &lt;a href="http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00004260.html"&gt;WebService &lt;/a&gt;and &lt;a href="http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;amp;file=00004245.html"&gt;PendingCall&lt;/a&gt;  to cummicate with the .NET webservice.&lt;br /&gt;&lt;br /&gt;It all worked fine, except the fact that the login function uses a client cookie for authentication :P&lt;br /&gt;As I found out, if you set a client cookie in a webservice it can't be accesible from the client.&lt;br /&gt;&lt;br /&gt;I did not find any standard way to solve this yet, so i threw the webservice in the "thrash" and made a regular aspx page and used the LoadVars object.&lt;br /&gt;&lt;br /&gt;If anyone have a smooth example to solve this please let us know =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-114008298319940903?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/114008298319940903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=114008298319940903' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/114008298319940903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/114008298319940903'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2006/02/using-flash-webservice-and-client.html' title='Using Flash,  WebService and Client Cookies'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-113990663615012276</id><published>2006-02-14T09:29:00.000+01:00</published><updated>2006-02-20T16:16:28.690+01:00</updated><title type='text'>Save bitmap from flash</title><content type='html'>&lt;span style="FONT-WEIGHT: bold"&gt;Using .NET/C# to generate bitmap from Flash 8&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;*update*&lt;br /&gt;2006-06-20. I added a progress bar to make it more clear what is happening.&lt;br /&gt;&lt;br /&gt;I have been searching for cool ways to use flash for creating gallery functions since it's both cool and easy to make great functions. And now when we can generate files on disk it is really usefull!&lt;br /&gt;&lt;br /&gt;There are many examples around for this but I did not really find suitable code for me, using .Net/C#, so after messing around a bit i put together a nice solution using a .NET Web service. &lt;em&gt;Please be patient, it will take a few seconds to generate the pixel array and send it to the web service.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Check it out:&lt;br /&gt;&lt;br /&gt;&lt;object id="BitmapSave" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=" height="342" width="441" align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"&gt;&lt;param name="_cx" value="11668"&gt;&lt;param name="_cy" value="9049"&gt;&lt;param name="FlashVars" value=""&gt;&lt;param name="Movie" value="http://www.2cool2care.com/flash/BitmapSave.swf"&gt;&lt;param name="Src" value="http://www.2cool2care.com/flash/BitmapSave.swf"&gt;&lt;param name="WMode" value="Window"&gt;&lt;param name="Play" value="-1"&gt;&lt;param name="Loop" value="-1"&gt;&lt;param name="Quality" value="High"&gt;&lt;param name="SAlign" value=""&gt;&lt;param name="Menu" value="-1"&gt;&lt;param name="Base" value=""&gt;&lt;param name="AllowScriptAccess" value="sameDomain"&gt;&lt;param name="Scale" value="ShowAll"&gt;&lt;param name="DeviceFont" value="0"&gt;&lt;param name="EmbedMovie" value="0"&gt;&lt;param name="BGColor" value="FFFFFF"&gt;&lt;param name="SWRemote" value=""&gt;&lt;param name="MovieData" value=""&gt;&lt;param name="SeamlessTabbing" value="1"&gt;&lt;param name="Profile" value="0"&gt;&lt;param name="ProfileAddress" value=""&gt;&lt;param name="ProfilePort" value="0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://www.2cool2care.com/flash/BitmapSave.swf" quality="high" bgcolor="#ffffff" width="441" height="342" name="BitmapSave" align="middle" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;The generated image will show in a new window.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Flash&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;function Generate(obj:MovieClip):Void&lt;br /&gt;{&lt;br /&gt;var pixelarr:Array = new Array()&lt;br /&gt;var bmp:BitmapData = new BitmapData(obj._width, obj._height,false,0xffffff);&lt;br /&gt;var myMatrix:Matrix = new Matrix();&lt;br /&gt;//No positioning&lt;br /&gt;myMatrix.translate(0, 0);&lt;br /&gt;bmp.draw(obj.Picture,myMatrix);&lt;br /&gt;&lt;br /&gt;var w:Number = bmp.width;&lt;br /&gt;var h:Number = bmp.height;&lt;br /&gt;&lt;br /&gt;for(var a=0; a ‹ h; a++)&lt;br /&gt;{&lt;br /&gt;for(var b=0; b‹w; b++)&lt;br /&gt;{&lt;br /&gt;pixelarr.push(bmp.getPixel32(b, a));&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;var wsdlURI = "http://www.2cool2care.com/flash/Service.asmx";&lt;br /&gt;var myWebService:WebService = new mx.services.WebService(wsdlURI+"?WSDL");&lt;br /&gt;var callback1:PendingCall = myWebService.SaveImage(pixelarr.toString(),h,w);&lt;br /&gt;callback1.onResult = function(result)&lt;br /&gt;{&lt;br /&gt;//result is the file name&lt;br /&gt;if(result)&lt;br /&gt;{&lt;br /&gt;getURL("http://www.2cool2care.com/flash/"+result,"_blank");&lt;br /&gt;trace(result);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;callback1.onFault = function(fault)&lt;br /&gt;{&lt;br /&gt;trace("Err: "+fault.faultstring)&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;C#&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;[WebMethod]&lt;br /&gt;public string SaveImage(string Pixels,int Height, int Width)&lt;br /&gt;{&lt;br /&gt;//Create pixel array&lt;br /&gt;String[] PxArr = Pixels.Split(',');&lt;br /&gt;Bitmap MyImage = new Bitmap(Width, Height);&lt;br /&gt;Graphics Gfx = Graphics.FromImage(MyImage);&lt;br /&gt;Gfx.DrawRectangle(new Pen(Color.Red), new Rectangle(0, 0, Width, Height));&lt;br /&gt;int k = 0;&lt;br /&gt;//Loop and paint pixels&lt;br /&gt;for (int i = 0; i ‹ Height; i++)&lt;br /&gt;{&lt;br /&gt;for (int j = 0; j ‹ Width; j++)&lt;br /&gt;{&lt;br /&gt;MyImage.SetPixel(j, i, Color.FromArgb(Convert.ToInt32(PxArr[k])));&lt;br /&gt;k++;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;//Randomize filename and save&lt;br /&gt;Random RandomClass = new Random();&lt;br /&gt;String Filename = RandomClass.Next().ToString() + ".png";&lt;br /&gt;MyImage.Save(Server.MapPath(Filename), System.Drawing.Imaging.ImageFormat.Png);&lt;br /&gt;return Filename;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I Hope someone finds this useful!&lt;br /&gt;&lt;br /&gt;Take care,&lt;br /&gt;Rob&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-113990663615012276?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/113990663615012276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=113990663615012276' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/113990663615012276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/113990663615012276'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2006/02/save-bitmap-from-flash.html' title='Save bitmap from flash'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-113969318230872289</id><published>2006-02-11T22:18:00.000+01:00</published><updated>2006-02-11T22:26:22.316+01:00</updated><title type='text'>Welcome!</title><content type='html'>Hi there!&lt;br /&gt;&lt;br /&gt;Pretty cool that you found my bog, since it does not really exists.. that's right, i'm writing the first post right this second :)&lt;br /&gt;&lt;br /&gt;Nevermind, what the first message really is about is&lt;span style="font-style: italic;"&gt; internet radio&lt;/span&gt;.&lt;br /&gt;To be more specific; &lt;a href="http://www.protonradio.com/"&gt;Proton Radio&lt;/a&gt;.&lt;br /&gt;These guys are streaming electronica 24/7,  and sometimes  it is totally awesome. Cool beats, baselines are mixed with well known songs such as  Sweet dreams (yes, Eurythmics),  and other classic  tracs. I really reccomend!&lt;br /&gt;&lt;br /&gt;*please note that some times the music suck a bit, but when you hear these remixes it's all worth it!*&lt;br /&gt;&lt;br /&gt;Take care,&lt;br /&gt;Rob&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-113969318230872289?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/113969318230872289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=113969318230872289' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/113969318230872289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/113969318230872289'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2006/02/welcome.html' title='Welcome!'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-2659386654408694782</id><published>2003-11-24T22:48:00.000+01:00</published><updated>2007-05-28T22:51:48.454+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net windows forms c#'/><title type='text'>Directory Picker Pro in C#</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.c-sharpcorner.com/UploadFile/pohlrobert/DirectoryPickerPro12012005004345AM/Images/DirectoryPickerProImg1.gif"&gt;&lt;img style="cursor: pointer; width: 297px; height: 297px;" src="http://www.c-sharpcorner.com/UploadFile/pohlrobert/DirectoryPickerPro12012005004345AM/Images/DirectoryPickerProImg1.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;p&gt;&lt;span nd="3"  style="font-family:Verdana, Arial, Helvetica, sans-serif;"&gt;In my latest project I needed a dialog for picking a directory. I searched through the web, but found nothing that looked nice. First of all I wanted a TreeView for display, and I wanted to view all system drives (with correct names and icons).  &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;strong&gt;How to use:&lt;/strong&gt; &lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span nd="5"  style="font-size:85%;"&gt;DirPicker DP = &lt;/span&gt;&lt;span nd="6"   style="font-size:85%;color:#0000ff;"&gt;new&lt;/span&gt;&lt;span nd="7"  style="font-size:85%;"&gt; DirPicker();&lt;br /&gt;DP.ShowDialog();&lt;br /&gt;&lt;/span&gt;&lt;span nd="8"   style="font-size:85%;color:#0000ff;"&gt;if&lt;/span&gt;&lt;span nd="9"  style="font-size:85%;"&gt;(DP.Result==DirectoryPickerResponse.Ok)&lt;br /&gt;{&lt;br /&gt;MessageBox.Show("Ok: "+ DP.SelectedDirectory);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span nd="10"   style="font-size:85%;color:#0000ff;"&gt;else&lt;br /&gt;&lt;/span&gt;&lt;span nd="11"  style="font-size:85%;"&gt;{&lt;br /&gt;MessageBox.Show("Cancel!");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span nd="12"  style="font-family:Verdana, Arial, Helvetica, sans-serif;"&gt;Simple huh?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span nd="12"  style="font-family:Verdana, Arial, Helvetica, sans-serif;"&gt;Go to the url above for source code.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-2659386654408694782?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.c-sharpcorner.com/UploadFile/pohlrobert/DirectoryPickerPro12012005004345AM/DirectoryPickerPro.aspx' title='Directory Picker Pro in C#'/><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/2659386654408694782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=2659386654408694782' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2659386654408694782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/2659386654408694782'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2003/11/directory-picker-pro-in-c.html' title='Directory Picker Pro in C#'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22315672.post-5722451704955913817</id><published>2003-09-03T22:42:00.000+02:00</published><updated>2007-05-28T22:46:25.659+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net c#'/><title type='text'>Error Logging in ASP.NET</title><content type='html'>&lt;p style="font-family: trebuchet ms;font-family:trebuchet ms;" &gt;&lt;span style="font-size:100%;"&gt;&lt;span nd="2"&gt;All coders are quite familiar with error messages. They are quite handy when developing stuff but you dont want them around after the release of your system and the users dont really think they are too funny.&lt;br /&gt;&lt;br /&gt;So, how can we get rid of these ugly messages and still get nice information when your functions break down? I have written some code (with some inspiration from other error logging examples) that provide your system with some nice features:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul style="font-family: trebuchet ms;font-family:trebuchet ms;" &gt;&lt;span style="font-size:100%;"&gt;&lt;li&gt;On error, it redirects the user to a page that in English explains that an error has occurred.  &lt;/li&gt;&lt;li&gt;You can set the object to either send an email or write in the EventLog, or both.  &lt;/li&gt;&lt;li&gt;All the browser information is included in the email for support help.  &lt;/li&gt;&lt;li&gt;It can also present an Alert message to the user&lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="font-family: trebuchet ms;font-family:trebuchet ms;font-size:100%;"  &gt;Read the article: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;font-size:78%;"&gt;http://www.c-sharpcorner.com/UploadFile/pohlrobert/ErrorLoggingInASPNet11142005060841AM/ErrorLoggingInASPNet.aspx&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22315672-5722451704955913817?l=robertpohl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.c-sharpcorner.com/UploadFile/pohlrobert/ErrorLoggingInASPNet11142005060841AM/ErrorLoggingInASPNet.aspx' title='Error Logging in ASP.NET'/><link rel='replies' type='application/atom+xml' href='http://robertpohl.blogspot.com/feeds/5722451704955913817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22315672&amp;postID=5722451704955913817' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/5722451704955913817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22315672/posts/default/5722451704955913817'/><link rel='alternate' type='text/html' href='http://robertpohl.blogspot.com/2003/09/error-logging-in-aspnet.html' title='Error Logging in ASP.NET'/><author><name>Robert Pohl</name><uri>http://www.blogger.com/profile/11160530120975384039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://3.bp.blogspot.com/_5CEb-Bc5B14/SX1vEiXNn8I/AAAAAAAAACg/_HBUDG8E6Ts/S220/tall.jpg'/></author><thr:total>0</thr:total></entry></feed>
