<?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-1552601533162079024</id><updated>2012-01-22T08:33:05.402+01:00</updated><category term='Unit testing'/><category term='AOP'/><category term='Crystal Reports'/><category term='MySQL'/><category term='Trackback'/><category term='Centaur'/><category term='Subversion'/><category term='IoC'/><category term='Rails'/><category term='GlassFish'/><category term='Hibernate'/><category term='CFUnit'/><category term='NET 1.1'/><category term='Mach II'/><category term='UML'/><category term='MS SQL'/><category term='web services'/><category term='blazeds'/><category term='Java'/><category term='flex'/><category term='Transfer'/><category term='Windows.Forms'/><category term='Reactor'/><category term='C#'/><category term='Fusebox'/><category term='Tomcat'/><category term='TDD'/><category term='General'/><category term='XML-RPC'/><category term='Framework'/><category term='ORM'/><category term='Software development'/><category term='Eclipse'/><category term='ColdFusion. ColdFuison Builder'/><category term='Regular Expression'/><category term='Android'/><category term='Coldspring'/><category term='pipes'/><category term='Yahoo'/><category term='Pingback'/><category term='ColdFusion'/><category term='Model-Glue'/><title type='text'>IT Reminder</title><subtitle type='html'>Manager asks “but what if we only have crap developers”, default response is “well, in that situation, standard best practice is to fail”</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>30</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-2843076124843122863</id><published>2011-07-18T12:38:00.000+02:00</published><updated>2011-07-18T12:38:27.684+02:00</updated><title type='text'>The Last Programming Language (my 5 cents)</title><content type='html'>This started as comment on &lt;a href="http://corfield.org/blog/post.cfm/the-last-programming-language"&gt;Sean's review &lt;/a&gt;of Uncle Bob's preso "&lt;a href="http://skillsmatter.com/podcast/agile-testing/bobs-last-language"&gt;The Last Programming Language&lt;/a&gt;" and outcome had too many characters and convert it to blog. Anyway, I blog quite rarely, it's been about timeto finally make one in year 2011 :) &amp;nbsp;So, to understand what I am talking about you should go and see Bob's preso first.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;My 5 cents&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I don't dare to predict which or what kind of language will take the throne.&lt;br /&gt;No matter I am familiar with most mentioned languages, and have working expirience with some, I really it is need much more then that to be able to elaborate on that. However, I see numerous other reasons why we, humans, will settle on one (uber, last, ultimate, call it however suits you the best) programm language. Because, it's in our nature.&amp;nbsp;To illustrate it, I'll use popular analogies.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Safe side&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Software development is too important discipline in today's society that this level of freedom is "unacceptable" (sounds hursh I know). These days is very popular to compare software with civil engineering, so I'm going to do it too.&amp;nbsp;CE students are teached to do things in certain way. These ways guarantee acceptable level of quality of their products.&amp;nbsp;Most civil engineers will blindly apply what they've learned and stay on safe side.&lt;br /&gt;Doing better then that means balancing project expense and construction quality, in context of reality (moment). &amp;nbsp;Simplified, in most cases, it means better quality for less money. Also, knowing when to increase expense in favor of better outcome is quality for itself.&lt;br /&gt;OK. You can always say "This is so rigid because human lives are at stake". True, but is it really that different with software engineering? What controls medical equipment and modern building machines? What civil engineer use for calculations and designs? What will descrease (or increase in rare cases :)) saldo on your banking account?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Common ground&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Proponent of freedom and diversity use variety of speaking languages as an example. World "live" and communicate with so many different languages, so why it can't use more than one programming language.&lt;br /&gt;English language is perfect contra argument. No matter do you like it or not, but this is de facto communication standard among professionals (of any kind). See? I am just doing it :) No matter french is more "singy", spanish sexier, italian simpler, chinese more descriptive, we settle (spontaneous or not, nevermind) on english as common ground.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;Software development is not just coding&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;People are afraid of becoming bored, by time (through decades), working with one language.&lt;br /&gt;First of all, language is just a tool. As such, it just helps you, assist you, to reach your goal.&lt;br /&gt;And our goal is well crafted software. Standardizing laguage, gives me more time to focus on architecture and design.&amp;nbsp;From perspective of tools, Eclipse seems as solid example. Common platform that suits the needs of most programmers.&lt;br /&gt;&lt;br /&gt;To conclude.&lt;br /&gt;I am quite sure it will happen by time. Is it going to be some mutant of functional PL or not, to me, is not important at all. Our profession is young and mature by time. Why it should mature in much different way then all other (centuries old) professions?&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-2843076124843122863?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/2843076124843122863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=2843076124843122863' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/2843076124843122863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/2843076124843122863'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2011/07/last-programming-language-my-5-cents.html' title='The Last Programming Language (my 5 cents)'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-8093159081796013866</id><published>2010-06-20T01:14:00.002+02:00</published><updated>2010-06-20T23:48:07.402+02:00</updated><title type='text'>Learning Scala</title><content type='html'>As a man who try to follow&amp;nbsp;goals of &lt;a href="http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X"&gt;pragmatic programmer&lt;/a&gt;, learning Scala is one of investments in my portfolio and new language this year, as well.&lt;br /&gt;&lt;br /&gt;I am a man of practice. Therefore, I like to learn is from examples. Brute force exercise of this principal is&amp;nbsp;"&lt;a href="http://matt.might.net/articles/learning-scala-in-small-bites/"&gt;Learning Scala in small bites&lt;/a&gt;" blog, as well I place I would&amp;nbsp;recommend&amp;nbsp;for start. To be able to remember or comprehend things, I always try to pass through fingers all I read. This case was no exception. To be honest, I didn't follow this rule all the time :)&lt;br /&gt;Now when I&amp;nbsp;poisoned my brain with a bunch of raw information, next move was to spice it with some explanations and more usable examples. Next address was IBM and "&lt;a href="http://www.ibm.com/developerworks/views/java/libraryview.jsp?sort_by=&amp;amp;show_abstract=true&amp;amp;show_all=&amp;amp;search_flag=&amp;amp;topic_by=-1&amp;amp;type_by=All+Types&amp;amp;industry_by=-1&amp;amp;search_by=The+busy+Java+developer's+guide+to+Scala&amp;amp;Go.x=0&amp;amp;Go.y=0"&gt;The busy Java developer's guide to Scala&lt;/a&gt;" series of articles by&amp;nbsp;Ted Neward.&lt;br /&gt;&lt;br /&gt;So far, I like Scala a lot.&amp;nbsp;One of those languages that caught me on the first site.&amp;nbsp;I have no&amp;nbsp;experience&amp;nbsp;with functional languages, but how &lt;a href="http://en.wikipedia.org/wiki/Martin_Odersky"&gt;Martin Odersky&lt;/a&gt;&amp;nbsp;has incorporated&amp;nbsp;its principals&amp;nbsp;into object-oriented world is something I grasped(?) very easy.&lt;br /&gt;&lt;br /&gt;UPDATE: Upffff. This is THE&amp;nbsp;challenge! Just when I thought I'm moving/learning fast, an totally non-understandable example hit me in the face:)&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-8093159081796013866?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/8093159081796013866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=8093159081796013866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/8093159081796013866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/8093159081796013866'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2010/06/learning-scala.html' title='Learning Scala'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-359501342787675579</id><published>2010-03-22T11:48:00.003+01:00</published><updated>2010-03-23T13:09:04.585+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion. ColdFuison Builder'/><title type='text'>What if I don't care for Flex Builder?</title><content type='html'>"Everyone" point out how $299 for CFB is a good deal because you get Flex Builder bundled. But what if I don't care for Flex? Is it still a good deal? &lt;br /&gt;&lt;br /&gt;Flex Builder Standard costs $249 and CFB+FB $299. What is a real idea behind this? To promote CFB among Flex developers? Honestly, I see this as a better deal for Flex developers, who really needs an IDE for rapid development, then it is for CF developers (only).&lt;br /&gt;&lt;br /&gt;Me, as CF developer, don't see this as a good opportunity at all. Opposite. 83% of money I'll pay, actually goes to something I won't use.&lt;br /&gt;&lt;br /&gt;On the other hand, by supporting this project, we keep doors open for version 2 one day. And when that day come, I hope that CFB will be sufficient argument for itself to have decent sale.&lt;br /&gt;&lt;br /&gt;Update:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Simple math:&lt;/b&gt; &lt;br /&gt;Flash Builder 4 Standard (stand alone) - $249&lt;br /&gt;CF Builder 1.0 w/ Flash Builder 4 Standard included - $299&lt;br /&gt;--------------------------------------------------------------&lt;br /&gt;-&amp;gt; &lt;b&gt;CF Builder 1.0 costs $50&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related content:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Adobe plans&amp;nbsp;for CF Builder&amp;nbsp;for present and future.&lt;a href="http://www.cfhour.com/post.cfm/show-46-interview-adam-lehman-about-coldfusion-builder"&gt;&lt;br /&gt;CFHour&amp;nbsp;Interview Adam Lehman about ColdFusion Builder&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.adobe.com/products/flex/buy/"&gt;Flash Builder 4 prices&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.adobe.com/products/coldfusion/buy/"&gt;ColdFusion Builder 1.0 price&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-359501342787675579?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/359501342787675579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=359501342787675579' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/359501342787675579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/359501342787675579'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2010/03/what-if-i-dont-care-for-flex-builder.html' title='What if I don&apos;t care for Flex Builder?'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-5993244683735174597</id><published>2010-03-16T23:52:00.002+01:00</published><updated>2010-03-18T00:17:11.927+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='blazeds'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>BlazeDS: Creating endpoint at runtime</title><content type='html'>Why? Because I do not want to bother end users with xml configuration files. Simple as that.&lt;br /&gt;Biggest enemy of your application is user itself. Therefore, reducing possibility to make a mistake is most important goal if you wish to left good impression with your app. This was one of steps that I take on the road to make Collyba installation procedure as easy as possible.&lt;br /&gt;As I said in previous &lt;a href="http://itreminder.blogspot.com/2010/03/blazeds-creating-destinations-at.html"&gt;blog&lt;/a&gt;, while I was working on this, insight &amp;nbsp;to BlazeDS source files was of great help. Actually that is where I found a solution.&lt;br /&gt;&lt;br /&gt;What are channels and endpoints?&lt;br /&gt;&lt;blockquote&gt;Channels are client-side objects that encapsulate the connection behavior between Flex components and the BlazeDS server. Channels communicate with corresponding endpoints on the BlazeDS server. You configure the properties of a channel and its corresponding endpoint in the services-config.xml file.&lt;/blockquote&gt;But in our case, we won't configure it in XML file but programmatically.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;/**&lt;br /&gt;* Creates endpoint. Run this before creating destination.&lt;br /&gt;* @id hint="Channel Id which communicate with corresponding endpoints on the BlazeDS server."&lt;br /&gt;*/&lt;br /&gt;public void function createEndpoint(required string channelId){&lt;br /&gt; //svn: http://opensource.adobe.com/svn/opensource/blazeds/trunk/modules/core/src/flex/messaging/MessageBroker.java&lt;br /&gt; var brokerClass = createObject('java','flex.messaging.MessageBroker');&lt;br /&gt; var broker = brokerClass.getMessageBroker( javacast('null','') );&lt;br /&gt; var channelSets = broker.getAllChannelSettings();&lt;br /&gt; var chennIds = broker.getChannelIds();&lt;br /&gt; &lt;br /&gt; //check if channel/endpoint is already created&lt;br /&gt; if (arrayContains(chennIds,arguments.channelId)){&lt;br /&gt;  return;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; /*Channel definiton properties*/&lt;br /&gt; //svn: http://opensource.adobe.com/svn/opensource/blazeds/trunk/modules/common/src/flex/messaging/config/ChannelSettings.java&lt;br /&gt; var channelSettings = createObject('java','flex.messaging.config.ChannelSettings').init(arguments.channelId);&lt;br /&gt; //svn: http://opensource.adobe.com/svn/opensource/blazeds/trunk/modules/common/src/flex/messaging/config/ConfigMap.java&lt;br /&gt; var channelProperties = createObject('java','flex.messaging.config.ConfigMap').init();&lt;br /&gt; var chPropSerialize = createObject('java','flex.messaging.config.ConfigMap').init();  &lt;br /&gt; var endpoint = '';&lt;br /&gt; &lt;br /&gt; channelSettings.setClientType("mx.messaging.channels.AMFChannel");&lt;br /&gt; channelSettings.setEndpointType("coldfusion.flash.messaging.CFAMFEndPoint");&lt;br /&gt; channelSettings.setUri("http://{server.name}:{server.port}{context.root}/flex2gateway/cfamflongpolling");&lt;br /&gt;&lt;br /&gt; channelProperties.addProperty("add-no-cache-headers","false"); &lt;br /&gt; channelProperties.addProperty("polling-enabled","true");&lt;br /&gt; channelProperties.addProperty("polling-interval-seconds","0");&lt;br /&gt; channelProperties.addProperty("client-wait-interval-millis","1");&lt;br /&gt; channelProperties.addProperty("wait-interval-millis","60000");&lt;br /&gt; channelProperties.addProperty("max-waiting-poll-requests","200");&lt;br /&gt;&lt;br /&gt; chPropSerialize.addProperty("enable-small-messages","false");&lt;br /&gt; channelProperties.addProperty("serialization",chPropSerialize);  &lt;br /&gt; &lt;br /&gt; channelSettings.addProperties(channelProperties);&lt;br /&gt; &lt;br /&gt; /*Channel definiton endpoint*/&lt;br /&gt; //svn: http://opensource.adobe.com/svn/opensource/blazeds/trunk/modules/core/src/flex/messaging/endpoints/Endpoint.java&lt;br /&gt; //Creates an Endpoint instance, sets its id and url&lt;br /&gt; endpoint = broker.createEndpoint(&lt;br /&gt;     arguments.channelId, &lt;br /&gt;     "http://{server.name}:{server.port}{context.root}/flex2gateway/cfamflongpolling",&lt;br /&gt;     channelSettings.getEndpointType());&lt;br /&gt; // Initialize the endpoint with id and properties&lt;br /&gt; endpoint.initialize(arguments.channelId, channelSettings.getProperties());&lt;br /&gt; //Start the endpoint&lt;br /&gt; endpoint.start();&lt;br /&gt; &lt;br /&gt; channelSets[arguments.channelId] = channelSettings;&lt;br /&gt; broker.setChannelSettings(channelSets);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;XML equivalent of &amp;nbsp;this channel/endpoint definition ( set in services-config.xml) is:&lt;br /&gt;&lt;pre&gt;&amp;lt;channel-definition id="collyba-longpolling-amf" class="mx.messaging.channels.AMFChannel"&amp;gt;&lt;br /&gt;&amp;lt;endpoint uri="http://{server.name}:{server.port}{context.root}/flex2gateway/cfamflongpolling" class="flex.messaging.endpoints.AMFEndpoint"/&amp;gt;&lt;br /&gt;&amp;lt;properties&amp;gt;&lt;br /&gt; &amp;lt;enable-small-messages&amp;gt;false&amp;lt;/enable-small-messages&amp;gt;&lt;br /&gt; &amp;lt;add-no-cache-headers&amp;gt;false&amp;lt;/add-no-cache-headers&amp;gt;&lt;br /&gt; &amp;lt;polling-enabled&amp;gt;true&amp;lt;/polling-enabled&amp;gt;&lt;br /&gt; &amp;lt;polling-interval-seconds&amp;gt;0&amp;lt;/polling-interval-millis&amp;gt;&lt;br /&gt; &amp;lt;client-wait-interval-millis&amp;gt;1&amp;lt;/client-wait-interval-millis&amp;gt;&lt;br /&gt; &amp;lt;wait-interval-millis&amp;gt;60000&amp;lt;/wait-interval-millis&amp;gt;&lt;br /&gt; &amp;lt;max-waiting-poll-requests&amp;gt;200&amp;lt;/max-waiting-poll-requests&amp;gt;&lt;br /&gt; &amp;lt;serialization&amp;gt;&lt;br /&gt;  &amp;lt;enable-small-messages&amp;gt;false&amp;lt;/enable-small-messages&amp;gt;&lt;br /&gt; &amp;lt;/serialization&amp;gt;&lt;br /&gt;&amp;lt;/properties&amp;gt;&lt;br /&gt;&amp;lt;/channel-definition&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;There are 2 crucial points here:&lt;br /&gt;a) flex.messaging.config.ChannelSettings class holds all information from channel-definition definition element from services-config.xml file&lt;br /&gt;b) createEndpoint method call. This is a place when we create Endpoint instance assign it to MessageBroker&lt;br /&gt;&lt;br /&gt;Easy, isnt't it. Well it wasn't for me. But, knowing that I'll save you at least a day of R&amp;amp;D makes me happy :)&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-5993244683735174597?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/5993244683735174597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=5993244683735174597' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/5993244683735174597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/5993244683735174597'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2010/03/blazeds-creating-endpoint-at-runtime.html' title='BlazeDS: Creating endpoint at runtime'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-2708478545990350605</id><published>2010-03-16T22:43:00.004+01:00</published><updated>2010-03-18T00:13:42.076+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='blazeds'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>BlazeDS: Creating destinations at runtime</title><content type='html'>Because it is already said a lot on this subject, I won't waste much words, but go straight to the point/code.&lt;br /&gt;&lt;pre&gt;/**&lt;br /&gt;* Create blazeds destination at runtime. Follow SVN link to java source files for more details.&lt;br /&gt;* @name hint="Destination name" &lt;br /&gt;*/&lt;br /&gt;function createDestination(destname,channelId){&lt;br /&gt; var local = structNew();&lt;br /&gt; &lt;br /&gt; //svn: http://opensource.adobe.com/svn/opensource/blazeds/trunk/modules/core/src/flex/messaging/MessageBroker.java&lt;br /&gt; local.brokerClass = createObject('java','flex.messaging.MessageBroker');&lt;br /&gt; local.broker = local.brokerClass.getMessageBroker( javacast('null','') );&lt;br /&gt; local.service = local.broker.getService('message-service');&lt;br /&gt; local.destinations = local.service.getDestinations();&lt;br /&gt; &lt;br /&gt; //check if destination already exists. If it does just return it&lt;br /&gt; if (structKeyExists(local.destinations,arguments.destname)){ //check if destination already exist&lt;br /&gt;  return local.destinations[arguments.destname]; &lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; //svn: http://opensource.adobe.com/svn/opensource/blazeds/trunk/modules/core/src/flex/messaging/Destination.java&lt;br /&gt; local.destination = local.service.createDestination(arguments.destname);&lt;br /&gt; // Creates a ServiceAdapter instance and sets its id, sets if destination  is manageable&lt;br /&gt; local.destination.createAdapter('cfgateway');&lt;br /&gt; &lt;br /&gt; //svn: http://opensource.adobe.com/svn/opensource/blazeds/trunk/modules/common/src/flex/messaging/config/ConfigMap.java&lt;br /&gt; local.configMap = createObject('java','flex.messaging.config.ConfigMap').init();&lt;br /&gt; local.configMap.addProperty('gatewayid',application.CFEventGatewayId);&lt;br /&gt; &lt;br /&gt; //svn: http://opensource.adobe.com/svn/opensource/blazeds/trunk/modules/core/src/flex/messaging/config/ServerSettings.java&lt;br /&gt; local.ss = createObject("java","flex.messaging.config.ServerSettings");&lt;br /&gt; local.ss.setAllowSubtopics(true); &lt;br /&gt; local.ss.setSubtopicSeparator('.');&lt;br /&gt; local.ss.setDurable(false);&lt;br /&gt; &lt;br /&gt; local.destination.setServerSettings(ss);&lt;br /&gt; &lt;br /&gt; local.adapter = local.destination.getAdapter();&lt;br /&gt; &lt;br /&gt; //Initializes the adapter with the properties.&lt;br /&gt; local.adapter.initialize('cfgateway',configMap);&lt;br /&gt;&lt;br /&gt; local.destination.addChannel(arguments.channelId);&lt;br /&gt; &lt;br /&gt; //Starts the destination if its associated Service is started and if the destination is not already running. &lt;br /&gt; local.destination.start();&lt;br /&gt; &lt;br /&gt; return local.destination;&lt;br /&gt;}&lt;/pre&gt;&lt;a name='more'&gt;&lt;/a&gt;Note that I placed svn links to BlazeDS java source files. While I was working on this and especially endpoint creation, insight to these files was invaluable to me. Each method is nicely documented, so it is very easy to understand.&lt;br /&gt;&lt;br /&gt;More on this subject:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Adobe BlazeDS Developer Guide: &lt;/span&gt;&lt;a href="http://livedocs.adobe.com/blazeds/1/blazeds_devguide/runtimeconfig_4.html"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Configuring components with a remote object&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Joao Fernandes' blog had some very nice posts regarding this subject, but old site is dead, and don't address to new one&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.aaronwest.net/blog/"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Aaron West blog&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;: Search for "BlazeDS"&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Stephen Moretti blog: &lt;/span&gt;&lt;a href="http://nil.checksite.co.uk/index.cfm/2010/2/12/CF-BlazeDS-AJAX-LongPolling-Part2"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;AJAX Longpolling with ColdFusion and BlazeDS - Connecting and Messaging&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://opensource.adobe.com/svn/opensource/blazeds/trunk/resources/ColdFusion/BlazeDS_for_CF.txt"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;How to setup BlazeDS on ColdFusion 8&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-2708478545990350605?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/2708478545990350605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=2708478545990350605' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/2708478545990350605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/2708478545990350605'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2010/03/blazeds-creating-destinations-at.html' title='BlazeDS: Creating destinations at runtime'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-9016089113597559876</id><published>2010-03-07T02:07:00.007+01:00</published><updated>2010-03-24T01:26:12.272+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GlassFish'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Deploy ColdFusion 8/9 on Glassfish v3</title><content type='html'>Deploying ColdFusion 8/9 on Sun Glassfish 3 is not much different than it is on IBM WebSphere 7 AS. Except, imho, it is far more optimal, because it takes much less resources (especially if it is setup for dev) and cost nothing. I did this on Win7 platform, but it looks&amp;nbsp;completely&amp;nbsp;the same on Linux platforms. So, let's move.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Application Server Setup&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Download ColdFusion 8/9 Developer Edition from&amp;nbsp;&lt;a href="http://tinyurl.com/l6ythn"&gt;http://tinyurl.com/l6ythn&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Prepare ColdFusion&amp;nbsp;8/9&amp;nbsp;for J2EE deployment: Run setup file -&amp;gt; J2EE Configuration -&amp;gt; &amp;nbsp;EAR File -&amp;gt; ContextRoot: cfusion -&amp;gt; enable RDS. More details on&amp;nbsp;&lt;a href="http://tinyurl.com/yasl232"&gt;http://tinyurl.com/yasl232&lt;/a&gt;. Just &amp;nbsp;prepare and&amp;nbsp;&lt;b&gt;don't&lt;/b&gt; expand the EAR file.&lt;/li&gt;&lt;li&gt;Be sure you have installed JDK. For latest version go to&amp;nbsp;&lt;a href="http://java.sun.com/javaee/downloads/index.jsp"&gt;http://java.sun.com/javaee/downloads/index.jsp&lt;/a&gt;. If you develop under Eclipse and while you are there, download "GlassFish Tools Bundle for Eclipse" too. It is not necessary for CF development, but gives you full control over application server from your IDE, which is cool.&lt;/li&gt;&lt;li&gt;Install Sun GlassFish Enterprise Server v3. Go to&amp;nbsp;&lt;a href="http://tinyurl.com/yg3dlqj"&gt;http://tinyurl.com/yg3dlqj&lt;/a&gt;&amp;nbsp;and download it. Installation procedure is very simple. Change port numbers if you want, but remember it, because you'll need it.&lt;/li&gt;&lt;li&gt;Deploy ColdFusion 8/9 on GlassFish: Open GlassFish Administrator Console -&amp;gt; Applications -&amp;gt; Deploy... -&amp;gt; Packaged file to be uploaded...-&amp;gt; &lt;cf_install_dir&gt;/cfusion.ear -&amp;gt; OK. You've prepared EAR file in step 1.&lt;/cf_install_dir&gt;&lt;/li&gt;&lt;li&gt;Open CF Admin for the first time. Notice that path is case sensitive. http://localhost:8080/cfusion/CFIDE/administrator/&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;ColdFusion Builder Setup&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Setup GlassFish connector in Eclipse. As I said before, I think this is not necessary, but, from my&amp;nbsp;experience, since I haven't installed this, CF Builder did not recognize CF Server mappings properly.&lt;/li&gt;&lt;li&gt;Setting up CF debugger. Open GF Admin Console&amp;nbsp;http://localhost:4848/. Go to Configuration -&amp;gt; JVM Settings. You should see in "Debug Options" field&amp;nbsp;-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009. Leave it as is. If you like you can change port address (9009). In CF, usually, by default it is 5005. Check "Debug" box. Press "Save" and restart GlassFish. &amp;nbsp;Now, go CF Admin. Open Debuggin &amp;amp; Logging -&amp;gt; Debugger Settings, check "Allow Line Debugging" and set Debugger Port number to one you've set in previous step, in GF Admin Console. Press "Submit Changes".&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;General&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Deploy test web application on CF9@Glassfish&lt;br /&gt;-&amp;gt; create folder "test" under&amp;nbsp;${com.sun.aas.instanceRootURI}/applications/cfusion/cfusion_war&lt;br /&gt;-&amp;gt; create index.cfm with "Hello World" text in it&lt;br /&gt;-&amp;gt; call http://localhost:8080/cfusion/test/. You should see "Hello World!" text in your browser.&lt;/li&gt;&lt;li&gt;Instead to type&amp;nbsp;http://localhost:8080/cfusion/test/ all the time you can create&amp;nbsp;a proxy to your project's address on apache httpd:&lt;br /&gt;-&amp;gt; Open httpd.conf. Enable modules:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; LoadModule proxy_module modules/mod_proxy.so&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; LoadModule proxy_connect_module modules/mod_proxy_connect.so&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; LoadModule proxy_http_module modules/mod_proxy_http.so&lt;br /&gt;-&amp;gt; Include addition virtual host definitions. Uncomment line:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Include conf/extra/httpd-vhosts.conf&lt;/li&gt;&lt;li&gt;Open &lt;apache_dir&gt;/conf/extra/httpd-vhosts.conf. Add:&lt;/apache_dir&gt;&lt;/li&gt;&lt;/ul&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Virtualhost *:80=""&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ServerAdmin marko.simic@gmail.com&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ServerName testproj&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ProxyRequests Off&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;proxy *=""&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Order deny,allow&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Allow from all&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/proxy&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ProxyPass / http://localhost:8080/cfusion/test/&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ProxyPassReverse / http://localhost:8080/cfusion/test/&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Virtualhost&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Add "testproj" in your hosts file. Open in any text editor &lt;win_dir&gt;/syste32/drivers/etc/hosts. At the bottom add line:&lt;br /&gt;127.0.0.1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;testproj&lt;/win_dir&gt;&lt;/li&gt;&lt;li&gt;Now, your test app should be accessable by http://testproj&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Glassfish specifics&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Nice tutorial how to publish static content and virtual directories&amp;nbsp;&lt;a href="http://www.marceble.com/2009/07/virtual-directories-in-glassfish/"&gt;here&lt;/a&gt;&amp;nbsp;and &lt;a href="http://blogs.sun.com/jluehe/entry/new_support_for_virtual_directory"&gt;here&lt;/a&gt;.&lt;br /&gt;But, what worked for me is: Glassfish 3 Console -&amp;gt; virtual servers -&amp;gt; click on "server" -&amp;gt; Scroll down to "Additional Properties" -&amp;gt; Add... -&amp;gt; &lt;b&gt;name:&lt;/b&gt;&amp;nbsp;alternatedocroot_1, &lt;b&gt;value:&amp;nbsp;from=/mydir/* dir=C:/privatedir/&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Just when I finished this manual I found blog with almost the same content.&amp;nbsp;&lt;/div&gt;&lt;div&gt;If you find this insufficient you can go and check Kukiel's blogs:&lt;/div&gt;&lt;div&gt;&lt;div style="margin: 0px;"&gt;&lt;a href="http://blog.kukiel.net/2009/11/coldfusion-9-on-glassfish.html"&gt;http://blog.kukiel.net/2009/11/coldfusion-9-on-glassfish.html&lt;/a&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;a href="http://blog.kukiel.net/2009/11/railo-on-glassfish.html"&gt;http://blog.kukiel.net/2009/11/railo-on-glassfish.html&lt;/a&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;Strange this blog did not show up when I look for "ColdFusion&amp;nbsp;on&amp;nbsp;glassfish" at Google, but did when I look for "Railo on Glassfish". Byah, Even Google lie from time to time ;)&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Update:&lt;br /&gt;Several links that might help you with GF/Apache configuration&lt;br /&gt;&lt;br /&gt;&lt;a href="https://support.eapps.com/index.php?_m=knowledgebase&amp;amp;_a=viewarticle&amp;amp;kbarticleid=232"&gt;User Guide – GlassFish v3 User Guide &lt;/a&gt;&lt;br /&gt;and look for "Apache as a front end to GlassFish using mod_jk" section&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.steeplesoft.com/2007/05/virtual-hosting-using-apache-and-glassfish/"&gt;Virtual Hosting using Apache and GlassFish&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;+ check comment 5&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-9016089113597559876?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/9016089113597559876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=9016089113597559876' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/9016089113597559876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/9016089113597559876'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2010/03/deploy-coldfusion-89-on-glassfish-v3.html' title='Deploy ColdFusion 8/9 on Glassfish v3'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-5774610761778913565</id><published>2010-03-04T00:17:00.002+01:00</published><updated>2010-03-07T02:10:06.257+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Proud to be second!</title><content type='html'>Not that I wouldn't like to be a first, but last 2 second places were awesome!&lt;br /&gt;On 29th January I won second place on "&lt;a href="http://www.coldfusionjedi.com/index.cfm/2010/1/29/Best-of-ColdFusion-9-Contest-And-the-winners-are"&gt;Best Of CF9&lt;/a&gt;" contest. Contest was&amp;nbsp;&amp;nbsp;organized by Ray and other Adobe Community Experts. Thank you for that. I won't talk about much about that here, just to emphize that I have "big" plans for &lt;a href="http://www.coldfusionjedi.com/index.cfm/2010/1/12/Best-of-CF9-Collyba"&gt;Collyba&lt;/a&gt;. "Big" actually means that I'm &lt;i&gt;really&lt;/i&gt; going to continue development on it, which is, for itself, enormous&amp;nbsp;accomplishment:)&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;Today, team of my&amp;nbsp;colleagues and me&amp;nbsp;won &lt;a href="http://android.vipmobile.rs/"&gt;golden second place&lt;/a&gt; on "VIP Android Challenge". And it was really golden, because first was platinum.&lt;br /&gt;Beside contest's name, this was really a challenge for me. First of I am not in Java that much anymore. So, you can say I am not "in shape". Second, in team we had some very&amp;nbsp;experienced&amp;nbsp;Java/Android developers and it required from me to keep up with them. Third, and last, mobile developed was&amp;nbsp;completely&amp;nbsp;new to me. With a high level of support of my colleagues and my undisputed adventurous spirit, we won second place. That was &lt;i&gt;second second&lt;/i&gt; place in quite short period of time. Is it neccessery to say that I already earned epithet of "forever second"? &amp;nbsp;:)&lt;br /&gt;However, knowledge and&amp;nbsp;experience&amp;nbsp;I earned by participating in these contests were so big and valuable that winning a second place(s) was above all my expectations and hopes.&lt;br /&gt;&lt;br /&gt;I've also discovered that competitions are big motivators to me and excellent way to force myself to learn new things.&lt;br /&gt;&lt;br /&gt;Thank you all for encouragement and support!&lt;br /&gt;&lt;br /&gt;PS&lt;br /&gt;To all malicious bastards: I wasn't "second of two" :)&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-5774610761778913565?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/5774610761778913565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=5774610761778913565' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/5774610761778913565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/5774610761778913565'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2010/03/proud-to-be-second.html' title='Proud to be second!'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-4599270494794161969</id><published>2010-02-17T22:14:00.001+01:00</published><updated>2010-03-07T02:10:27.892+01:00</updated><title type='text'>What is MVC in few simple words</title><content type='html'>Today I read an excellent post on &lt;a href="http://fw1.riaforge.org/"&gt;FW/1&lt;/a&gt; &lt;a href="http://groups.google.com/group/framework-one"&gt;mailing list&lt;/a&gt;. My impression came from ideal I try to follow in my life: "perfection lies in simplicity". I was, several times in situation to try to explain people what MVC (framework) is, and discovered that&amp;nbsp;unexperienced&amp;nbsp;developers have a problem to chew up that subject. One more thing I am sure about is that usually it is a problem with how things are presented more then to whom they are presented.&amp;nbsp;However, this man, Ryan Cogswell, did it in 5 simple sentences. So,&amp;nbsp;for everyone who are still not clear what MVC framework is and how it works, and for me who will use his words to explain others, I'll quote:&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;You can use views at different levels of granularity (views can use other views), but start with one view for each page.&lt;/blockquote&gt;&lt;blockquote&gt;&amp;nbsp;As a general guideline, your views should only contain display code not data retrieval or processing logic. The controllers/services should take care of the non-display logic. If you don't yet understand the difference between services and controllers, then keep it simple and put all of your non-display logic in controllers and don't use services.&lt;/blockquote&gt;&lt;blockquote&gt;&amp;nbsp;Services and beans are just options for how to organize code into different components. Views and layouts provide options for organizing display code into different cfm pages. There are potential benefits to using these framework features, but they do not prevent you from continuing to use the ways you have previously organized your cf code.&lt;/blockquote&gt;&lt;br /&gt;Don't get me wrong. This, by itself, is not enough to completely understand MVC pattern, but when (and if) you found yourself unsure or lost in process of learning, get back on this quote I am sure that everything will be much more clear....if not completely :)&lt;br /&gt;&lt;br /&gt;More about this:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Wikipedia about &lt;a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller"&gt;MVC architectural pattern&lt;/a&gt;&lt;/li&gt;&lt;li&gt;What is FW/1&amp;nbsp;framework:&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://fw1.riaforge.org/"&gt;Wiki&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Video presentation:&amp;nbsp;&lt;a href="http://www.meetup.com/coldfusionmeetup/pages/Recordings%20of%20the%20ColdFusion%20Meetup-2010"&gt;FW/1 - The Invisible Framework&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-4599270494794161969?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/4599270494794161969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=4599270494794161969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/4599270494794161969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/4599270494794161969'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2010/02/what-is-mvc-in-few-simple-words.html' title='What is MVC in few simple words'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-6814968154679055997</id><published>2010-01-09T22:13:00.006+01:00</published><updated>2010-03-07T23:28:04.481+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>Everything is dead these days</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Sounds morbid, but, really, in last few weeks everything died :)&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;As a ColdFusion developer most noticeable to me was spree of articles &amp;amp; blogs which tried to explain how CF is dead (or is about to die). But that's something I used to. Each time new CF Server comes out, "CF-is-dead wave" hit the coast. What really surprised me was that everything else died.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Few days ago, I read an "old" (for some reason it became popular again) article how &lt;a href="http://littletutorials.com/2008/05/15/13-reasons-for-umls-descent-into-darkness/"&gt;UML died&lt;/a&gt; and 13 reasons why is so. According to author, this technology is already dead. After reading it, my only question was: What is an alternative? Read a blog, read dozens of comments and no one suggested what can be an alternative to this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Not much after that, same site (coincidence, conspiracy or marketing :)) published a "rend" against TDD (Test Driven Development). Again, bottom line was: This sucks, give us something(!) else.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After language, design  and development methodology died, it was about time for one legend to die. No worries. Chuck Norris can't die. Ultimate surprise came in form of clam that &lt;a href="http://marxsoftware.blogspot.com/2010/01/i-use-dead-programming-languages.html"&gt;Java is dead&lt;/a&gt;. I like this article and author does not defend premise of article title, but try to find the root of such claim. There you'll find many interesting facts and link to as many interesting articles. Plus, I totally agree with him. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, that's it or, at least, enough. No more dieing.&lt;/div&gt;&lt;div&gt;Not sure what this means. Is this coincidence, is this a sign of forthcoming changes or apocalypse is really going to happen in 2012 :) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After reading so many "morbid" titles in few days, I discovered something crucially positive in all this. Computer languages are dieing on daily bases, and that way, they actually evolve. In computer science, "moment  of being dead" is a good thing. It means your community will awake and try to breath a new life into their beloved donkey.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the meanwhile, my fellas, enjoy working with "dead technologies" ;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-6814968154679055997?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/6814968154679055997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=6814968154679055997' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/6814968154679055997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/6814968154679055997'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2010/01/everything-is-day-these-days.html' title='Everything is dead these days'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-4194456176689301460</id><published>2009-06-05T00:44:00.012+02:00</published><updated>2010-03-08T22:58:41.473+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Regular Expression'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>ColdFusion Regular Expression Optimization</title><content type='html'>&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Calibri; font-size: 100%;"&gt;&lt;/span&gt;&lt;/div&gt;Last night I bumped on article talking about regular expression  performance tuning. After reading it and since we extensivly use  regex to parse article &amp;amp; community content, I decided to see can we do  something to bit boost performance on that side. So, here we  go. &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  Startup facts and  implications:&lt;br /&gt;&lt;br /&gt;a) „ColdFusion is built on top of Java.  ColdFusion data types (String, Query, Struct, Array, etc.) are really  just custom Java classes that are built on top of things like strings, record  sets, hash tables, collections, etc. „&lt;br /&gt;=&amp;gt;&lt;br /&gt;We can use java.lang.String methods  on ColdFusion strings. This is more a fact then something we are going to use  and  you’ll see later why ;) &lt;/div&gt;&lt;div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;b)  Regular expression string replacement based on&lt;i&gt; java compiled patterns&lt;/i&gt; is much  faster then using built-in ColdFusion function (REReplace, REReplaceNoCase)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;c)  Alternation really can slow down your programs. Regular expressions like  "(X|Y|Z)" have a reputation for being slow, so watch out for them.&lt;br /&gt;-  &lt;i&gt;Expression "ab(cd|ef)" is faster then "(abcd|abef)"&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;d) Regex engine will look/search through entire text to see if there is anything that will match your  criteria.  Whenever possible, check string for existens of "fixed" part pattern before you start looking for it via regex.&lt;br /&gt;&lt;br /&gt;- Expression ".*(abcd|efgh|ijkl).*" is slower than using three calls to String.indexOf(), one for each alternative in the regular expression.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Test&lt;/b&gt;&lt;br /&gt;Okay.  Now test. I took and old cffunction (&lt;i&gt;getClearText&lt;/i&gt;) that removes BBCode from text and refactored  (&lt;i&gt;getClearTextTest&lt;/i&gt;) to  see how it is going to perform after I apply rules from above.  At  first try I used string.indexOf(„pattern_keyword“) (see fact a)) to test  does text contains at least one occurence of pattern in it. Problem was that indexOf is  case-sensitive and BBCode is used by users-free-will, therefore case  can vary. I've also tried to  toUpper/LowerCase() text, but doing it on large texts can be veeery slow. My  test showed that uppercasing text of 4K characters can take up to  200ms. Hence, scenario textToPrase.toUpperCase().indexOf(parrent_keyword.toUpperCase()) was out of the  question. Than I tried CF function findNoCase and it perfomed suprisingly well.  Honestly I would like to know how it’s working.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How I  test it?&lt;/b&gt;&lt;br /&gt;Very simple. I fetched from database 50 articles.&lt;br /&gt;&lt;i&gt;select id,textcol from articles&lt;br /&gt;order by article_id desc limit  50;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;Through standard query loop I parsed textcol using both methods: getClearText and getClearTextTest to see how much time they will  need to do work (measured by cftimer). I’ve  also instantiated 2 different javaRegEx classes to be sure that one method is  not using precompiled pattern of other. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Result:&lt;/b&gt;&lt;br /&gt;getClearTextTest took (avg) 20% less time to complete task.&lt;br /&gt;Case-sensitivity plays important role. Case-sensitive search methods (indexOf,find) are faster of thier case-insensitive counterparts (toUpperCase().indexOf,findNoCase).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Trivia&lt;/b&gt;&lt;/div&gt;&lt;div&gt;I've tried to impove pattern-check part of code, by replacing findNoCase method with &lt;i&gt;dk.brics.automaton.RegExp&lt;/i&gt; pattern Matcher. It has reputation of blazing fast RegEx Java library. In short, in my case it didn't help at all. Pattern compilation time takes too much time.&lt;span class="Apple-style-span" style="font-family: monospace,fantasy; font-size: medium; font-weight: bold; white-space: pre;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Moral:&lt;/b&gt;&lt;br /&gt;Don’t look unless you’re not sure it’s there. Peak  first! :)&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Recommanded readings:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.javaworld.com/javaworld/jw-09-2007/jw-09-optimizingregex.html?page=2"&gt;Optimizing regular  expressions in Java&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.bennadel.com/"&gt;Ben Nadel&lt;/a&gt;  blog (he blogged alot on similar subjects)&lt;br /&gt;&lt;br /&gt;PS&lt;br /&gt;Code sample is comming as soon as I upload it...somewhere :)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-4194456176689301460?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/4194456176689301460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=4194456176689301460' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/4194456176689301460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/4194456176689301460'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2009/06/coldfusion-regular-expression.html' title='ColdFusion Regular Expression Optimization'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-8772102770730126655</id><published>2009-04-25T01:21:00.007+02:00</published><updated>2009-12-14T12:07:57.522+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Centaur'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><title type='text'>ColdFusion on Rails</title><content type='html'>First of all I am not talking here about porting CF in Rails framework, but porting of ideas.&lt;br /&gt;&lt;br /&gt;After I heard for millionth time "Ruby on Rails is cool", I've decided to try it myself. Well, that was 6+ months ago: read Ruby language tutorial, few tuts on Rails framework, and that's where I stopped. Don't get me wrong, it is not because I didn't like it, but because of lack of time. Anyway, I think I got point, and point where I sincerely agree: "freedom yes, but not too much" or "too much freedom can kill you".&lt;br /&gt;How is this related with ColdFusion.&lt;br /&gt;Plus/minus some time since I start learning RoR, I also heard (at that time rumor) that Adobe plans to integrate Hibernate in new version of CF Server (code name Centaur).&lt;br /&gt;I'll stop here (for now) and conclude: CF needs to make a choice on MVC framework and CF on Rails is there.&lt;br /&gt;&lt;br /&gt;to be continued...&lt;br /&gt;&lt;br /&gt;CF Wheels, framework inspired by Ruby on Rails, hit its &lt;a href="http://cfwheels.org/"&gt;first final&lt;/a&gt; version.&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-8772102770730126655?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/8772102770730126655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=8772102770730126655' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/8772102770730126655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/8772102770730126655'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2009/04/coldfusion-on-rails.html' title='ColdFusion on Rails'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-626058609785220304</id><published>2009-04-23T17:52:00.001+02:00</published><updated>2009-04-23T17:54:53.315+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Trackback'/><category scheme='http://www.blogger.com/atom/ns#' term='Pingback'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><category scheme='http://www.blogger.com/atom/ns#' term='XML-RPC'/><title type='text'>Pingback</title><content type='html'>Wikipedia:&lt;br /&gt;&lt;blockquote&gt;A Pingback is one of three types of Linkbacks, methods for Web authors to request notification when somebody links to one of their documents. This enables authors to keep track of who is linking to, or referring to their articles.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Pingback is an XML-RPC request sent from Site A to Site B. This functionality usually comes as part of blogging softwares since it's most commonly used there. Almost all open source blogging applications are written in PHP and only a few in CF and none of them have support for pingback. Therefore I decided to write an CF implementation by myself.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pingback.riaforge.org/"&gt;Download source code&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;pingback.cfc - Pingback implementation&lt;br /&gt;tools.cfc - Various tools used by pingback.cfc&lt;br /&gt;xmlrpc.cfc - Translates XML-RPC packets to and from CFML data structures&lt;br /&gt;xmlrpc.cfm - XML-RPC Server&lt;br /&gt;test.cfm - Test template. Start from this file.&lt;br /&gt; &lt;br /&gt;Successfully tested on Railo 3.1 and ColdFusion 8 Enterprise Server.&lt;br /&gt;Should not be a problem to integrate it into blogCFC.&lt;br /&gt;&lt;br /&gt;Pingback specification:&lt;br /&gt;http://www.hixie.ch/specs/pingback/pingback&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-626058609785220304?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/626058609785220304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=626058609785220304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/626058609785220304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/626058609785220304'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2009/04/pingback.html' title='Pingback'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-1699772523080286327</id><published>2008-12-01T21:52:00.002+01:00</published><updated>2008-12-01T21:56:28.614+01:00</updated><title type='text'>Eclipse: Working Sets</title><content type='html'>Very neat feature of Eclipse. It is going to help you to locate files.  Why would you watch and browse through jungle of files, if you can isolate only part of code (files) that are of your interest? Interested, then &lt;a href="http://www.dopefly.com/techblog/entry.cfm?entry=129"&gt;Read It!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-1699772523080286327?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/1699772523080286327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=1699772523080286327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/1699772523080286327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/1699772523080286327'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2008/12/eclipse-working-sets.html' title='Eclipse: Working Sets'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-7155537450996248673</id><published>2008-11-24T19:55:00.003+01:00</published><updated>2008-11-25T13:22:44.350+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IoC'/><category scheme='http://www.blogger.com/atom/ns#' term='Model-Glue'/><category scheme='http://www.blogger.com/atom/ns#' term='Coldspring'/><category scheme='http://www.blogger.com/atom/ns#' term='Mach II'/><category scheme='http://www.blogger.com/atom/ns#' term='Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Reactor'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusebox'/><category scheme='http://www.blogger.com/atom/ns#' term='AOP'/><category scheme='http://www.blogger.com/atom/ns#' term='Transfer'/><category scheme='http://www.blogger.com/atom/ns#' term='ORM'/><title type='text'>ColdFusion Frameworks</title><content type='html'>The best retrospective of ColdFusion frameworks I've found on net. Article will give you insight into most popular frameworks and categorization.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.remotesynthesis.com/post.cfm/Mach-II-or-ColdSpring-Understanding-the-Differences-Between-ColdFusion-Frameworks"&gt;Read It!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-7155537450996248673?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/7155537450996248673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=7155537450996248673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/7155537450996248673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/7155537450996248673'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2008/11/coldfusion-frameworks.html' title='ColdFusion Frameworks'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-8313959337375096700</id><published>2008-11-17T15:36:00.004+01:00</published><updated>2008-11-17T16:05:43.506+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unit testing'/><category scheme='http://www.blogger.com/atom/ns#' term='CFUnit'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Unit testing in ColdFusion</title><content type='html'>Why would CF community differentiate from any other community? That's why "all" Unit testing platforms are derivatives of xUnit project. My choice is CFUnit, because CFCUnit looks abandoned (not sure is it really), it has Eclipse plugin and it's better documented. But, after all, both environments do the job well.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Download CFUnit from &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=145385"&gt;Sourceforge&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;Unpack zip file content ("net" dir) into web server root (ie Apache doc root or IIS webroot). &lt;/li&gt;&lt;li&gt;Test it on &lt;a href="http://localhost/net/sourceforge/cfunit/CFUnitExample/mytest.cfml"&gt;http://localhost/net/sourceforge/cfunit/CFUnitExample/mytest.cfml&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Eclipse Plugin comes prepacked with the latest &lt;a href="http://www.cfeclipse.org/"&gt;CFEclipse&lt;/a&gt; distribution.&lt;/li&gt;&lt;/ul&gt;So much about installation. Nnow, when you have everything you need, you just need to know what to do with it. Well, go and read &lt;a href="http://cfunit.sourceforge.net/help-primer.php"&gt;CFUnit primer&lt;/a&gt;. It's the fastest way to learn how to use CFUnit.&lt;br /&gt;&lt;br /&gt;More to read:&lt;a href="http://www.fusionauthority.com/techniques/4560-test-driven-development-with-coldfusion-part-i.htm"&gt;&lt;br /&gt;Test Driven Development with ColdFusion&lt;/a&gt; (part I-III)&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-8313959337375096700?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/8313959337375096700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=8313959337375096700' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/8313959337375096700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/8313959337375096700'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2008/11/unit-testing-in-coldfusion.html' title='Unit testing in ColdFusion'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-3075046469851461256</id><published>2008-11-17T12:08:00.004+01:00</published><updated>2008-11-17T15:35:47.665+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>CFC variables.instance</title><content type='html'>When I saw for the first time, in cfc code, variables.instance = StructNew(), I asked myself  "What, what, what?" :) Well, purpose of "subinstancing" of &lt;span style="font-style: italic;"&gt;variables&lt;/span&gt; structure, is nothing more but teh &lt;span style="font-style: italic;"&gt;convenience&lt;/span&gt;:&lt;br /&gt;1. It's organized better. All variables of same kind can be grouped in that manner.&lt;br /&gt;2. Easier for &lt;span style="font-style: italic;"&gt;cfdump&lt;/span&gt;-ing. Do &lt;cfdump var="#variables.instance#"&gt;   and you'll see what I'm talking about.&lt;br /&gt;3. And it is more obvious what you do: &lt;span style="font-style: italic;"&gt;variables.instance.myVar="A"&lt;/span&gt; means "I am adding (assigning &lt;span style="font-style: italic;"&gt;value to) myVar&lt;/span&gt; into &lt;span style="font-style: italic;"&gt;instance&lt;/span&gt; of &lt;span style="font-style: italic;"&gt;variables&lt;/span&gt; structure"&lt;br /&gt;&lt;br /&gt;Not necessity but can be handy&lt;br /&gt;&lt;/cfdump&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-3075046469851461256?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/3075046469851461256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=3075046469851461256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/3075046469851461256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/3075046469851461256'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2008/11/cfc-variablesinstance.html' title='CFC variables.instance'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-8829550961634931577</id><published>2008-11-13T10:04:00.004+01:00</published><updated>2008-11-13T11:34:25.001+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software development'/><title type='text'>Developer Guidelines</title><content type='html'>I found this in "Developer Guidelines" on &lt;a href="http://www.r-project.org/"&gt;R-Project&lt;/a&gt; developer page. This is something I was always followed during my work but never had it written and digested. So, thank you r-project people for this :) Here it goes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;DO fix simple bugs&lt;/li&gt;&lt;li&gt;DO NOT fix bugs that require extensive modification&lt;/li&gt;&lt;li&gt;DO NOT fix exotic bugs that haven't bugged anyone&lt;/li&gt;&lt;li&gt;DO make small enhancements if they are badly needed&lt;/li&gt;&lt;li&gt;DO NOT let one user decide what is badly needed&lt;/li&gt;&lt;li&gt;DO fix configuration for broken platforms&lt;/li&gt;&lt;li&gt;DO NOT break functioning platforms in the process&lt;/li&gt;&lt;li&gt;DO NOT fix things that are not broken&lt;/li&gt;&lt;li&gt;DO NOT restructure code&lt;/li&gt;&lt;li&gt;DO NOT add experimental code&lt;/li&gt;&lt;li&gt;DO NOT modify the API (unless absolutely sure it is buggy)&lt;/li&gt;&lt;li&gt;DO NOT change defaults without a *very* good reason&lt;/li&gt;&lt;li&gt;DO clarify documentation&lt;/li&gt;&lt;li&gt;ONLY add or modify examples if needed for clarification&lt;/li&gt;&lt;li&gt;DO NOT reword messages&lt;/li&gt;&lt;li&gt;DO NOT modify regression tests (except if they were buggy)&lt;/li&gt;&lt;li&gt;DO NOT add code that cannot become reasonably complete by the next release.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;Obviously none of the above rules are carved in stone, and all are subject to interpretation in actual cases&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-8829550961634931577?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/8829550961634931577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=8829550961634931577' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/8829550961634931577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/8829550961634931577'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2008/11/developer-guidlines.html' title='Developer Guidelines'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-4121427857199736180</id><published>2008-11-12T14:20:00.006+01:00</published><updated>2008-11-17T12:08:09.408+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse and SVN Client</title><content type='html'>I choose Subclipse as my favorite SVN Client plugin for Eclipse. Why? Because most people use it. To install it go &lt;a href="http://subclipse.tigris.org/install.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To start working open Eclipse, go to Window -&gt; Show View -&gt; Other, open up the SVN Folder and pick the SVN Repository, click on the "Add SVN Respository" button and enter the address of  your SVN server (svn:// or svn+ssh:// or http:// ot https://). That's it.&lt;br /&gt;&lt;br /&gt;Few basic commands (abstract from SVN online book):&lt;br /&gt;The typical work cycle looks like this:&lt;br /&gt;&lt;br /&gt;1. Update your working copy.&lt;br /&gt;• svn update&lt;br /&gt;&lt;br /&gt;2. Make changes.&lt;br /&gt;• svn add&lt;br /&gt;• svn delete&lt;br /&gt;• svn copy&lt;br /&gt;• svn move&lt;br /&gt;&lt;br /&gt;3. Examine your changes.&lt;br /&gt;• svn status&lt;br /&gt;• svn diff&lt;br /&gt;&lt;br /&gt;4. Possibly undo some changes.&lt;br /&gt;• svn revert&lt;br /&gt;&lt;br /&gt;5. Resolve conflicts (merge others' changes).&lt;br /&gt;• svn update&lt;br /&gt;• svn resolve&lt;br /&gt;&lt;br /&gt;6. Commit your changes.&lt;br /&gt;• svn commit&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-4121427857199736180?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/4121427857199736180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=4121427857199736180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/4121427857199736180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/4121427857199736180'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2008/11/eclipse-and-svn-client.html' title='Eclipse and SVN Client'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-1873558809124189202</id><published>2008-11-12T13:44:00.006+01:00</published><updated>2008-11-13T10:08:54.799+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><title type='text'>Setting up SVN Server</title><content type='html'>&lt;span&gt;OK, Let's be honest. &lt;/span&gt;&lt;span&gt;Who doesn't like to do a job in a  minute and pretend to be uber smart? Software that would allow you that, in case of SVN installation, is &lt;/span&gt;&lt;a href="http://svn1clicksetup.tigris.org/"&gt;&lt;span&gt;svn1clicksetup&lt;/span&gt;&lt;/a&gt;&lt;span&gt;. Without further hesitation I will tell you to go there, download it and do your "next-next-finish" work.&lt;br /&gt;&lt;br /&gt;But, if you really,really, really feel that you need to put some effort (aka extra work), you may &lt;/span&gt;go to read Chapter 6. Server Configuration of SVN book online.&lt;br /&gt;This chapter will help you to decide which server configuration to choose and how to set it up.&lt;br /&gt;&lt;a href="http://svnbook.red-bean.com/nightly/en/svn.serverconfig.choosing.html"&gt;Read It!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ofc, I've chosen easiest option - vanilla &lt;span style="font-style: italic;"&gt;svnserve&lt;/span&gt; installation. Why? Well I am not an administrator, I am not willing to become one and there is always large possibility that company you are working for already have SVN server configured or rented.&lt;br /&gt;&lt;br /&gt;Btw, "&lt;a href="http://svnbook.red-bean.com/"&gt;Version Control with Subversion&lt;/a&gt;" is very good literature to read and place where you can look for answers on this subject.&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-1873558809124189202?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/1873558809124189202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=1873558809124189202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/1873558809124189202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/1873558809124189202'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2008/11/setting-up-subversion-for-eclipse.html' title='Setting up SVN Server'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-1212825084777094172</id><published>2008-11-12T13:17:00.005+01:00</published><updated>2008-11-13T10:09:09.221+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse error: Error retrieving feature.xml</title><content type='html'>&lt;span style="font-size:85%;"&gt;Using Software Updates and then Find and install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Delete the site.xml file in your Eclipse directory.&lt;br /&gt;2. Run Help-&gt;Software Updates-&gt;Find and install, the error will not appear.&lt;br /&gt;If the plugin has the official site, from where you can install it in Eclipse using Help-&gt;Software Updates-&gt;Find and install, I suggest that you &lt;span style="font-style: italic;"&gt;should not&lt;/span&gt; download it yourself and unzip it into your Eclipse directory.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.easywms.com/easywms/?q=en/node/97"&gt;source&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-1212825084777094172?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/1212825084777094172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=1212825084777094172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/1212825084777094172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/1212825084777094172'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2008/11/error-retrieving-feature.html' title='Eclipse error: Error retrieving feature.xml'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-5347037495477923588</id><published>2008-11-12T10:43:00.007+01:00</published><updated>2008-11-18T10:10:11.708+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Preparing Eclipse 3.x for ColdFusion Development</title><content type='html'>&lt;a style="font-weight: bold;" href="http://www.cfeclipse.org/"&gt;CFEclipse&lt;/a&gt;&lt;span style="font-weight: bold;"&gt; - An Eclipse plugin for ColdFusion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The best plugin I found, for Eclipse IDE. Simply it gears Eclipse with all-you-need for CF development: color-coding, content outline,  code &amp;amp; bracket highlighting, code folding, tag code completion,  snippets, etc... &lt;a href="http://www.cfeclipse.org/features.cfm"&gt;full feature list&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Uber fast install:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1. Select the "Help-&gt;Software Updates-&gt;Find and install" menu option&lt;br /&gt;2. On the screen that is displayed, select 'Search for new features to install' and click the 'Next' button&lt;br /&gt;3. Now click the 'New Remote Site' button&lt;br /&gt;4. Enter a name for the update site, for example "CFEclipse". In the URL box, enter "http://www.cfeclipse.org/update" and click the OK button&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Note: This is the moment when you are going to install CFUnit too.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ColdFusion 8 Debugging&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Well, not much to say but to advise you to sit and read this ADC step-by-step tutorial.&lt;br /&gt;&lt;a href="http://www.adobe.com/devnet/coldfusion/articles/debugger.html"&gt;Read it!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-5347037495477923588?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/5347037495477923588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=5347037495477923588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/5347037495477923588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/5347037495477923588'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2008/11/preparing-eclipse-3x-for-coldfusion.html' title='Preparing Eclipse 3.x for ColdFusion Development'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-5343978055275604966</id><published>2008-11-12T10:17:00.004+01:00</published><updated>2008-11-13T10:10:03.045+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Developing ColdFusion Extensions in Java</title><content type='html'>To make this short and effective:&lt;br /&gt;&lt;br /&gt;1. You cannot reload CFX developed in Java without server restart. Empirically proven and confirmed by other CF developers (as some ppl claim, even by Adobe tech support)&lt;br /&gt;ref: &lt;a href="http://dreamweaverforum.info/advanced-techniques/78901-how-reload-java-cfx-without-restarting-coldfusion.html"&gt;http://dreamweaverforum.info/advanced-techniques/78901-how-reload-java-cfx-without-restarting-coldfusion.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Article to read to get into this subject fast and "good enough"&lt;br /&gt;&lt;a href="http://www.intermedia.net/support/coldfusion/cf5docs/Developing_ColdFusion_Applications/CFXTags4.html"&gt;http://www.intermedia.net/support/coldfusion/cf5docs/Developing_ColdFusion_Applications/CFXTags4.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. Example&lt;br /&gt;&lt;blockquote&gt;import com.allaire.cfx.*;&lt;br /&gt;&lt;br /&gt;public class test implements CustomTag {&lt;br /&gt;&lt;br /&gt;public void processRequest(Request request, Response response) throws Exception {&lt;br /&gt;// TODO Auto-generated method stub&lt;br /&gt;String strName = request.getAttribute( "NAME" );&lt;br /&gt;   response.write( "Cao, " + strName );&lt;br /&gt;&lt;br /&gt;   Query qr = request.getQuery();&lt;br /&gt;&lt;br /&gt;   if ( qr == null )&lt;br /&gt;   {&lt;br /&gt;      throw new Exception(&lt;br /&gt;      "Missing QUERY parameter. " +&lt;br /&gt;      "You must pass a QUERY parameter in "+&lt;br /&gt;      "order for this tag to work correctly." ) ;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   int i=1,j=1;&lt;br /&gt;   while(i&lt;=qr.getRowCount()){       j=1;       response.write(" ");       while(j&lt;=qr.getColumns().length){        response.write(qr.getData(i, j)+" | ");        j++;       }            i++;      }            } }  &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Voila! Now you know everything :)))&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-5343978055275604966?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/5343978055275604966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=5343978055275604966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/5343978055275604966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/5343978055275604966'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2008/11/developing-coldfusion-extensions-in.html' title='Developing ColdFusion Extensions in Java'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-3277821477545130228</id><published>2007-02-15T13:59:00.000+01:00</published><updated>2007-02-28T14:29:11.010+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MS SQL'/><title type='text'>SQL Server Deadlock - NOLOCK and ROWLOCK hints</title><content type='html'>Deadlock is something that will become most certainly, subject of your worries sooner or later during the lifetime of your application (or better to say database). Since MS SQL Server requires locks for SELECT, even those people who are not trying to modify database are involved in locking system. UPDATE and DELETE, obviously, requires locks. Even if you refer directly to primary key, page locks are most likely to happen in case of massive (batch) requests of same operation, because most of data will be in the same page.&lt;br /&gt;Well, solution may be found in 2 little cute hints: WITH NOLOCK (for selects) and WITH ROWLOCK (for updates and deletes). With those hints you will "ask" sql server no to make any locks during selects and to lock only single row you wish to update. In short, that's it. Be careful when you are using these hints especially if your application is sensitive on data accuracy.&lt;br /&gt;&lt;br /&gt;For further reading:&lt;br /&gt;&lt;a href="http://www.sql-server-performance.com/lock_contention_tamed_article.asp"&gt;SQL Server Lock Contention Tamed: The Joys Of NOLOCK and ROWLOCK&lt;/a&gt;&lt;br /&gt;Michael Balloni&lt;br /&gt;sql-server-perfomrance.com&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.neudesic.com/blogs/phil_scott/archive/2005/12/05/11.aspx"&gt;Do you feal dirty?&lt;/a&gt;&lt;br /&gt;Phil Scott's blog&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-3277821477545130228?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/3277821477545130228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=3277821477545130228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/3277821477545130228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/3277821477545130228'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2007/02/sql-server-deadlock-nolock-and-rowlock.html' title='SQL Server Deadlock - NOLOCK and ROWLOCK hints'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-3079817652009377094</id><published>2007-02-08T15:10:00.000+01:00</published><updated>2007-02-15T14:07:52.216+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><category scheme='http://www.blogger.com/atom/ns#' term='pipes'/><category scheme='http://www.blogger.com/atom/ns#' term='Yahoo'/><title type='text'>Yahoo! Pipes has arrived</title><content type='html'>Yahoo says:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Pipes is an interactive feed aggregator and manipulator. Using Pipes, you can create feeds that are more powerful, useful and relevant.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Actually Y! Pipes is tool which gives you ability to create your own web space using variety of different online (web) services, and, at the same time, you don't need to have any programming knowledge or skills, only by using its development interface.&lt;br /&gt;You "just" need to have an idea, to know who you should ask for information and to assemble it into your own unique product.&lt;br /&gt;Like a shoe making process: You don't need to be a lace manufacturer nor having a sewing machine, you "just" need to have an idea how the shoe have to look like and have a pencil to sketch it.&lt;br /&gt;Idea is you, public web services are materials (leather, rubber, etc) and Y! Pipes will be your glue (sewing machine) which will assemble all that.&lt;br /&gt;&lt;br /&gt;Read more:&lt;br /&gt;&lt;br /&gt;Yahoo! pipes&lt;br /&gt;&lt;a href="http://pipes.yahoo.com/"&gt;http://pipes.yahoo.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yahoo! Launches Pipes (TechCrunch - Nik Cubrilovic)&lt;br /&gt;&lt;a href="http://www.techcrunch.com/2007/02/07/yahoo-launches-pipes/"&gt;http://www.techcrunch.com/2007/02/07/yahoo-launches-pipes/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yahoo! Pipes: The Modules For Building Pipes (O'Reilly Radar)&lt;br /&gt;&lt;a href="http://radar.oreilly.com/archives/2007/02/yahoo_pipes_the.html"&gt;http://radar.oreilly.com/archives/2007/02/yahoo_pipes_the.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yahoo Pipes (Anil Dash)&lt;br /&gt;&lt;a href="http://www.dashes.com/anil/2007/02/08/yahoo_pipes"&gt;http://www.dashes.com/anil/2007/02/08/yahoo_pipes&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-3079817652009377094?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/3079817652009377094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=3079817652009377094' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/3079817652009377094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/3079817652009377094'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2007/02/yahoo-pipes-has-arrived.html' title='Yahoo! Pipes has arrived'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-353724279335143282</id><published>2007-01-26T12:31:00.001+01:00</published><updated>2007-01-26T13:22:10.097+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NET 1.1'/><category scheme='http://www.blogger.com/atom/ns#' term='Crystal Reports'/><title type='text'>Crystal Reports and Visual Studio .NET Application Deployment</title><content type='html'>If you are having a trouble to deploy your application which uses Crystal Reports then you need too know, that only way to do it successfuly is to make installer and deploy CR merge modules. This is not intuitive task at all, but when you aware of this procedure once, you will not have much trouble to repeat it in the future.&lt;br /&gt;So, don&amp;#39;t try to do it w/o installer (by copying dlls) &amp;#39;cause it&amp;#39;s not doable.&lt;br /&gt;&lt;br /&gt;Tip:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;In case of VS 2003 Crystal Reports 9 (bundled Version):&lt;br&gt;&lt;br /&gt;License key should be entered in "Crystal_regwiz2003.msm" (aka "Seagate Registration Wizard" module)&lt;br /&gt;&lt;br /&gt;Also add:&lt;br /&gt;- VC_User_CRT71_RTL_X86.msm&lt;br /&gt;- VC_User_STL71_RTL_X86.msm&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Detailed instruction how to do this, you can find here:&lt;br /&gt;&lt;a href="http://support.businessobjects.com/communityCS/TechnicalPapers/crnet_deployment.pdf.asp"&gt;http://support.businessobjects.com/communityCS/TechnicalPapers/crnet_deployment.pdf.asp&lt;/a&gt;&amp;nbsp;(PDF)&lt;br /&gt;&lt;br /&gt;Also, if you need to update merge modules:&lt;br /&gt;&lt;a href="http://support.businessobjects.com/downloads/merge_modules.asp"&gt; http://support.businessobjects.com/downloads/merge_modules.asp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-353724279335143282?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/353724279335143282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=353724279335143282' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/353724279335143282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/353724279335143282'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2007/01/crystal-reports-and-visual-studio-net.html' title='Crystal Reports and Visual Studio .NET Application Deployment'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-3072974963515482496</id><published>2007-01-19T16:09:00.001+01:00</published><updated>2007-01-19T16:16:22.489+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>INSERT and UPDATE of large set of data in MySQL 4.x</title><content type='html'>When you are working in MySQL (4.x and lower) you are doomed to work w/o stored procedures, triggers, UDFs on which you used to work with, on all major database systems. So, in scenario when you need to update table with large number of cells, and each cell is represented as single row in table, you will face yourself with problems:&lt;br /&gt;&lt;br /&gt;1. Avoid of inserting duplicated data&lt;br /&gt;a) Insertion of new data (let’s say, added by entering data in cell)&lt;br /&gt;b) Updating of existing data in table (changing the present value in cell)&lt;br /&gt;&lt;br /&gt;2. Executing one query per cell will potentially cause bandwidth bottlenecks (large number queries sent from your client to database) and low performance of your application&lt;br /&gt;&lt;br /&gt;Enough talking about troubles when we have solution:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;CREATE TABLE ` MyTable ` (&lt;br /&gt;`ID` int(10) unsigned NOT NULL auto_increment,&lt;br /&gt;`a` int(10) unsigned,&lt;br /&gt;`b` int(10) unsigned,&lt;br /&gt;`c` int(10) unsigned&lt;br /&gt;PRIMARY KEY (`ID`),&lt;br /&gt;UNIQUE KEY `IU_ABC` (`a`,`b`,’c’)&lt;br /&gt;)&lt;br /&gt;ENGINE=InnoDB DEFAULT CHARSET=utf8;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;INSERT INTO MyTable (a,b,c)&lt;br /&gt;VALUES (1,2,3),(4,5,6)&lt;br /&gt;ON DUPLICATE KEY UPDATE&lt;br /&gt;a=VALUES(a),b=VALUES(b),c=VALUES(c); &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;There are 2 crucial things to point to:&lt;br /&gt;&lt;br /&gt;1. UNIQUE KEY in talbe creation script + ON DUPLICATE KEY UPDATE in INSERT statement&lt;br /&gt;2. And VALUES (…),(…)&lt;br /&gt;&lt;br /&gt;Let’s explain:&lt;br /&gt;&lt;br /&gt;1. ON DUPLICATE KEY UPDATE works as it says: Do update if unique key (UI_ABC in our example) constraint is violated&lt;br /&gt;&lt;br /&gt;2. VALUE (…),(…) is same as “select 1,2,3 union all select 4,5,6” or, better to say, “set of data” you want to insert/update&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That’s it. Whatever programming language you use, you will be able to accomplish this by building query using string concatenation.&lt;br /&gt;&lt;br /&gt;Good luck.&lt;br /&gt;&lt;br /&gt;Reference:&lt;br /&gt;&lt;a href="http://dev.mysql.com/doc/refman/4.1/en/insert-on-duplicate.html"&gt;http://dev.mysql.com/doc/refman/4.1/en/insert-on-duplicate.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Interesting to read:&lt;br /&gt;&lt;a href="http://www.xaprb.com/blog/2006/02/21/flexible-insert-and-update-in-mysql/"&gt;http://www.xaprb.com/blog/2006/02/21/flexible-insert-and-update-in-mysql/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-3072974963515482496?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/3072974963515482496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=3072974963515482496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/3072974963515482496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/3072974963515482496'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2007/01/insertand-update-of-large-set-of-data.html' title='INSERT and UPDATE of large set of data in MySQL 4.x'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-279382820410907331</id><published>2007-01-18T12:14:00.001+01:00</published><updated>2009-10-29T21:52:22.602+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Can ColdFusion "continue"?</title><content type='html'>Believe it or not, ColdFusion does not support “continue” (nor tag: “cfcontinue”).&lt;br /&gt;&lt;br /&gt;This script demonstrates one of possible ways how you can simulate “continue” behavior:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;cfloop from="1" to="10" index="i"&amp;gt;&lt;br /&gt;&amp;lt;cftry&amp;gt;&lt;br /&gt; &amp;lt;cfif&amp;gt;&lt;br /&gt;  &amp;lt;cfthrow type="continue"&amp;gt;&lt;br /&gt; &amp;lt;cfelse&amp;gt;&lt;br /&gt;  #i#&lt;br /&gt; &amp;lt;/cfif&amp;gt;&lt;br /&gt; &amp;lt;cfcatch type="continue"&amp;gt;&lt;br /&gt;  &amp;lt;!--- ignore ---&amp;gt;&lt;br /&gt; &amp;lt;/cfcatch&amp;gt;&lt;br /&gt;&amp;lt;/cftry&amp;gt;&lt;br /&gt;&amp;lt;/cfloop&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Reference:&lt;br /&gt;&lt;a href="http://weblogs.macromedia.com/cantrell/archives/2003/08/living_without.cfm"&gt;http://weblogs.macromedia.com/cantrell/archives/2003/08/living_without.cfm&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Update:&lt;/div&gt;&lt;div&gt;Since 5th October 2009, day when CF9 has been released, developer can, finally, &lt;a href="http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-750c.html"&gt;cfcontinue &lt;/a&gt;;) Hooray. Ah, yes, "lupus in fabula", Adobe introduce &lt;a href="http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-74dd.html"&gt;cffinally &lt;/a&gt;as well.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-279382820410907331?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/279382820410907331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=279382820410907331' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/279382820410907331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/279382820410907331'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2007/01/can-coldfusion-continue.html' title='Can ColdFusion &quot;continue&quot;?'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-6493497223697702821</id><published>2007-01-15T16:18:00.000+01:00</published><updated>2007-01-15T16:54:54.080+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NET 1.1'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows.Forms'/><title type='text'>Use enumartor as data source (combobox)</title><content type='html'>[C#]&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;enum WorkDays{&lt;br /&gt;    Monday=1,&lt;br /&gt;    Tuesday=2,&lt;br /&gt;    Wednesday=3,&lt;br /&gt;    Thursday=4,&lt;br /&gt;    Friday=5&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;System.Windows.Forms.ComboBox comboBox1;&lt;br /&gt;&lt;br /&gt;//init combobox object&lt;br /&gt;comboBox1 = new System.Windows.Forms.ComboBox();&lt;br /&gt;&lt;br /&gt;//assign data source&lt;br /&gt;comboBox1.DataSource = Enum.GetValues(typeof(WorkDays));&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;In the SelectedValueChanged event for the ComboBox.&lt;br /&gt;[C#]&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;private void ComboBox1ValueChanged(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;    System.Windows.Forms.ComboBox cmb = (System.Windows.Forms.ComboBox)sender;&lt;br /&gt;    WorkDays SelectedWDayEnum = (WorkDays)cmb.SelectedValue;&lt;br /&gt;    string SelectedWDayText = SelectedWDayEnum.ToString();&lt;br /&gt;    int SelectedWDayValue = (Int32)SelectedWDayText;&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Source extended:&lt;br /&gt;&lt;a href="http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c88c.aspx#q1124q"&gt;http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c88c.aspx#q1124q&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-6493497223697702821?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/6493497223697702821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=6493497223697702821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/6493497223697702821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/6493497223697702821'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2007/01/use-enumartor-as-data-source-combobox.html' title='Use enumartor as data source (combobox)'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-5188449666749922344</id><published>2007-01-15T15:27:00.001+01:00</published><updated>2007-01-15T15:30:48.367+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Tomcat'/><title type='text'>Tomcat 5.x - MySQL Bug: "Cannot get a connection, pool exhausted"</title><content type='html'>&lt;p&gt;A web application has to explicetely close ResultSet's, Statement's, and Connection's. Failure of a web application to close these resources can result in them never being available again for reuse, a db connection pool "leak". This can eventually result in your web application db connections failing if there are no more available connections.&lt;/p&gt;&lt;p&gt;There is a solution to this problem. The Jakarta-Commons DBCP can be configured to track and recover these abandoned dB connections. Not only can it recover them, but also generate a stack trace for the code which opened these resources and never closed them.&lt;/p&gt;&lt;p&gt;To configure a DBCP DataSource so that abandoned dB connections are removed and recycled add the following attribute to the &lt;code&gt;Resource&lt;/code&gt; configuration for your DBCP DataSource: &lt;/p&gt;&lt;div align="left"&gt;&lt;pre&gt;removeAbandoned="true"&lt;/pre&gt;&lt;/div&gt;When available db connections run low DBCP will recover and recyle any abandoned dB connections it finds. The default is &lt;code&gt;false&lt;/code&gt;. &lt;p&gt;Use the &lt;code&gt;removeAbandonedTimeout&lt;/code&gt; attribute to set the number of seconds a dB connection has been idle before it is considered abandoned. &lt;/p&gt;&lt;div align="left"&gt;&lt;pre&gt;removeAbandonedTimeout="60&lt;/pre&gt;&lt;/div&gt;The default timeout for removing abandoned connections is 300 seconds. &lt;p&gt;The &lt;code&gt;logAbandoned&lt;/code&gt; attribute can be set to &lt;code&gt;true&lt;/code&gt; if you want DBCP to log a stack trace of the code which abandoned the dB connection resources. &lt;/p&gt;&lt;pre&gt;logAbandoned="true"&lt;/pre&gt;The default is &lt;code&gt;false&lt;/code&gt;. &lt;br clear="all"&gt;&lt;br /&gt;Abstract taken from&lt;br /&gt;&lt;a href="http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto"&gt;http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Additional information:&lt;br /&gt;&lt;a href="http://dev.mysql.com/doc/refman/4.1/en/connector-j-usagenotes-j2ee.html#connector-j-usagenotes-tomcat"&gt;http://dev.mysql.com/doc/refman/4.1/en/connector-j-usagenotes-j2ee.html#connector-j-usagenotes-tomcat&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-5188449666749922344?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/5188449666749922344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=5188449666749922344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/5188449666749922344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/5188449666749922344'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2007/01/tomcat-5x-mysql-bug-cannot-get.html' title='Tomcat 5.x - MySQL Bug: &quot;Cannot get a connection, pool exhausted&quot;'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1552601533162079024.post-666555515260657808</id><published>2007-01-15T14:51:00.000+01:00</published><updated>2007-01-15T15:00:52.280+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>The First "Computer Bug"</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_6n1q6ZtFO-A/RauJDHE-ssI/AAAAAAAAAAY/oVDU01x-7Lg/s1600-h/FirstComputerBug.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5020256896167097026" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_6n1q6ZtFO-A/RauJDHE-ssI/AAAAAAAAAAY/oVDU01x-7Lg/s200/FirstComputerBug.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Moth found trapped between points at Relay # 70, Panel F, of the Mark II Aiken Relay Calculator while it was being tested at Harvard University, 9 September 1945. The operators affixed the moth to the computer log, with the entry: "First actual case of bug being found". They put out the word that they had "debugged" the machine, thus introducing the term "debugging a computer program".&lt;br /&gt;In 1988, the log, with the moth still taped by the entry, was in the Naval Surface Warfare Center Computer Museum at Dahlgren, Virginia.&lt;br /&gt;&lt;br /&gt;It has now become a popular tradition that it was the legendary American Naval officer and mathematician Grace Murray Hopper who found the offending insect, but it's also said that she wasn't there when it happened. (Grace was a pioneer in data processing and is credited with developing the first compiler, which is a program that translates a high-level human-readable language into the machine language understood by the computer. In 1983, Grace became the first woman to achieve the rank of rear admiral in the United States Navy.)&lt;br /&gt;&lt;br /&gt;It is also widely believed that this incident was the origin of the term "bug" itself, but this is also not the case. If you read the wording of the report carefully, you can see that the writer is really saying: "Hey, we actually found a bug that was a real bug!" In fact the word "bug" was already being used in Thomas Edison's time to imply a glitch, error, or defect in a mechanical system or an industrial process. Furthermore, "bug" was used as far back as Shakespearean times meaning a frightful object (derived from a Welsh mythological monster called the "Bugbear"). (See also The "worst" computer bug.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Abstracts taken from:&lt;br /&gt;&lt;a href="http://www.history.navy.mil/photos/pers-us/uspers-h/g-hoppr.htm"&gt;http://www.history.navy.mil/photos/pers-us/uspers-h/g-hoppr.htm&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.maxmon.com/1945ad.htm"&gt;http://www.maxmon.com/1945ad.htm&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;IT Reminder Forever!
http://itreminder.blogger.com&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1552601533162079024-666555515260657808?l=itreminder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://itreminder.blogspot.com/feeds/666555515260657808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1552601533162079024&amp;postID=666555515260657808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/666555515260657808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1552601533162079024/posts/default/666555515260657808'/><link rel='alternate' type='text/html' href='http://itreminder.blogspot.com/2007/01/first-computer-bug.html' title='The First &quot;Computer Bug&quot;'/><author><name>Marko</name><uri>http://www.blogger.com/profile/01568109694055010087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_6n1q6ZtFO-A/SyYcsoFrB4I/AAAAAAAABTY/_STUMQFVU6c/S220/8227_156672854283_645429283_2540214_5215113_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6n1q6ZtFO-A/RauJDHE-ssI/AAAAAAAAAAY/oVDU01x-7Lg/s72-c/FirstComputerBug.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
