Archive for May, 2012



Well i must say, so far i am impressed with ColdFusion 10. They have really done a large overhaul to its base along with many new features. One thing i am impressed with is that adobe has replaced the older antiquated JRun subsystem that CF use to run on with Tomcat. Tomcat is notably more enhanced then JRun when it comes to an application built on Java. The draw back is that the structure of the new CF is very different from the older versions, especially when it comes to multi instance applications.

Adobe has tried to keep things as similar as possible, but one thing i noticed is that when installing a multi instance server, you no longer have that option on the initial install. You will have the option to install CF 10 initially, then if your license supports multi instance, you will then have the option afterwards to install another instance. Now onto the part that i have been heavily interested in.

One thing that was an enormous draw back on earlier versions of CF was that when you installed multiple instances for separate applications, you had 1 JVM config file that was shared between all instances. Now what does this mean?. Well it means that any memory adjustments or class file inclusions you made, applied to all instances. So this was not truly segmented if they all shared 1 file. I always believed that multi instance applications should be completely autonomous, and nothing should affect the other instances. Else this really defeats the purpose of having separate instances. So on we go, in older versions it was not impossible to have separate JVM config files for each instance, it was just a pain in the rear to remove the service and re install it while assigning the service to a new JVM config. CF 10 has inherited this idea and has truly segmented instances from one another. It was very confusing to me because i was use to all instances sharing the same bin and lib folders in the root. Well in CF10 each instance is listed in the root folder of CF10 as it’s own folder and under that having it’s own JVM and file structure. This makes each instance totally autonomous. Awesome!.

Another advancement has been to their schedule task manager. Anyone who know me, knows this drove me nuts. Previously when tasks failed, you would never know unless you trapped for the failure in your task. And the logging for these tasks were vague at best. Well they have completely redone this aspect and given Schedule Task Manager a true face lift with some pretty cool features. So i encourage all you CF geeks out there, give the below link a look and leave your comments on what you think of the new and improved version of CF. Happy coding!!.

http://labs.adobe.com/wiki/index.php/ColdFusion_10#Documentation

 

Advertisements

Microsoft has released an advisory stating that an inside source has found vulnerabilities for 23 different areas within Microsoft applications.

I thought I would post this to give everyone a heads up out there, this appears to be a significant find. I give kudos to their staff for being diligent in trying to secure their application portfolios. This is not an easy thing to stay on top of and manage to enhance your portfolio in the process.. So finally this being a rare occurrence, but thank you Microsoft for getting this right.

Below is the link to the article in which you will find the story. Check it out!.

http://www.zdnet.com/blog/security/microsoft-patches-23-windows-flaws-warns-of-risk-of-code-execution-attacks/12001?tag=nl.e589


Because I am a linux guy I have grown to love the perl language. Now I know many of you despise the language, however it has proven to be worthy in my field many of times. Not only worthy to stand up to loads but also to be flexible in it’s implementation. Am I speaking a little Greek?, forgive me. I say this because Perl is notabely good at parsing data from files, but over the years many of modules and frameworks have made it worthy in the field of web development.

So why don’t we just use PHP, or some other language like ASP if we are doing web development?. Well I have just grown fond of  languages that can be compiled and run as a client application, but also work in web development, or even be a good scripting language for Network Admins. I know there are many other languages out there that supersede Perl, but I give it some credit for putting up a good fight. Anyways I have wondered off the path.

For all those who are new with Perl and/or Catalyst I thought I would give a little instructional on what the different action types there are for Catalyst subroutines. Catalyst is an MVC framework for Perl. The frameworks help to try and leverage some of the great things in web web development, as well as make development more structured and easier. Although I am not sure about the easier part only because I feel frameworks tend to convolute code a bit. Now for a language like Perl, I feel it helps brings things together and make it more Object Oriented.

In MVC your subroutines in your controllers have actions assigned to them. This tells the routine what to part of the path to start from. For example

If the URL was http://localhost/My/Controller/foo

    package MyApp::Controller::My::Controller;
    sub foo : Local() { }

Then Local tell the routine that “foo” is the name of the routine and everything after bar in the url is considered an argument. So if the URL was http://localhost/My/Controller/foo/bar, then “bar” would be an argument passed in. Now another less used action is Global.

    package MyApp::Controller::My::Controller;
    sub foo : Global() { }

For this example, if we use the same URL then “Global” tells the routine to start from the root. In this case the root would be http://localhost/. So if you used $c->request->arguments->[0] then 0 in the array would be “My” instead of “bar” like when we used Local.

All these actions are just a shortcut way of using the action “Path”.  Example would be,

    package MyApp::Controller::My::Controller;
    sub foo : Path { }
    is the same as and matches on http://localhost/My/Controller/foo
    package MyApp::Controller::My::Controller;
    sub foo : Global { }
    and the following example will match on http://localhost/foo/bar
    package MyApp::Controller::My::Controller;
    sub bar: Path('foo/bar') { }

This is something that I had to tear apart and figure out a little bit, so I thought I would share this tidbit. Obviously there is tons more about this to talk about, so feel free to ask questions and I will share.

%d bloggers like this: