Contact Us Today!   |   + 1 (301) 424 3903



Tuning CF 8.0.1 64 bit

Recently we worked on an application for a large association in DC that generates about 60% of the association's revenue. The application had grown in features and users over several years and the code was in need of tuning, with slow performance and frequent server crashes. It was running on CF 7 on Linux.

Improvements

We recently helped setup the development server with a 64-bit operating system, and the 64-bit version of ColdFusion 8.0.1. Additionally, we also did performance and memory tuning.

CF8 itself has been shown to have better object creation performance as well as general speed improvements across the board (see Adobe’s performance brief www.adobe.com/products/coldfusion/pdfs/cf8_performancebrief.pdf). We tuned JVM configuration parameters (memory and garbage collection), recommended and helped setup the updated Java runtime 1.6 updater 12, which fixes a major performance bug and allowed us to take full advantage of CF 8’s and Java 1.6’s performance and memory improvements. We even discovered CPU and memory issues that were fixed by applying a cumulative hotfix for ColdFusion.

The result of all this is much more manageable CPU and memory usage, as well as better initialization and search performance. Furthermore, many cases of CFC methods that were missing var scoping on local variables were fixed; this affecting stability and performance.

Maintainability

Here we added Application-level service objects to Coldspring, to make the code more maintainable. We also had Coldspring create more of the sub-objects, to make the object hierarchy more visible.

Generally, where these service objects called global objects directly (configuration or other service objects), changed to pass those in via the Coldspring configuration. Many places were able to reduce to passing in specific configuration properties (like a DSN), rather than passing in the whole object. This goes a long way towards reducing interdependency, which makes them better able to test.

We removed some reserved words in method names, so we could use automatic CFC documentation tools. We also had consistent use of init() methods; adding to objects that didn’t have them, and then using consistently when creating. This better enables use of Coldspring, and makes usage overall more readable.

We then made a switch to Fusebox 5.5, which allowed us to move customized code out of the core files, and into the index.cfm, which calls it; this included application-specific parameters retrieved from configuration or CGI variables. This will make it much simpler to swap out the framework for later versions.

Scalability

Finally, we developed and ran a profiling tool, which temporarily modified all of the components to save logging information on when objects are created and methods are called. We ran on some sample searches, logged the number of times objects are created and methods are called. We were then able to reduce use of some classes used in application.

There was one class that was created 160 times for each search result page that we were able to convert to a structure generated by a service object; this service object only needs to be created once per session, saving a whole lot of object creation.

TGIT 80/20 Principle Talk

I recently spoke on the 80/20 principle at the spiritual business group TGIT - Thank God It's Thursday http://www.ambica.net/thank_god_its_thursday.html

TGIT is part Book Reading Club, part Support Group and part Mastermind Group that puts us - the participants - in touch with our Deepest Essence through sharing, reflecting on, and applying wisdom from some of the most ancient as well as today's progressive inspirational literature.

The 80/20 Principle says that there is an inbuilt imbalance between inputs and outputs, causes and consequences, and effort and results. Furthermore, a minority of causes, inputs or effort usually lead to a majority of the result, outputs, or rewards. A few things are important; most are not. Most systems have an non-linear imbalance in them where a minority of inputs create a majority of the results. This is caused by the butterfly effect - small fluctuations in seemingly minor events having a big result, similar to chaos theory. Feedback loops keep a system moving in one direction until hitting a tipping point, at which point small efforts make a big difference.

A typical example is the 80/20 relationship where 80% of results come from 20% of effort. The 80/20 numbers here are only a metaphor. The real relationship may be more or less unbalanced than 80/20. The fact that 80 and 20 add up to 100 is a coincidence. The point is that a small amount of input creates a majority of the results. It could be that 5% of your effort creates 70% of the output, or maybe it creates 90%. It is rare for the relationship between input and output to be linear or 50/50. Yet this is the assumption that many people make of all situations - that working an extra hour is worth the same as any other hour already worked.

The 80/20 Principle is inherently optimistic, however. To achieve more with less focus on the 20% of resources that really matter in terms of achievement, and let go of (or delegate) the remaining 80%.

Examples:

* 80% of the bugs come from 20% of the code

* 80% of customer complaints can be eliminated by correcting only 20% of the causes.

* 80% of the benefits will be found in the simplest 20% of the software system.

* Most software spends 80% of its time executing only 20% of the available instructions.

* 80% of memory access is for only 20% of records.

 

To learn more see the book "The 80 / 20 Principle: The Secret to Success" by Richard Koch

OR

Read the Executive Summary by Vadim Kotelnikov.

http://www.1000ventures.com/business_guide/crosscuttings/80-20principle.html

World's First Battery Fuelled By Air

The world's first battery fuelled by air - with 10 times the storage capacity of conventional cells - has been unveiled.

Scientists say the revolutionary 'STAIR' (St Andrews Air) battery could now pave the way for a new generation of electric cars, laptops and mobile phones.

 The cells are charged in a traditional way but as power is used or 'discharged' an open mesh section of battery draws in oxygen from the surrounding air.

This oxygen reacts with a porous carbon component inside the battery, which creates more energy and helps to continually 'charge' the cell as it is being discharged.

By replacing the traditional chemical constituent, lithium cobalt oxide, with porous carbon and oxygen drawn from the air, the cell is much lighter than current batteries.

And as the cycle of air helps re-charge the battery as it is used, it has a greater storage capacity than other similar-sized cells and can emit power up to 10 times longer...

 

To read more please visit:

www.telegraph.co.uk/scienceandtechnology/science/sciencenews/5353809/Worlds-first-battery-fuelled-by-air.html

Ducks In A Row: Do You Have People Or Persons?

 

 May 19, 2009

By Miki saxon

 

Do you work for a company or a manger? Phil Gerbyshak manager over at Slacker did a great post on the fact that people quit managers, not companies—great because it is so true.

If you ask most people who they work for they’ll name a company, but if you ask them why they love or hate it, stay or leave they’ll usually mention a manager, the people or the culture, which is a projection of the manager and the people.

People quitting is expensive and bad for team morale, but, as Phil pointed out, they can quit and not leave, which, from a management perspective, is the worst thing that can happen.

Think about it, who do you manage? And How?

Adequate managers manage employees.

Good managers manage people.

Great managers manage persons.

Yes, persons.  Individuals, because you can’t manage (or lead) everyone the same way...

To read more please visit:

www.leadershipturn.com/ducks-in-a-row-do-you-have-people-or-persons/

Why Load Test Your Apps?

You just finished coding your latest web app and have even gone the extra step of running functional tests to eliminate bugs and make sure that all of the features work correctly.  Now it is ready to be released into the world!  Not so fast…If you have more than a few hundred users, you could be looking forward to having your users finding embarrassing new bugs or your server crashing under load.

Load testing is a critical step when producing any web application; it ensures that when your web app goes live, it will work properly.  It does this by simulating thousands of users to your site, clicking on forms, and doing updates and searches simultaneously.  Without load testing, however, bugs and server crashes may cause the loss of customers, reduced employee productivity, damage to your brand or corporate image, and even the capital expense of purchasing unnecessary hardware to fix the problems you shouldn’t have experienced in the first place!

Instead, spend some time upfront load testing your app under different test cases and user loads.  In a typical load testing engagement, we might spend several days to a week writing load testing scripts and running the application under different load levels.  Then we might spend one or more weeks fixing the issues found and rerunning the load tests to make sure that 1) the original issues are resolved and 2) no new issues have turn up.  After you have performed load testing, you can be sure that first and foremost, your web application will NOT fall apart under load, and secondly, you will even be able to tell exactly how many simultaneous users your web app can handle.

Load bugs in a web application are as common and similar as mosquitoes are in humid weather—they’re bound show up and no doubt get on your nerves.  Some of the causes for them include software configuration issues (for the Web server, database, load balancers etc.), poor network configurations, poorly optimized software code, and even because of insufficient hardware resources.  So, with all of these obstacles in the way of you unleashing your site into the world, make things easy for yourself and let load testing be your personal bug-spray!

The Mood Cure: The Four Part Mood-Type Questionnaire

Write down the number next to each symptom that you identify with. Total your score in each section and compare it to the cut-off score. If your score is over the cut-off, or if you have only a few of the symptoms described in a section, but they bother you (or those close to you) on a regular basis, turn to the chapter indicated.

 

Part 1: Are You Under a Dark Cloud?

Part 2: Are You Suffering From the Blues?

Part 3: Is Stress Your Problem?

Part 4: Are You Too Sensitive to Life’s Plan?

 

To take the test please visit:

www.moodcure.com/Questionnaire.html

"Worry" is Interest Paid in Advance on Borrowed Trouble - Not Worth Paying!

Have you ever worried about an upcoming phone call, a future presentation, or a pending decision with a client?  Have you ever worried about your performance at a previous meeting or presentation?  Or, perhaps you've fretted over a comment expressed by a client.  If so, you're not alone.  People often worry about past or future events.

 

A small amount of concern--emphasis on small--can be beneficial if it urges you to review your strategy and look for ways to improve.  But, when worry begins to fill your day, it clouds your thinking and diverts your attention from current tasks and real issues to imagined scenarios, which rarely develop, or past events over which you no longer have control.  It obscures your judgment and prevents logical, objective analysis.  Worry is not a healthy emotion, and worrying is not a constructive activity.  


Worrying about future events can be avoided with intelligent organization.  Designate a specific amount of time for planning and preparation for future events.  Then, schedule the time so it doesn't interfere with other normal activities.  Finally, and most importantly, give yourself permission to keep to the schedule...and then LET IT GO!  


Worrying about past events can be avoided by accepting the possibility of a less than perfect outcome.  Sometimes, your undertakings will be carried out flawlessly...exactly as planned, and you'll achieve your desired result.  That's good.  Other times, the outcomes won't be so ideal.  That's not so good, but it is part of the human experience.  ACCEPT IT!  No amount of worrying will change it.


You can further minimize worry by thoughtfully planning your week and then prioritizing and organizing your daily activities.  If today's activities are well organized, you should be able to start tomorrow's activities without worrying about what took place today.  And, if tomorrow's activities are thoughtfully planned, you should be able to complete today's activities without worrying about what will happen tomorrow.

"Do You Sell, Or Do You Tell?": Jack Hauser's Sandler Sales Meeting Minute

Sales people love to talk, especially about the features and benefits of their product or service with which they are in love. Have you ever talked so much and that you actually talked your prospect out of the sale?

 

Have you ever been a prospect and wished the sales person you were with would just shut up? How did you feel when the sales person talked too much? Comfortable? Probably not. Were you listening to the features and benefits? Also, probably not. You knew what you wanted and he or she was telling you what they thought you should know. But, that's probably never been the feeling a prospect of yours has ever had.

 

Remember, people buy from people that they are comfortable with. Selling is asking the right questions, not telling your prospects about features and benefits. You will gain greater trust with your prospect if you Sell, not Tell!

The Rise of the MBA and the Fall of Business

By Miki Saxon

May 1, 2009

 

I’ve never been a lover of the MBA, its almost holy status, depending on the school, and especially its dominance on Wall Street.

 

In a recent post Justine Larbalestier said, “I was fascinated by Background Briefing’s recent documentary about the emergence of business schools and their effect on corporate culture and its relationship to the current crisis: MBA: Mostly Bloody Awful.

 

To read more click www.leadershipturn.com/the-rise-of-the-mba-and-the-fall-of-business/

TeraTech TAKE-Shelf: Using everything to its fullest potential

At TeraTech, we are always looking for ways to improve ourselves, individually as well as an entirety.  We talk about and share ideas that may have worked for one of us individually and if applicable, we find a way to implement it for the entire company.  This is how the TeraTech TAKE-Shelf came to be.  After one of our weekly meetings, it was discovered that a lot of the TeraTech staff is quite thrifty and quite a number of us have used Freecycle (www.freecycle.org) to obtain or to get rid of unwanted items.

 

There is a shelf, in our kitchen area that is now denoted as the TeraTech-Take shelf.  When one of us has an item we no longer use or want, we bring it in, date it and leave it there for another to take.  If the item remains there over 30 days, it is removed and donated to Goodwill or the Salvation Army.  This is just another simple way we are working on our recycling efforts and are getting the full benefits of everything we use.

 

Please feel free to bring your item(s) in as well and/or peruse our TeraTech-Take shelf the next time you are in the office—possibly for an MDCFUG meeting?  Note, however, that if your item is too large to fit on a regular size shelf of a tall bookcase, then please bring a photo of the item to leave on the shelf and provide your contact information alongside.

 

Could you begin something like this at your location?

  

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.9.1.002. Contact Blog Owner