text:
Automated Testing & Windows CE
Windows CE is a Microsoft operating system developed for devices that have minimal storage, such as mobile devices and embedded systems. In this DDJ article from 2002, Tom Pugh used third party tools to test Windows CE systems.
Automated Testing & Windows CE
Automating tests using standard QA tools for Windows CE apps
by Tom Pugh
Software quality assurance (QA) is a key differentiator that can give a product a significant advantage over competitors. Unfortunately, the ability to test software on embedded systems has not kept pace as software and operating systems have become more complex. In this article, I present a technique you can use on Windows CE systems to drive software from a remote machine, making it possible to use conventional third-party QA tools to test Windows CE-based products.
Many of the techniques I describe here are not new. Put together, however, they provide a valuable way to test software and validate results using a standard QA tool. Figure 1 demonstrates how this technique works.
Figure 1
In this case, the end product is a simplified client/server utility that captures screen output on the target device, displays the output on a PC running Windows 2000, then forwards mouse click and basic keyboard events back to the application running on the target machine. Both the Windows CE server utility and Windows client utility are MFC applications. In the source code accompanying this article (available electronically; see "Resource Center," ddj.com), the client and server communicate over TCP/IP only. Once a connection is made between the client and the server, the server running on the CE device minimizes itself so that it is not in the way of the application being tested. At this point, you can drive the CE software from the remote machine.
It is important to understand how this approach might benefit you, as well as some of the reasons it might not be suitable for your project(s). Some of the advantages of this solution include:
- The ability to drive software running on a Windows CE device from a remote machine.
- The ability to drive software running on a Windows CE device from a standard QA automation tool.
- A generic approach that will work with most target devices and software that can be driven through a user interface (not necessarily a standard Windows UI, however).
Some of the disadvantages of this approach include:
- The software on the target device must have a GUI for this approach to have significant value.
- It requires a server component that takes up a small amount of valuable space on the target device. As with all QA tools, the environment while testing will also be slightly different from the environment in production since the server component will not be running in the delivered product.
- It works with bitmaps instead of UI components. Instead of seeing live components like common remote-control software, you see only a bitmap of the remote system.
The advantages outweigh the disadvantages for many projects, and the ability to test embedded systems can increase significantly through this tool's use. Unfortunately, I cannot go into all of the details regarding this utility due to space limitations. Since it is more important that I discuss the basic concepts behind this approach, I will not be giving details on the communication (TCP/IP) routines. This article includes the complete source code for a simplified working version of this utility, so that you can get started right away if you find this approach useful. The source code includes a simple TCP/IP communication process that can be used as a starting point if you are unfamiliar with using the Windows Sockets API.
Building the Server Component
The server component is responsible for receiving client requests, processing requests by simulating mouse clicks and keyboard events, and capturing the image on the target device. Once a connection between the client and server is established, the server takes a snapshot of the display and sends it to the client. The server also sends a new snapshot each time a command is processed.
You start by building a simple MFC dialog-based application through the AppWizard in Embedded Visual C++. The dialog template needs only a single button to help in handshaking during the TCP/IP connection process. (See the OnConnect() method in QASrvrDlg.cpp, available electronically, for the TCP/IP details.) Once the connection is established, this window is minimized so that it no longer is in view of your running application.
Once the connection is made and server initialized, it is time to determine the window handle of the window that the server will be driving. The window handle and the window's device context are needed to take the snapshot. Ideally, this would be done by calling GetDesktopWindow() and driving the entire unit through the desktop. Unfortunately, GetDesktopWindow() is not supported under all target platforms and often simply returns NULL. My workaround for this is to simply call FindWindow() instead:
pDriverWindow = FindWindow(NULL, _T("AppWindowTitle"));
To use this, you need to replace AppWindowTitle with the results of GetWindowText() on the main window of your application. This is generally the same text you see in the title bar, but if you have the title bar hidden, you might need to use an alternative method of finding the window title. You can use Remote Spy++ to determine this and other information about your application's primary window.
The next step is to take a snapshot of the target device display and send it to the client; see Listing One (Listings appear at the end of the post). The process starts by creating a device context compatible with the display. The size of the target application window is determined. Next, a new bitmap is created using the CreateDIBSection() function. In addition to returning a bitmap handle, this API function also returns a pointer to the bitmap's storage in memory (in BGR, or reverse RGB, format). Using the BitBlt() function, the snapshot is placed into the bitmap object. There are many other useful operations that BitBlt() can perform, but in this case, SRCCOPY is used to copy the bitmap. Once BitBlt() is called, the pointer CreateDIBSection() references the bitmap snapshot of the target application. Once the bitmap is sent to the client, it is copied into a device-dependent bitmap using SetDIBits(), which accepts the data in BGR format, so no conversion is necessary.
Another interesting aspect of this approach is that the bitmap snapshot is really a snapshot of exactly what users would see while looking at a monitor. If there are windows on top of the target application window in the z-order, they appear in the bitmap. This becomes an advantage because no special processing is required to handle pop-ups that appear from the application unless they exceed the width or height of the application.
After the bitmap is displayed on the client, mouse clicks and keyboard events need to be forwarded to the server. These events are simulated on the target device so that the application thinks users have performed the specific action.
While I expected the bitmap manipulation to be the trickiest part of this solution, it turned out that simulating mouse clicks and keyboard input was more troublesome. Windows expects certain events to occur in a specific sequence. If the system state does not match the event that is being simulated, it appears as if nothing happened.
Listing Two (at the end of the post) shows the details of simulating a mouse click. The positioning of the mouse click was off by an odd amount during testing. Unfortunately, I was not able to find any API that could help adjust the values dynamically. Once the coordinates of the mouse click are extracted from the string sent by the client, they are adjusted by a hardcoded amount. It may be necessary to adjust these settings depending on the screen resolution, platform, or other circumstances involving the target device.
To simulate a mouse click, you have to retrieve a pointer to the window that is immediately beneath that point using the WindowFromPoint() function. This will be the window that mouse click events are sent to. The coordinates are then translated using ScreenToClient(). If this step is missed, the coordinates will be outside the client area of the component and the component will ignore the window messages. Finally, the mouse events are sent to the component by sending WM_LBUTTONDOWN and WM_LBUTTONUP windows messages, respectively. After the events are fired, there is a short delay introduced between clicks so that all of the clicks are received properly by the target device. Currently, this utility does not handle double clicks, although it would not be difficult to add a similar double-click message that gets sent from the client to the server when appropriate.
If your Windows CE application uses standard Windows components, you probably want to send keystrokes to a text control. To do this, first determine which control has focus by calling CWnd::GetFocus(). Then send one or more WM_CHAR messages with the virtual key code of the character to the text control. For special keys, such as hot keys (created by calling the RegisterHotKey() API function) and system characters (sent using the WM_SYSCHAR windows message), you need to do some experimentation. The source code I provide sends hardcoded hot-key events directly to the target window, but this is not a generic solution.
Building the Client Component
The client component is responsible for displaying a snapshot of the target application, accepting mouse events, accepting keyboard events, and forwarding requests to the server. To reduce the load required by the server application, a new snapshot of the target is returned from the server only when requested by the client. When an area of the bitmap is clicked using the mouse, the x- and y-coordinates are queued. Similarly, when text is entered on the client, the text is also queued. The queue of events is not sent to the server until the Send button is pressed. This can be important because if the load on the server becomes too stressful, it will begin to affect the performance of the target application.
When the client receives a bitmap from the server, it must convert it into a device-dependent bitmap and draw to an appropriate device context. In my example, I created a static control on a dialog resource template, and then associated it with a class-level variable through Class Wizard. The bitmap is copied into a device context compatible with the static's controls. Listing Three (at the end of the post) shows the process of moving the bitmap from BGR format into the static device's bitmap property. This is basically the reverse process of the technique used to take the snapshot on the server.
Accepting mouse and keyboard input in the client application is standard MFC event handling. Once the event is received, it can be packaged into a command to send to the server component. In the example source code, all mouse and keyboard commands are queued until the Send button is pressed. This reduces the communication between the components that would otherwise bog down the target device.
Running the Example
If you feel this tool would be useful, the source code for a simplified version is provided with this article to help you get started. I've only tested the tool under the GEODE platform, but it uses an API that is available on most platforms.
To use the tool, modify the TARGET_APPLICATION definition in QASrvrDlg.cpp in the server application to match the title of your application's primary window. Next, compile and run the server on the target device. Compile and run the client on the machine from which you are debugging.
Enter the appropriate IP address of the target device. If your target device uses DHCP, you may need to install ipconfig.exe to the device in order to determine its IP address. If you run ipconfig.exe in a command prompt, it shows you the assigned IP address of the device. Click Connect on the server, then Connect on the client. If the connection is successful, the Send, Capture, and Disconnect buttons should become enabled. Click Capture to retrieve the bitmap from the server-you should see the bitmap appear beneath the buttons on the client. To send a mouse click, click in the bitmap area, then click the Send button.
After significant exploration into third-party tools and processes, I was unable to find anything that would let me automate application testing for the right price. After creating this utility, our QA group has created numerous regression and reliability tests for our Windows CE-based embedded applications. I hope that this technique is also useful for your Windows CE-based applications.
Thanks to Sudha Arulalan for contributing to the original development of this tool.Listing One
// Take a snapshot of the screen
CDC dc;
// Retrieve the dimensions of the application window
CRect rect;
int nWidth = rect.Width();
int nHeight = rect.Height();
// Fill in the DIB structure
BITMAPINFO dibInfo;
dibInfo.bmiHeader.biBitCount = 24;
dibInfo.bmiHeader.biClrImportant = 0;
dibInfo.bmiHeader.biClrUsed = 0;
dibInfo.bmiHeader.biCompression = 0;
dibInfo.bmiHeader.biHeight = nHeight;
dibInfo.bmiHeader.biPlanes = 1;
dibInfo.bmiHeader.biSize = 40;
dibInfo.bmiHeader.biSizeImage = nWidth*nHeight*3;
dibInfo.bmiHeader.biWidth = nWidth;
dibInfo.bmiHeader.biXPelsPerMeter = 3780;
dibInfo.bmiHeader.biYPelsPerMeter = 3780;
dibInfo.bmiColors[0].rgbBlue = 0;
dibInfo.bmiColors[0].rgbGreen = 0;
dibInfo.bmiColors[0].rgbRed = 0;
dibInfo.bmiColors[0].rgbReserved = 0;
// Create a new device independent bitmap and retrieve a pointer to its bit
storage -- this is the raw bitmap data that will be sent to the client
BGRBit *pBGR = NULL;
HBITMAP hNewBitmap = CreateDIBSection(dc.GetSafeHdc(),
(const BITMAPINFO*)&dibInfo,
DIB_RGB_COLORS, (void**)&pBGR, NULL, 0);
HBITMAP hOldBitmap = (HBITMAP) dc.SelectObject(hNewBitmap);
// Copy bitmap into new device context -- this also copies bitmap to DIB
dc.BitBlt(rect.left, rect.top, nWidth, nHeight, pDriverWindow->GetDC(),
// Determine the buffer size of the data to be sent to the client
int bufSize = sizeof(*pBGR) * nWidth * nHeight;
Listing Two// Now that we have received click event, we need to adjust positioning a
// bit so that click is translated properly to correct location. Note that at
// different resolutions hardcoded numbers might need adjusted (this has not
// been tested at a resolution other than 640x480 at this time).
pt.x = _wtoi(tcXCoordinate) + 8;
pt.y = _wtoi(tcYCoordinate) + 3;
// Determine the window that is beneath the specified point.
// The mouse click event must be sent directly to this window.
pWindow = WindowFromPoint(pt);
// To simulate a mouse click, the pointer must be in the proper position.
SetCursorPos(pt.x, pt.y);
// Make sure the target window has focus
//Map the screen coordinates to the client
// Send a message to the window indicating the button press
wParam = 0;
lParam = MAKELONG(pt.x, pt.y);
pWindow->PostMessage(WM_LBUTTONDOWN, wParam, lParam);
pWindow->PostMessage(WM_LBUTTONUP, wParam, lParam);
// If this delay does not exist between mouse clicks,
// the application misses some of the clicks.
Sleep(700); // To give time interval b/n two mouse clicks
Listing Threevoid CScreenDriverDlg::CopyBitmap(BGRBit *pBGR, int nWidth, int nHeight)
// If there is a bitmap already stored in the module level
// bitmap object, delete it
if ((HBITMAP) bitmap != NULL)
// Create a bitmap compatible with the screen device context
bitmap.CreateCompatibleBitmap (this->GetDC(), nWidth, nHeight);
// Fill out the bitmap info structure -- this should be
// identical to the server version
BITMAPINFO dibInfo;
dibInfo.bmiHeader.biBitCount = 24;
dibInfo.bmiHeader.biClrImportant = 0;
dibInfo.bmiHeader.biClrUsed = 0;
dibInfo.bmiHeader.biCompression = 0;
dibInfo.bmiHeader.biHeight = nHeight;
dibInfo.bmiHeader.biPlanes = 1;
dibInfo.bmiHeader.biSize = 40;
dibInfo.bmiHeader.biSizeImage = nWidth*nHeight*3;
dibInfo.bmiHeader.biWidth = nWidth;
dibInfo.bmiHeader.biXPelsPerMeter = 3780;
dibInfo.bmiHeader.biYPelsPerMeter = 3780;
dibInfo.bmiColors[0].rgbBlue = 0;
dibInfo.bmiColors[0].rgbGreen = 0;
dibInfo.bmiColors[0].rgbRed = 0;
dibInfo.bmiColors[0].rgbReserved = 0;
// Create a temporary device context that will be used
// to copy the bitmap
CDC dc;
// Use the module level bitmap as the destination for the
// device dependent bitmap
CBitmap *pOldBitmap = dc.SelectObject(&bitmap);
// Copy the DI bits into the device dependent bitmap
// We use SetDIBits here instead of SetBitmapBits because it will
// accept the data in BGR format instead of RGB format.
SetDIBits(dc, bitmap, 0, nHeight, pBGR, &dibInfo, DIB_RGB_COLORS);
// Select the old bitmap back into the device context to
// avoid resource leaks
// Place the bitmap into the CStatic
HBITMAP hOldBitmap = m_BitmapArea.SetBitmap(bitmap);


text:
Kawasaki KDX 200 Refresh, Part 1: Renthal Bars, Sprockets and Chain
New dirt bikes are great. They come off the showroom floor in pristine condition. No dirt. No scratches. No dents in the pipe. The engine is snappy, the suspension is fresh, and if there are any major mechanical issues its covered under warranty.
The only real downside to new dirt bikes is the price. The economy has provided a great deal of opportunity for those looking to buy new, and many manufacturers have either offered discounts, free gear, or lower APRs if you finance. But for some people a new bike just isnt in the equation right now.
Thats where used dirt bikes enter the picture. Whether its three, 10 or 20 years old, there are thousands of great dirt bikes out there to be had. Craigs List, eBay and your local paper are all great resources to track down used bikes. After keeping our eyes on local Craigs List ads for a used Kawasaki KDX 200 to serve as our new trail bike, we came across a 2000 model that looked to be a pretty good deal. The owner was asking $1200 but also said he was flexible on the price.
We showed up to check out the 2000 Kawasaki KDX with cash in hand, took it for a spin to check the motor, gave all the mechanicals a once over, and we ultimately felt it was a pretty decent bike. It also doesnt hurt that the family still rode regularly, so it looked like they knew how to take care of their equipment. Although we wont be able to dual-sport the two-stroke-powered bike in California, it does have a Green Sticker and can tackle just about any off-road area in the state where dirt bikes are allowed.
We ended up buying the KDX 200 for just under $1000, a price we were happy with and one the seller seemed pleased with since his family really never rode the bike anymore. The KDX has some wear and tear. The pipe had a few dents, the seat a small rip, the plastic scuffed and the frame paint worn off in a few places, but overall the engine felt solid and it was ready to ride as is.
Since we didnt have a ton of money into the bike, it wouldnt hurt to invest a little money into bringing the bike back up to speed, or refresh it. Before worrying about making changes, we hit the trail a few times to see what we were working with. The bike is actually set up decently for us suspension-wise, but the Renthal bars on the KDX are just too low for a 6-foot-tall rider. Although we plan to replace and update some of the plastic, fix the seat and the exhaust pipe, and even upgrade the handguards, our first change had to be the bars.
While scoping out the Renthal website for different bars, we also came across the companys line of sprockets and chains and thought this was a worthwhile upgrade. The previous owner said the KDX hadnt been run a lot in that past few years, but it was clear some of the wear-and-tear parts had seen their fair share of trail time over the years (the bike was more than 10 years old when we purchased it). So replacing the rear sprocket, countershaft sprocket and chain wouldnt be a horrible idea.
The stock gearing on the 2000 KDX 200 is 13/47. In speaking with our resident dirt bike guru Rick Super Hunky Sieman, he suggested we jump up from the 13-tooth countershaft sprocket to a 15-tooth. We actually talked to Vic Krause at Krause Racings Sidewinder Sprockets (http://www.sidewindersprockets.com/) who makes such a unit and was happy to send one our way, but after some consideration of our type of riding we chose to stick with the 13-tooth sprocket. Super Hunky used to desert race his KDX in that form, and he loved the way the 15-tooth sprocket pulled off the line. For wide-open desert riding (and even racing) its a great way to give the bike longer legs. For our current use and trail riding needs, however, we decided to stick with the stock gearing but will consider the upgrade in the future.
We ended up going with a 13-tooth countershaft sprocket from Renthal, which is constructed of Nickel-Chrome-Molybdenum steel that the company says offers a great combination of strength and hardness. We also decided to replace the rear with Renthals Ultralite sprocket. The Ultralite is constructed of 7075 T6 aluminum, which Renthal says is 66 percent lighter than steel. We didnt weigh it, but it is definitely significantly lighter than our stock piece.
Since we planned to replace the sprockets, it was a no-brainer to swap out the KDX 200s chain as well. We went with Renthals R3-2 O-Ring Chain. This o-ring chain utilizes Nitrile synthetic rubber o-rings that help retain grease in the chain joints. It also is pre-stretched, features shot-peened alloy steel side plates for strength and high-carbon alloy steel bearing pins for wear resistance.
When looking for the proper bend for a new set of bars, the Jimmy Button bend was mentioned by a few people, but Brad Cameron at Renthal actually suggested a new bar called the RC High that doesnt have as much sweep as the Button bars. To help keep costs down, we went ahead with the 7/8 bar instead of going to the oversized bars.
Since weve hit the trail a few times on our KDX before making any of these upgrades, we felt it was probably time to change the gearbox oil. Opinions vary on how often your oil should be changed, and much of it depends on how hard a bike is ridden. Some manuals suggest going no more than 10 hours of riding time before a change, but after an all-day ride in the desert (say, 6-7 hours) its not a bad idea to swap it out.
We turned to Lucas Oils 10W-40 oil for our two-stroke motor, as our service manual calls for either 10W-30 or 10W-40. A quick check in our service manual told us that .65 liters of new oil should be used on a change. We actually marked this on our bottle as a reminder just in case the manual wasnt close at hand. If youve recently purchased a used bike, your first purchase should be a service manual worth every penny. Weve also used Lucas Oils 2-cycle semi-synthetic oil for our pre-mix the last few rides and it has worked great.
Follow along first step in our refresh project with our Kawasaki KDX 200. In the near future we plan to upgrade to heavy-duty Acerbis hand guards (http://www.acerbis.com/), replace and repair bumpers and other plastics body pieces, repair our dented FMF Gnarly Pipe with Pacific Crest Pipe Repair (http://www.piperepair.com/), fix our ripped seat with Stomp Design (http://www.stompdesign.com/), and a few other upgrades will certainly pop up along the way.
Lucas Oil
Krause Racings Sidewinder Racing Products

subset: commoncrawl


text:
U.S. Equal Employment
Opportunity Commission
Pact Establishes Ongoing Collaborative Relationship Between the Two Entities
DETROIT - The Detroit Field Office of the U.S. Equal Employment Opportunity Commission (EEOC) entered into a Memorandum of Understanding with the Consulate of Mexico in Detroit today. The agreement establishes an ongoing collaboration between these two entities to provide Mexican nationals with information, guidance, and access to resources on the prevention of discrimination in the workplace regardless of immigration status. Mexican Consul General Vicente Sanchez Ventura and Detroit Field Office Director Gail D. Cober signed the agreement. The Detroit Field Office is part of the EEOC's Indianapolis District.
"By signing this Memorandum of Understanding today with the Mexican Consulate, the Detroit Field Office solidified our continued and longstanding commitment to an underserved community," said Cober. "This MOU provides the opportunity for ongoing education, outreach and service by the EEOC to this community. We look forward to a long-lasting and significant partnership."
Under the terms of the MOU, the EEOC will expand its relationship with the Mexican Consulate by providing it with Spanish-language materials explaining the laws enforced by the federal agency. In addition, the EEOC will partner with the Consulate to provide information and training to remote, underserved areas of the state, including the western side of Michigan, where there are more migrant farm workers.
To kick off the newly formed collaboration, the EEOC and the Consulate created "Anti-Discrimination Information Week." Beginning Nov. 26, the EEOC will provide visitors to the Consulate with information on the laws enforced by the EEOC, specifically focusing on sexual harassment, national origin harassment, retaliation and Youth@Work, an EEOC campaign which deals with the problem of the sexual harassment of teenaged workers. At today's session, EEOC representatives spoke with more than 75 people.
Consul Vicente Sanchez Ventura said, "I'm looking forward to working with our new friends as we provide information to our people regarding the law. We may not all speak the same language, but we do have the same purpose, and that is to stop discrimination in the workplace."
The Mexican Consulate in Detroit provides services to preserve the rights of Mexican nationals residing in Michigan and Northern Ohio, much like the enforcement area of the Detroit Field Office.
The EEOC enforces federal laws prohibiting employment discrimination. Further information about the EEOC is available on the agency's web site at www.eeoc.gov.


text:
This is my sequel to Sehwag's analysis ( maybe i should analyse all players piece by piece but then i would fail all my courses). because i feel that it has to be addressed.
When i first laid eyes on McGrath, it was 1994 i think involving OZ and RSA in RSA...
i was but 13 years old then and only beginning to appreciate the finer points of the game.
Up until that point, my bowling hero had been Curtley Ambrose, catching the west indian at his furious best while i was actively watching cricket.
First thing that struck to me was "he is the white ambrose, albeit a vastly inferior copy".
Vastly i say, at that time, because McGrath wasnt that metronomically consistent with his line and length.
But certain similarities were evident right away. Both employed the same bowling principles- moving the ball came secondary to them in light to the priority of capturing the 'corridor of uncertainty'.
From then on, mcGrath improved vastly and in a matter of couple of seasons i saw a great improvement in line and length. Now he stands as a giant of the game who has been at worst even terms with the best of the best batsmen.
Much is said of McGrath recently, with some even insinuating that he is lucky.
Well i thikn he constructs his own luck really by his fanatic dedication to the corridor of uncertainty.
So what is the corridor of uncertainty ? its this belt of region that is half a foot or so outside the offstump with a width of few inches...
As a young upstart pace bowler, i came to appreciate the importance of that region very quickly.
For it is one region where the batsman can never be sure whether to leave or play consistently. A ball with a slight inswing can crash into your off stump and another with a slight outswing can kiss the edge and go to the slips.
As a batsman, i was always forced to play the ball ultra late when pitching on this zone- later than i would've liked, since one needs to really really judge it carefully.
With the ball pitching on stumps or with you you guage a ball easier. Simply because in a batsman's mind, protecting his wicket is the top priority(in most test match scenarios) and with a ball pitching on stumps, your immediate concern is to protect the wicket and its only the length and the swing that makes the determination whether to attack or defend.
When you pitch in on the corridor of uncertainty, the stakes are raised far higher for now you gotto really think about the line as well.
It is no mean feat either, given the nature of the corridor- too much swing either way and the ball moves into the comfort zone of the batsmen...too much outswing and it ends up a foot outside the offstump, ripe into the driving range. too much inswing and it gets into the pull/flick/leg drive' zone.
Indeed, the corridor of uncertainty is made for the type of bowlers who arnt big movers of the ball(that is, after pitching). The only bowlers i saw who consistently owned the corridor of uncertainty but were big swingers of the ball are Akram, Marshall and Hadlee.
I've often notice the batsmen being hurried for shots against mcGrath but far less often hurrying for shots against someone like say Gillespie/Walsh.... why is it so when Gillespie /Walsh are usually considerably faster than McGrath ?
Its because where the ball pitches - the corridor of uncertainty. Which makes the batsman hesitate an extra millisecond.
Another thing McGrath has is the ability to control his swing. That is one of the hardest abilities to master in all of cricket....to give a bit more swing than the last delivrey or a bit less swing.
You essentially do this by gripping the ball closer/further away from the base of your palm.
Swing is imparted by your hand rolling over the ball at the point of release. More surface to roll over( holding it deeper in your palm) often results in more torque generated and thus more swing and vice versa.
People who think this is easy should try it out on their backyards, where you are holding the ball closer to your palm yet making it come out from the tip of your fingers.
I've seen McGrath swing the ball decent amounts quiete a lot of times but he uses it extremely wisely. His stock delivery is the one that moves a little bit either way but every once in a while he throws in the one that swings half a foot or more.
Essentially that creates much more doubt for the batsmen.
In a sense, he is the Clarrie Grimmett/Anil Kumble of pace bowling, alongside Ambrose. Extravagant movement is irrelevant if you cannot use it wisely and minimal movement is extremely potent if you can control it and use it wisely.
Its essentially a mind job. With a standard swinger, i can guage the 'swing' of the ball after an over or two on a particular pitch and play accordingly. its like a mental calculation : " if he swings it in, it will move in about half a feet, if he swings it out, it will move about half a feet out. Gotcha'.
With McGrath, there is no 'Gotcha'. You have to be far more watchful because he varies his swing very efficiently. Perhaps the best exponent of this art was Akram but in my opinion, in the ability to vary the swing, McGrath isnt far behind.
Years earlier, when i took Kung Fu, i learnt that the easiest opponent is one who is confused. He is easier than someone far less competent but more confident. And essentially the fundamental philosophy of Kung Fu is to kill you or maim you. Then why do they have such elaborate hand and foot movements ? well one of the main reasons is to confuse the opponent. McGrath operates in a similar way. His objective is to confuse you and then land the killer blow. So yes, he profits predominantly from batsmen's indescritions. but he is manufacturing that indescrition by his elaborate and cunning bowling plan. McGrath is one of the exponents of mental warfare. His objective is to dismantle you by probing you and making you steadily unsure of yourself and represents a shining example of where mind can trump over sheer natural talent of blitzing past the batsmen through extravagent swing or pace ( not to say proponents of that kind of bowling wernt thinking bowlers mind you). Which is why there is only one way you can succeed against the likes of McGrath or Ambrose- you have to back yourself 110% and make yourself completely immune to their elaborate plans. That is unnatural to most human beings- to throw caution to the wind and go by instincts 100%. Which is why only the best of the best or the utterly reckless have had some success against these kind of bowlers.
Afridi has had some success against McGrath- far more often than players who are far better products than him. Why is that? because he backs himself 100% and takes the attack to McGrath come what may. The likes of Tendulkar and Lara have had up and down battles with McGrath and they've predominantly succeeded by playing aggressively. You cannot negotiate with McGrath on his terms. You are doomed if you do. You will have to negotiate on your terms. Indeed, one of the very few players i saw that had the measure of Ambrose was one Basit Ali.....another one, who backed himself 100% come what may.
That approach may backfire against others but against McGrath, that is the only way to go.
Some might ask 'well if Afridi or Basit Ali can deal with McGrath or Ambrose better than most, why arnt they as good as the tendulkars or the laras ?' that question deserves a thread of its own but one of the biggest answers is adaptability. You cannot play someone like mcGrath and Akram by the same philosophy. you will have to adapt. Essentially, this is the quality that the likes of Afridi and Basit Ali have little of.
Ally all this to McGrath's height and excellent bounce and you got a very potent bowler in the Curtley Ambrose mould. Which is why it always makes me smile when somoene calls harmison the white ambrose. The 'white ambrose' is none other than McGrath ! or perhaps Ambrose is the black McGrath- for their bowling styles are very similar- much more similar than Ambrose and Harmison for example.They both have similar stranglehold over the corridor of uncertainty, both rely predominantly on subtle variations and utmost of all, a relentless barrage by building pressure- they give you one bad ball every spell or so to punish and really make you earn your kudos instead of handing out a freebie here or there.
Another thing McGrath is excellent in, is wrist positioning. Essential goal is to have a good and neutral wrist position. This is the 'tennis toss/racket swing' analogy. The best servers are one who have the same toss/racket swing for the a number of different serves. McGrath has the same wrist positioning for his outswinger or his inswinger and essentially, you are pushed out of your comfort zone- its extremely hard to read someone like McGrath from his hand and you will have to base it completely from after the ball is released.
McGrath is a master of pushing you out of your zone and make you second guess.
That is his forte and given his expertise in it, i can almsot garantee that it will work in any era and any condition and against any batsmen more often than not.


text:
Get the protective qualities of a durable, weather-resistant stain without sacrificing style when you choose BEHR PREMIUM® Semi-Transparent Concrete Stain. This 100% acrylic formula is great on horizontal surfaces, and our selection of custom colors lets you bring the look of natural stone to any area of your home.
Click Here to see available colors.
Available In


text:
Mass grave from Abu Salim prison massacre found
Issued on: Modified:
Representatives of Libya's National Transitional Council said on Sunday that they had unearthed a mass grave of at least 1,200 prisoners slain by Muammar Gaddafi's regime following the 1996 Abu Salim prison uprising in Tripoli.
AP - A bone wrapped with rope and skull fragments scattered over a cactus-covered desert field are grim testament to a 1996 massacre of more than 1,200 prisoners by Moammar Gadhafi's regime.
Libyan officials announced Sunday that they found a mass grave believed to hold the remains of the victims outside the white walls of Tripoli's Abu Salim prison, where Gadhafi locked up and tortured opponents or simply made them disappear. Excavation has not begun, but several bone fragments and pieces of clothing already have been found in the topsoil.
Those bones could offer some of the most damning evidence of the brutality of Gadhafi's nearly 42-year rule, and allow relatives of the victims to learn the truth about their fates after years of regime stonewalling. They also hold symbolic importance to the Libyan revolution itself, which was sparked in mid-February in the eastern city of Benghazi by demonstrators demanding the release of a prominent lawyer representing the families of slain inmates.
"We have discovered the truth about what the Libyan people have been waiting for for many years, and it is the bodies and remains of the Abu Salim massacre," military spokesman Khalid al-Sherif said at a news conference.
Soldiers and relatives sifted through the sand during a visit Sunday, displaying a pair of pants and other remains for reporters brought to the site. One bone had a rope tied around it, possibly from a prisoner who had been bound. A group of former rebels at the site shouted "Allahu Akbar" -- "God is great" -- as relatives wandered through the area.
Al-Sherif and members of a committee tasked with finding mass graves said they were confident the field holds the remains of the prison massacre victims based on information from witnesses, including former security guards who have been captured in the fight against the authoritarian leader.
Gadhafi has been in hiding since revolutionary forces swept into Tripoli in late August, though his supporters continue to fight in several parts of the country. He, one of his sons and his intelligence chief face international charges of crimes against humanity for the regime's bloody effort to wipe out anti-government protests this year, but not for earlier killings.
The June 1996 massacre occurred after inmates rioted to protest their treatment. Guards responded by opening fire on them. Al-Sherif said authorities believe the bodies were kept in the prison before they were buried in 2000.
The killings became a focal point for Gadhafi's opponents. Most of the inmates were political prisoners, including Islamic clerics and students who had dared to speak against the erratic leader, who wielded almost complete control over the oil-rich North African nation.
For many years, families of those killed were not told the truth and were barred from visiting, but reports about the shootings began to emerge after one of the guards spoke out and human rights groups began to investigate. Gadhafi had agreed to pay the families compensation, but activists insisted that those responsible be brought to justice.
Ibrahim Abu Shima, a member of the committee looking for mass graves, said investigators believe 1,270 people were buried in the field, based on a list of prisoners reported killed. He stressed that Libya needed help from the international community to find and identify the remains because they lacked sophisticated equipment needed for DNA testing.
The Geneva-based International Committee of the Red Cross has said at least 13 mass graves have been found in Libya since Tripoli fell.
Soaade Messoudi, a Red Cross spokeswoman in Tripoli, said the organization dispatched two forensics experts this month to help with the management of human remains. But she said the organization is not involved in collecting evidence that could be used in any legal proceedings.
"We urge the people to be careful in uncovering human remains," she said. "This could really affect any possible recovery of the identity of these missing persons."
The New York-based group Human Rights Watch has urged Libya's transitional government to keep mass grave sites secure and to stop exhuming remains until it can be done properly.
Sami al-Saadi, who said he lost two brothers in the massacre and was himself imprisoned at one point, said it was important to bring closure for relatives who have gone years without knowing where their loved ones are buried.
He said he had rejoiced when revolutionary forces succeeded in ousting Gadhafi, but the memory of his brothers Mohammed and Adel cast a shadow over the celebrations.
"The people who are responsible for this massacre should be brought before a judge and we can give now sure evidence to all the world about Moammar Gadhafi and how this dictator led this country and its people," al-Saadi said as he stood in the field, walls lined with barbed wire towering behind him.
Mabrouka al-Sayed said she has waited years for news of her son Abdul-Aziz, who was believed killed in the massacre. She said representatives from the prison claimed he died after becoming ill but she didn't believe them. They never returned his body, giving her only a death certificate.
"I've been in deep sadness because I didn't know where my son was," she said as she sat in a pickup truck with her grandson while male relatives went to see the field. "I feel great relief now that I know where his burial place is."
The prison itself, near what had been Gadhafi's sprawling compound, sits empty now. Its inmates were freed amid fierce fighting as rebels swept Gadhafi's regime from the capital.
Daily news briefReceive essential international news every morningSubscribe


text:
First Jobs of Famous Musicians
Before these musicians became megastars, they were ordinary people making a living with ordinary and, in some instances, unusual first jobs.
Yahoo On the Road will be traveling across the country and stopping at college campuses along the way for a concert series featuring Bleachers, Charli XCX, Panic! At The Disco, and more. Visit Yahoo On the Road for the tour schedule and find out how to get tickets to a show near you!


text:
By using recycled paper, Phthalate and Benzene Free inks on your project you can help make a difference in creating a cleaner and greener planet. All of our baseball cards are produced on 100% recycled stock and all papers are FSC, SFI or PEFC Certified.
Copyright © 2008 Mercer Color, All rights reserved


text:
Technologies that Accenture Strategy calls "xR"—which include virtual reality and augmented reality—have been around for years. But new opportunities are on the way. As these technologies grow more sophisticated, they are enabling a broader shift from 2D to 3D—not just for gamers, but also for enterprise-grade solutions. The seismic impact of 3D enterprise solutions will expand far beyond the xR use cases of today.
The move from 2D to 3D will initiate a fundamental shift in how people expect to interact with real and digital objects across all digital devices, and that has significant enterprise implications.
Investor interest in xR technologies is growing at a record pace. xR funding increased 140% from 2015 to 2016.
The business opportunity of xR technologies is significant as they are translated into 3D solutions—even more significant than some might believe.
How can your organization take advantage of the move from 2D to 3D? Here are a few things to keep in mind:


text:
KonFiiDent (16 Yr Old Toronto Artist) - Cover Over Nicki Minaj "Fly" & Wiz Khalifa "When Im Gone" [Unsigned Hype]
"- *Directed/Edited by : KonFiiDent
*FOLLOW KonFiiDent On Twitter :
*FACEBOOK - www.facebook.com/KonFiiDent
*SUBSCRIBE - www.youtube.com/konfiidentmuzik
***CATCH KonFiiDent LIVE IN MIAMI MEMORIAL WEEKEND**" [m]
Please click the "Report" button below if the video on this page is not working properly.
Comments will only be displayed by verified emails. No Spamming or Racism.


text: Toggle navigation Search Jobs Sign Up Login So sorry, that position has been filled. Please go ahead and submit your application. We may have other positions that would be the perfect fit for you. Alternatively, you may want to apply to one of the following related jobs: There are currently no related jobs. Please sign up for Job Alerts. Loading... Apply for the Surg Tech position Apply with your Resume Surg Tech Melrose, MA 02176 Shift Type: Days Specialty: Surg Tech Job Number: JOB-00252286 Assignment Length - In Weeks: 13 Hours per Week: 36.0 Shifts per Week: 3 NOTE: This position is a travel staffing assignment FlexCare is a nationwide leader in the staffing of travel nurses and clinicians. With access to thousands of facilities around the country, our mission is to deliver premier travel staffing … More Information » Job Board Apply Standard Form *Denotes a Required Field First Name* First Last Name* Last Email* Phone* Upload Resume Choose from Google Drive Please submit your resume in either Microsoft Word or PDF format. (1MB max) Add Cover Letter (optional) Cover Letter Submit This Information


text:
A stuffing recipe like this one is hard to find. While most stuffings use bread, this is based around gluten free cornbread. The use of fresh sage and poultry seasoning help make this dish even more delicious.
Want some gluten free pie this Thanksgiving? We're giving away our GF Pie Cooking Class, which has all the tutorials, videos and recipes you need to handle the holidays like a rockstar!
My grandmother made the best Cornbread Dressing. I loved helping her crumble up the stale hamburger buns to mix with the cornbread and gushing my fingers through the gloopy mixture of cornbread, spices and chicken stock to make sure that everything was well mixed.
When John started a gluten free diet five years ago, I started making the cornbread dressing from Joy of Cooking because it didn't call for any breadcrumbs. It's a good recipe. Really, it is. But it's not my grandmother's.
So this is my attempt.
I did a trial run Sunday night. It was too moist, the texture wasn't quite right, and John didn't really like it. I've made some alterations and the recipe below is what I'll be cooking on Thursday. Many thanks to Ginger at Gluten Free in Georgia (and Florida) for her dressing recipe. It reminded me of some things I'd forgotten about my Grandmother's recipe and sent me in the right direction.
* I used leftover heels from loaves of Gluten Free Sandwich Bread and Brown Rice & Buckwheat Sandwich Bread that I had frozen. A short defrost in the microwave and a few pulses with the Cuisinart and I had some lovely breadcrumbs =)
** In the test run I used six cups of stock and the dressing was too moist. I usually use two cups of stock which makes a dressing that is drier than I like, but perfect for John. Thursday I'll be making it with four cops of stock, so that's what I put here. If you're the least bit hesitant about four cups, then just use two and make extra gravy =)
Now that you've got this recipe down, how about some gluten free pie for Thanksgiving? Take a GF Pie Cooking Class (complete with tutorials, video guides, and recipes) and handle Thanksgiving like a rockstar!


text:
Peter Silk
Online Shop
Peruse and purchase from the collection of wonderful stylish interior items, if you can't find something you have seen in our showroom please contact us on 01439 771500 as not all of our products are online. International delivery is available.
Interior Design
Peter Silk is renowned for exquisite quality so you can be sure that you will receive the best possible service from Peter. We help with any interior design queries from a new pair of curtains through to an entire re-style of your home. We've even designed a hotel suite inside a London bus!
Stocking a wonderful selection of wallpapers, truly unique and very stylish wallpapers from over 40 brands. A free sampling service is available. We often feature any new arrivals on our Facebook and instagram pages.
Bespoke Services
Bespoke upholstery including chairs & sofas , curtains, blinds, pelmets, footstools, headboards, fabric walling and antique restoration.
Antique Kilim Rugs & Footstools


text:
My Mother Path
My path through discovering myself as a mother, teacher and self.
Dinner Table
I love dinner table time. Always have. It's a time where we all sit around and talk, laugh, throw each other under the bus and have deep conversations.
A couple Saturdays ago was one of my favorite nights. The kids were all talking about stuff, nothing out of the ordinary, just general stuff. Then my youngest (who will be 10 in a couple weeks) says that she sometimes sees us and God together, as if the Earth is inside God's stomach and when someone dies he is given birth again through God. Hmmmm, that was an interesting concept, one that I wouldn't have thought that she would think of.
Immediately after, my 14 year old son pipes in and says that he thinks that God was an actual person that humans met a long, long time ago, like the beginning of time. He goes on to say that he thinks that it is in our genetic make-up the memory of this person. Again, deep discussions. This one line of discussion led into talking about transplant recipients and how they can have genetic memories of the donor.
Another night at the dinner table brings a different conversation topic from my youngest. She suddenly blurts out "What if there was another 'me' doing the same thing in a different place like Delaware?" Hmmm, "Like a parallel universe?" I ask. I get a blank look from her and a look from my husband as if this might be too much and too deep for her at this moment. *sigh*
She then went on saying that if she ran into this other her, she would bring her home so she can live with us. I asked her how we would know which is the real her. She said that she would be the real one and the other would be the fake. My husband asks, "but how do you know that she's the fake one?" My daughter looked at us quizzically. I told her "what if you are the fake one and the other one is really the real one?" That got the gears rolling and she sat a bit quiet. She popped up a few minutes later saying "I didn't say that it would really happen, it just popped into my head. You know, these things just pop into my head."
Geesh, she's 10 and already these ideas are 'popping' into her head. I'm trying to remember how old I was when I was questioning Christianity and God and the thought of humans being created in "God's" image and the Darwinian side of me questioning at what stage would you consider "God's" image. I know I drove my father batty over those questions.
My questions continue and I'm glad to see that one of my kids is comfortable enough to open up and ask questions as deep as she can. I don't mind one single bit. I just wish I still had my dad around to bounce my own personal questions off.
My latest and greatest query….I know of places being portals for spirits to move through…but can a person be a portal of sorts as well? Maybe I should ask my daughter.
Monday, 23 September 2013
Thank you! Great column. I worked with middle and high school kids for over 30 years and have found recently the younger kids are just opening my mind in new ways with their perspectives. Love your portal question.· Laurie Novotny likes this comment.
Please login first in order for you to submit comments


text:
Please Visit Our Sponsor
Gift Shop
Welcome to Yutopian's Health Page
The western medical world has recently discovered the benefits of natural foods like Soy bean (e.g. tofu), garlic and ginger, etc in combating diseases like cancer and heart disease, something that has been known by the Chinese for thousands of years. On this page, Yutopian would like to introduce various NATURAL CHINESE REMEDIES for common symptoms and diseases*. The remedies are taken from ancient Chinese medicine books and have been proven to work by millions of Asians. Try the recipes; we think you will agree with us that natural remedies are better for your health.
We will add natural remedies on a weekly basis. Please check back often. To Order Oriental Health Books: click here
Common Colds, remedy 1
Coughs, remedy 1
Head Aches, remedy 1
Healthy Skin (get rid of "black heads" and "liver spots"), remedy 1
High Blood Pressure, remedy 1
High Cholesterol, remedy 1
Heart Burn, remedy 1
Impotence, remedy 1
Menstrual Problems (Irregularity), remedy 1
Menstrual Problems (Pain), remedy 1
Nose Bleed, remedy 1
Stomach Aches, remedy 1
Weight Reduction, remedy 1
*Disclaimer- the information provided on this web site is strictly for informational purposes. By no means should it be used as a substitute for your physician's advice. Please consult your physician before using these remedies. Some of the symptoms discussed on this page may be indications of serious underlying illnesses. Please consult a physician immediately if the symptoms persist or worsen.
Bookmark This Page
Send This Page To A Friend
Place Your Ad Here For As Little As $1 Per Day
About Us | Add URL | Advertise with Us | Auction | Awards | Contact Us | Discussion Forum | Links | Search This Site | Send This Page | Shop | Top Ten Sites
Copyright 2000 Yutopian, All Rights Reserved


text:
Claude George Lacy passed away peacefully at his home on September 29, 2013. He was born on February 15, 1931 in Dighton KS, the second child of Earl and Garnette Lacy.
Claude spent his early childhood traveling around the mid-west with the carnival, as his father was a professional wrestler.
They traveled and lived out of a small, beat-up trailer that they pulled with their Diana Eight.
Claude and his older brother, Earl, would box each other to warm up the carnival crowd before their father took to the ring.
In Palisade, CO, Claude entered high school and began to learn the craft of amateur wrestling. He picked up well on the sport, and by the time he was finished with high school, he was a three-time state champion.
In 1948 he won the District 13 Olympic Wrestling Tryouts in Fort Collins, CO. This guaranteed him a spot at the national tryouts in Ames, IA to make the Olympic team that would compete in London later that summer. Money was tight, so he decided not to go.
Not only did he wrestle, but he was also a starter on the basketball team and was a third-team all state football player, playing right-end.
In Claude's final years of high school, the family moved to Wellington, UT. During this period he met and married Thelma Mae Nelson. While living in Carbon County, their three sons Mike, Steve and Dave were born.
In 1959, Claude applied and was hired by the Utah Highway Patrol. The job located the young family to Blanding, UT. This was the beginning of a long career in law enforcement.
Claude adapted well to Blanding, where the people came to respect him. In Blanding, their fourth child, Jim, was born.
After a full career of 27 years with the highway patrol, including two years as a Sergeant in Moab, Claude was elected county Sheriff. During two terms, he saw the completion of a new public safety building in Monticello, which was begun by Rigby Wright.
His wife's declining health influenced his decision to retire in 1994. As she became worse with Alzheimers, he continued to care for her as long as he could even at the neglect of his own health.
When he reluctantly placed her in a longterm care facility he continued to visit her two or three times a day. Thelma passed away in 2007.
Claude suffered from diabetes, along with several broken bones. Many times we thought it was his time to go, but he rebounded to show the physical toughness he had since a kid.
Even in his weakened condition, he was always genuinely concerned with how everyone else was doing. Claude enjoyed his great-grandchildren. He remembered their names well and always handed out one-dollar bills.
Claude is preceeded in death by his parents, brother Earl, sister Mert, son Jim, and great-granddaughter Brittany.
He is survived by his sons Mike (Toni) Lacy of Blanding; Steve Lacy of Salt Lake City, UT; Dave Lacy of Blanding; Jim's wife Kimm of Monticello, UT; his sister Alice (Sheldon) Baker of Beaver Dam, AZ; 11 grandchildren; and 30 great-grandchildren.
Funeral services were October 4, 2013. Intered in Blanding Cemetery.
Card of thanks
The family of Claude Lacy thanks all those who have shown kindness through word and deed. We appreciate so much the professional staff at Blue Mountain Dialysis, who became his good friends. We also thank the staff at the Four Corners Care Center, who are true "caregivers" in times of need. To all the doctors, physical and occupational therapists, and medical personnel who have made Claude's life a little easier through the past few years, thank you so much.


text:
It's difficult to overstate the beauty of the Lake District. The area's sparkling lakes, secret valleys and picturesque stone-built villages have captivated generations of visitors and inspired many famous artists.
Wast Water, Lake District
Lake District
- A place of superlatives, the Lake District National Park is the largest in the UK and boasts England's highest mountain – Scafell Pike – and its largest lake – Lake Windermere.
- The area has long been a magnet for artists and writers. Visit Hill Top cottage to see where Beatrix Potter penned many of her famous works, or retrace the footsteps of William Wordsworth at his home Dove Cottage, now a quaint museum packed full of memorabilia.
- Billed as the 'Gateway to the Lakes', Kendal in South Cumbria makes a natural first stop on your Lake District adventure while the market town of Keswick provides a great base for exploring the northern lake and the beauty of nearby Borrowdale.
- Did you know? You can fly 200m across the top of Grizedale forest with Go Ape's tree top adventure course. Designed to entertain tarzans big and small, expect to traverse the tree canopy on zip wires and aerial walkways.
- Be sure to check out Go Lakes for more info on places to stay and events in the area.
- The Lake District is in Cumbria, North West England. It's around 3.5 hours away from London by train and 1.5 hours from Manchester International airport.
Discover Lakes Culture
The Lake District, travel highlights
ShowMeBritain - Lake District


text:
I am very new to forums- just bought the software last week. But we do have over 80 members in just one week. Dodge City folk just spreading rumors and gossip.
working on styles
Welcome to the vBulletin support forums! In our community forums you can receive professional support and assistance with any issues you might have with your vBulletin Products.
Useful Links for Guests:
If you are having problems posting in the relevant areas for your software, please see this topic.
In honor of President's Day on Monday, February 17th, the phone sales and support lines will be closed. We will re-open for business at 9:00 a.m. Pacific Time on Tuesday, February 18th. Ticket and Forum Support will be available during this time.
We apologize for any inconvenience.
We process personal data about users of our site, through the use of cookies and other technologies, to deliver our services, personalize advertising, and to analyze site activity. We may share certain information about our users with our advertising and analytics partners. For additional details, refer to our Privacy Policy.
By clicking "I AGREE" below, you agree to our Privacy Policy and our personal data processing and cookie practices as described therein. You also consent to the transfer of your data to our servers in the United States, where data protection laws may be different from those in your country.