ColdFusion Muse

A Whole Heaping Helping of Normal

Mark Kruger April 27, 2012 5:49 PM Coldfusion Optimization Comments (5)

When I'm called into a data center or large application to look at a ColdFusion performance problem I often find myself in a "war room" with highly skilled technicians and admins who may or may not know much about the JVM runtime. One of the things that require experience is knowing what normal memory patterns look like for a typical production heap. Windows admins will often go directly to the task manager or resource monitor to examine memory usage. If they are uninitiated the first thing they say is "Wow... Jrun is using a lot of memory." This often doesn't sit right to them, particularly if the site is idle. So this post is to help those windows folks (and Linux as well) to an understanding of what normal heap activity looks like.

Read More
  • Share:

DB Indexing Matters: Using the "Database Engine Tuning Advisor - MSSQL 2008

Mark Kruger April 26, 2012 4:58 PM MS SQL Server Comments (3)

Here's a Muse mantra you can hang your hat on (and your overalls and duck suite as well). Application performance starts at the database. Sure JVM tuning is important. So is networking, processor power, memory, file i/o and keeping cousin Eustace from pressing the red button on the front of the server. It's all important and it all has a place. But as someone who does an interminable amount of application tuning I can tell you that after setting an appropriate heap size 8 out of 10 performance issues are DB related. And 8 out of 10 DB performance problems are related to indexing. So the first thing a Muse troubleshooter does is check for appropriate indexing.

This is often a matter of pouring over the longest page requests or queries and making educated attempts at new indexes (or removing and changing old ones). But more often than not it's simply a matter of informing the client there is no indexing and some will need to be added. This begs the question, why don't developers think about indexing when they create table schemas? Surely they can't all have come from enormous shops with in-house DBA's (who are just as likely to forget indexing in my experience). In this post I'm going to share a helpful tip for those of you lucky enough to be using MS SQL Server. The specifics below are for MSSQL server 2005 or 2008, but there is a version of this tool in the MSSQL 2000 profiler as well.

Read More
  • Share:

You Might be a Muse All-Star

Mark Kruger April 20, 2012 4:52 PM Job Openings Comments (1)

About twice a week I have a developer send me an email chatting about their current job and wondering if they should send me a resume. The answer is always yes! Send me a resume! I mean... what could it hurt? Generally I will walk you through our CF Testing procedure and "pre-qualify" you to work on the CF Webtools (CFWT) team. Then if I have openings you might get an offer, but even if I do not have openings I can guarantee that sooner rather than later I will have openings. With 27 developers you can bet we will be looking for new CF Talent - and other talent as well. In fact, let's play "...you might be a Muse all-star".

  • If you think pouring through the latest CF 10 docs looking for "hidden gems" is the equivalent of a day at the Louvre... you might be a Muse all-star.
  • If you have turned down a night out so you could sit at home and migrate a fusebox app to FW/1... you might be a Muse all-star.
  • If you have traveled more than 50 miles to attend a meeting just because Ray Camden, Sam Farmer, Ben Forta, Ben Nadel or Sean Corefield was presenting ... you might be a Muse all-star (extra points if it was actually a webcast).
  • If you have made more than 2 useful comments on this blog... you might be a Muse all-star.
  • If you have a technical blog that I've ever linked to... you might be a Muse all-star.
  • If you have ever refactored an entire CFC service layer "just so you could see what it looked like in pure cfscript"... you might be a Muse all-star.
  • If you love frameworks but are not married to any one of them... you might be a Muse all-star.
  • If you like ribbing windows experts (or mac experts or Linux experts) but can still be friends with them... you might be a Muse all-star. (If not move back home you still need your mother)
  • If your skill set is eclectic enough to include high level skills in at least 3 IT areas including ColdFusion... you might be a Muse all-star.
  • If you think "exercising your right to vote" has something to do with the CF 10 bug list... you might be a Muse all-star.
  • If your mouth waters just a little when you hear about a programming problem that someone couldn't solve... you might be a Muse all-star.
  • If you like other developers, other people, communities both real and virtual and hob knobbing with folks who are experts at something other than IT... you might be a Muse all-star.
  • If you are ready for a change that includes well supported SDLC infrastructure, full time remote development (live where you want to), great flexibility, benefits, and a terrific community of developers... you might be a Muse all-star.

As of right now the Muse is looking for ColdFusion developers and IOS/Android developers. We are giving special consideration to any developer with a high level skill set in ColdFusion and either .NET or PHP (not dabblers - you have to be good at both). Our sales projections show us growing to add at least 4-6 developers by the end of this fiscal quarter. So if you are in the market to make a change, or if you are a contractor who loves working from home but is tired of having to gin up your own work, do please send me your resume. You can send it to jobs@cfwebtools.com or send it to mkruger - or tweet me at @cfwebtools and let me know you want to explore the possibilities.

  • Share:

Class Compiling Fun with ColdFusion

Mark Kruger April 6, 2012 10:55 AM ColdFusion Comments (2)

ColdFusion is Java - most people know this in the abstract sense. In sales meetings with the non-initiated I speak about ColdFusion as a layer of Java Services like mail, networking, jdbc, and compiling coupled with a language and syntax that offers faster development and better maintenance. I keep the conversation firmly rooted in Java because in reality this description is spot on. With the advent of ColdFusion 10 my case will be bolstered by TomCat as well - making it even easier to sell (and frankly it's not very hard if you know what you are doing).

Since it is Java you probably already know that ColdFusion takes your CFML code and compiles it down into Java Classes. In the days of CF 6 (back when I had more hair) you could use a command line to pre-compile CFML and even save off the .JAVA files. I'm not sure if you can still do that but it was a neat trick. Every time you run a cfm or cfc file ColdFusion checks (assuming trusted cache is off) to see if the file has changed and recompiles it if needed. You can see this happening with a little effort. The easiest way is to go to the /cfclasses folder for the instance you are using and delete all the class files that are there. Then run a CF page. You should see class files show up for every page and each function within the page.

Knowing (or not knowing) how things really work is very important to a high skill set developer. It amazes me to no end when developers profess they are "uninterested" in certain things regarding the technology they work with. I can't imagine Tony Stewart being uninterested in the bore size of his cylinders or the torque of 4rth gear or whatever. I'm sure Tiger Woods has more than a passing knowledge of how golf balls and clubs are made and customized. Indeed the more broad your knowledge and the more eclectic your skill set the more likely it is that you are an effective troubleshooter. The Muse (for example) has more than a little networking, hardware and server config experience. Often this is the difference between many hours of fruitless searching and a fast "Aha!" moment. With that in mind I'd like to share a little tidbit I picked up along the way (on StackOverflow from ColdFusion/Flex developer Sean Coyne of n42designs.com) having to do with compiling. It started with an error I have seen many times... "Routines cannot be declared more than once". I'm sharing this because I thought the work around was unique and I had not seen it before.

Read More
  • Share: