Crowd Chess

Is one single person smarter than an enormous group of people?  Is a crowd better at making decisions than one trained expert?  Crowdchess.com is taking this idea and putting it to the ultimate test, a mass exhibition of the ultimate strategy game where it is literally the world versus chess Grand Master Gawain Jones, one of England’s highest rated players.

It goes like this: everyone enrolled gets to vote on a move the team should make and has 12 hours to do so.  The move that gets the most votes will take place, and then Mr. Jones will have 12 hours to decide on his move. 

While this may not be a completely comprehensive test, the results should be pretty exciting.  Challenging a Grand Master is no easy task but I for one believe that with all persons dedicated to the game and the ability to mill over every possible outcome for 12 hours means that the odds are in the crowd’s favor.  Another test of crowd wisdom could be a group of people boxing against the heavy-weight champion of the world, but chess may be a bit more civil. Visit www.CrowdChess.com to learn more.

Where Did TeraTech Come From?

I sat down with TeraTech President and Co-Founder, Michael Smith, to truly understand the vision behind TeraTech.  From its 1989 inception TeraTech (partially a play on “Microsoft”, micro = one millionth, terra = one trillion) has proved itself as experts in ColdFusion and gurus at solving complex web based problems.

In 1989, Smith, originally from England, came off a programming project in the Netherlands and decided to travel to see what he wanted to do next.  He landed in Rockville, Maryland with the idea of opening his own business, one that focused on software quality, did not adhere to the typical 9-5 work-week, and that treated its clients and employees with mutual respect. “Certainly, the atmosphere is what’s important to me,” he notes.  He met up with Liz Whitaker to actual begin this business on their own terms and with their own rules. 

They began by working on Clipper Programming for the World Bank in 1989 and soon acquired ProBas, a basic DOS library, in 1991.  Quickly, things started picking up and getting bigger.  Also in ’91, they started doing Visual Basic for Windows programming.  1993 however saw the passing of co-founder Liz Whitaker.  Remaining true to his goals, Smith continued pursuing his vision of TeraTech.  In 1997, TeraTech took a turn that would ultimately change its course.  Smith decided that the newly released Allaire ColdFusion web development language was the direction the company should go, and has since never looked back.  In 1998, TeraTech became the leader of the Maryland ColdFusion User Group, and has held a meeting in Rockville every month since.  1999 saw the first annual CFUnited convention, hosted in Bethesda, MD, which has since grown from a weekend event to a 4-day, 1000 person convention attended by every big name in the ColdFusion community.   

The sense of community stayed close to Smith.  He realized what the CF community had given him, and wanted to find ways to give back.  In 2000, he created a ColdFusion tag poster, set up classes training in ColdFusion and Fusebox, and began running websites www.cfbughunt.org as a public forum to track bugs, and www.cfconf.org which gives the latest updates on all events in the CF community.  He has spoken at many ColdFusion user groups and events around the world.

This long journey is far from over for TeraTech.  We are still striving to improve software quality worldwide and solve complex programming problems and sick servers.

CFUnited 2008 Update

TeraTech is in total conference mode.  Everyday we are getting closer to this years CFUnited (June 18th – 21st) and everyone in the office is getting more and more excited.  There’s still a bunch to get done, and everyone is excited about the new location in DC

This year will be the best year ever with great speakers (including TeraTech President Michael Smith and Adobe’s Senior Technical Evangelist and all-around genius, Ben Forta), all the events and topics are going to be fascinating, and all the “extra-curricular” events are going to be outstanding.  In fact, we have some secret events up our sleeves that will only be announced at the conference. 

There are still tickets available, but they are going fast.  To register for the conference, go to http://cfunited.com and click on the “Register” tab.

TeraTech Training Class Schedule

TeraTech offers training classes for ColdFusion and Fusebox for every skill level.  This months highlighted class is

 ACT 101 – ActionScript 3 for Flex Developers

Taught by Theo Rushin, Jr., this course introduces the Flex developer to the Actionscript 3.0 programming language.  The course starts by covering basic syntax and working with variables; moves through looping and control structures; then covers working with display object; and finally focuses on event handling and object-oriented programming concepts.  Throughout the course we will be creating many sample apps that will help to reinforce your knowledge to Flex 3 and the language of ActionScript 3

The class will be held at 10am – 5pm on June 10th, and like all classes, will be held at TeraTech’s Rockville headquarters.  To sign up for these classes, or for a full class schedule list, go to http://www.teratech.com/go/training/class-schedule. 

New TeraTech Website Coming in June

When should you use a SAN?

I was talking with TeraTech’s server tuning consultant Mike Brunt about servers and SANs (Storage Area Networks). When should you use a SAN?

1/ As a SAN systems are typically simply a large number of hard-drives, optical drives etc in an enclosure, it is very easy to add capacity quickly as needed as opposed to adding a complete new server which takes time. So if you database is growing fast you might chose to put the data on a SAN.

2/ If there is a need to allow access to a large volumes of data from multiple systems.  A typical case here would be large media files such as photographs-images, movies, music, games etc.

It is generally not a good idea to put CF code on a SAN to share among a cluster of servers - the network traffic will be much slower than accessing the CF code on a local hard drive. Instead use automated tools to copy updated code between servers in the cluster. More on that later.

May's MDCFUG Lunch

Last months ColdFusion Lunch was literally twice as successful as the previous one, with twice the amount of ColdFusion users which means twice the amount of contacts and twice the amount of fun.  In fact, because it was pouring rain outside, those there didn't want to leave, so it was almost twice as long!  In sticking with what works, this months lunch will be held on the last Monday of the month, May 26th and all are invited.  Instead of Cosi's like the previous lunches have been located at, we are now changing the location virtually across the street to Potbelly's (1701 Pennsylvania Avenue, NW).  For those who haven't heard about Potbelly's, they have awesome sandwiches made quickly for all types of tastes (pizza sandwiches, warm pb&j, etc), in addition to soup and ice cream, and it's very cheap, like $4 for a sandwich.  Plus, its a way to get out of the office on a Monday, and who couldn't get some benefit out of that!  Let me know if you plan on coming so I can send you a reminder email that morning or if you need directions.  My email is Matt@teratech.com  or give me a call 301-424-3903 x134.  Hope to see you there!

ColdFusion stability, metrics, logs and garbage collection

I was talking with TeraTech’s server tuning consultant Mike Brunt about ColdFusion tuning and clustering which we did for a client to improve stability and performance.  I thought others might be interested in what we did with server metrics, threads, logs and garbage collection in the Java Virtual Machine (JVM). We edited two files, as follows... 

1/ {JRun4_root}servers\default\SERVER-INF\jrun.xml

We edited the following lines Lines 126 through 130, we uncommented this section (it is sometimes already uncommented) made sure it was set to true

 

<!-- This Service provides metrics information -->

<!-- ================================================================== -->

<service class="coldfusion.server.jrun4.metrics.MetricsServiceAdapter" name="MetricsService">

    <attribute name="bindToJNDI">true</attribute>

</service>

 

We then edited the section from line 148 through 151 as follows...

 

<!-- You may also need to uncomment MetricsService if you want metrics enabled -->

    <attribute name="metricsEnabled">true</attribute>

    <attribute name="metricsLogFrequency">60</attribute>

    <attribute name="metricsFormat">Web threads (busy/total): {busyTh}/{totalTh} Sessions: {sessions} Total Memory={totalMemory} Free={freeMemory}</attribute>

 

We changed <attribute name="metricsEnabled">true</attribute> to true which turns on Metrics Logging we made no more changes to this section but it is good to note what they do. <attribute name="metricsLogFrequency">60</attribute> sets the frequency of the metrics logging to 60 second intervals, that can be changed, in my experience, 60 seconds is typically a good time interval.

The line below that determines what is displayed; {busyTh}/{totalTh} will show all busy threads and total threads in use.  The busy threads value shows you how many threads are actually in use when this snapshot was taken and the total the actual busy threads along with threads in every other state.  There is a good write up of different thread states here - http://www.bpurcell.org/blog/index.cfm?mode=entry&entry=934.  The total thread number shows all threads in every state, as a very broad rule of thumb, the greater the difference between busy and total the more efficiently the application is running.

Sessions: {sessions} shows the number of Java-J2EE sessions running which is enabled by turning on "Use J2EE Session Variables" in the Memory Variables section of CF Admin.  This will show you how many J2EE sessions are running every 60 seconds.  This is an indication of activity and this number will rise and fall as user sessions begin and end.

Total Memory={totalMemory} Free={freeMemory} is fairly self explanatory and shows the memory state in 60 second intervals, ideally we do not want to see free memory drop too low, I would get uncomfortable if it drops below 75 MB or 10% of the total.  Also, we want to see any used memory being released as quickly as possible.

We next edited the way logs are generated and created a split out of the logs by adding {log.level} to line 155 

<attribute name="filename">{jrun.rootdir}/logs/{jrun.server.name}-{log.level}-event.log</attribute> 

This last change enables more targeted logs which will be written to {JRun4_root}\logs.

 I recommend making these changes on all Production CFMX 6.1 systems and leaving them on, the information produced can be invaluable for troubleshooting.

 

2/ {JRun4_root}\bin\jvm.config 

This files is the main configuration file for the JVM and is loaded at start time.  After observing application behavior metrics from the logging changes above we applied the following changes to jvm.config...

-Xms768m -Xmx768m - This sets the start and maximum memory allotted to the heap at 768MB.  I typically set this number as high as is needed by the metrics logging and verbose garbage collection information.  In practical terms, on 32 bit Windows, it cannot be set any higher than 1.4GB. 

-XX:PermSize=128m -XX:MaxPermSize=128m - Here we added a start size for the permanent generation which I where the classes for JRun-CF are stored.  We did this because we observed all of this memory space being fully consumed many times, in the verbose garbage collection log. 

-Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000 - These arguments generate an explicit Full Garbage Collection (Full GC) at 10 minute intervals.  We applied these because we observed Full GC's taking place at one minute intervals and in some cases at 30 second intervals.  This is far too often as when there is a Full GC, everything else on the server stops.

-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -verbose:gc -Xloggc:teratechgc.log - This argument set turns on logging of all garbage collections in a verbose manner and this is where we got our information for the memory settings along with the metrics information.  We turned this logging off after making the changes and checking that all was OK.

The Corporate Culture Machine

I recently read an article by Miki Saxon about the similarities between corporate culture and computers. Pretty fascinating when you realized most everyone equates the two to being quite opposing. When you get down to the nitty-gritty, the real "guts" so to speak, they are pretty similar.

A computer does exactly what its told. Now clearly silly humans can't be trusted to do everything PRECISELY as they are told to, so there are a few dissimilarities. But her theory is based on the input/output, in computer terms, I/O. Corporate culture will thrive when good things are implemented. When bad things are put into the mix, well, "garbage in, garbage out" as she puts it so eloquently. Read Miki Saxon's full article here.

TeraTech Class Schedule

TeraTech offers training classes for ColdFusion and Fusebox for every skill level. Here are the upcoming classes you can sign up for.

ColdFusion 201 - Tuesday, April 29th, 10am-5

Taught by resident expert Ajay Sathuluri, this class is the follow-up to beginner's ColdFusion where he will cover how to secure all of your sites parts in a reliable way. He will delve into Security with topics such as closing backdoors and forgotten passwords. Additionally, he'll discuss on Session Tracking, Locking, and Form Validation.

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.9.002. Contact Blog Owner
Home | About Us | Software Development | Server Optimization | Client Portfolio | Training | Contact Us

Copyright © TeraTech Inc 2007. All rights Reserved.
TeraTech Inc 405 E Gude Dr Suite 207, Rockville MD 20850 | MAP Map | Tel.: +1 (301) 424 3903 | Fax: +1 (301) 762 8185 | Contact Us