Written on 14 October 2011, 03:56pm
Written on 13 October 2011, 03:58pm
In the latest months I’ve been doing some research in Flex, to have better understanding of the RIA, event-driven development. Well, there was also an interest in AMF, AIR, mobile applications, and so on. And because I needed an extra motivation for that, I planned to take the Adobe Flex certification exam. Adobe Developer Connection provided a quick overview of the exam, and the Adobe official exams page shows the Adobe® Flex 4 ACE Exam (9A0-129) available (along with the older, Flex 3 version).
However, when going to Pearson VUE website (the exam provider), I found that starting today (13 Oct 2011), the no longer support the Flex 4 exam, offering as alternative the Flex 4.5 certification exam (9A0-182):
Pearson VUE: Adobe:
Adobe does not mention anything about that, they don’t provide any study guidelines, nor specific details about the exam (sections, number of questions, time allowed, etc). This lack of communication between the two entities (let’s go with that) is quite strange in my opinion.
I contacted both Adobe and Pearson VUE – and I’ll update this post as soon as I will have more details.
Update 25 Oct 2011: Pearson VUE answered me suggesting to contact Adobe for more information.
Written on 10 October 2011, 04:59pm
What do you do when you discover that the production version of an application is not the same as the development version? (ignore the bigger problems of application development workflow)
You identify the files in question, yes. And what do you identity them when the application contains thousands of source files?
Of course, you make a script.
<cfsetting requesttimeout="300" showdebugoutput="no" /> <cfset initialDir = ExpandPath( '../' )> <!--- script is in a sub-folder of the app ---> <cfset total = 0> <!--- total changed files ---> <cfset subTotal = 0> <!--- actual changed files, see below ---> <cfset localRoot = "C:\your\local\app\root" /> <cfset remoteRoot = "/your/remote/root" /> <cfset tmpFile = "/this/is/just/a/temp/file" /> <cfset tick = GetTickCount()> <!--- get list of ALL local files, recursively ---> <cfdirectory action="list" directory="#initialDir#" name="localQuery" recurse="true"/> <!--- make the FTP connection ---> <cfftp connection = "ftpConnection" username = "*********" password = "*********" server = "********" port="****" action = "open" stopOnError = "Yes"> <cfif cfftp.succeeded EQ false> ERROR - FTP open connection failed! <cfabort> </cfif> <!--- call the recursive function for the first time ---> <cfset compareFiles(remoteRoot) /> <!--- close the FTP connection ---> <cfftp connection = "ftpConnection" action = "close" stopOnError = "Yes"> <cfif cfftp.succeeded EQ false> ERROR - FTP close connection failed!<cfabort> </cfif> <cfset tock = GetTickCount()> <cfset time = round((tock-tick)/1000)> <cfoutput><hr />#subTotal#/#total# files, #time# seconds</cfoutput>
This is the skeleton. The business logic happens in the function below: