BusinessObjects Board

Audit data queued up

How to Play Ping-Pong

Ping-pong, also known as Table Tennis, is like the name suggests, to put it simply a tennis table version. It can be played alone or with a partner. This game, in my opinion, is very addicting if you play with people at or above your level. This article will go through all the basic rules of playing table tennis as well as going through some techniques you can use in actual competition. This version of the table tennis table is to use non-compete to the rules will not be strict.

  1. Or play alone or get a partner to play 1vs1 or 2vs2. The rules will not be different, just the rotation of the ball that the players receive. To make it simple, we’ll go with 1vs1.

  1. You can use any method to find out who will serve the ball first. Once you choose who to serve, that person will play first. Serve by throwing the ball a bit and hitting it. The ball must be returned once on the face of your racket and then be struck to the opponent’s side at least once for it being considered a legal service. If it touches the net but still makes it through, the serve is considered a “give” and you will have to re-serve. You can have as many options as you want in the game. At PingpongClan you can find out the best ping pong table.

  2. After you hit the ball, the opponent will return. For it is considered a legal return, you will have to hit the ball over the net without it touching your face of the court. This continues until a person can not get the ball across the net or hit it off the pitch. This point is then given to the opposing player.

  3. Usually, the game is held until someone reaches 11 points. If both players score 10 points, you can only win the “win-2” rule. For example, if you both have 10 points, then you will need to add 2 more points before your opponent scores, making it 12 to 10.

  4. There are many ways to get points. From a hitting perspective, after serving, as long as the ball ends at the opponent’s side, it is considered a point. For serving, you can hit the ball with a top spin or a slice to make the ball go in different directions with different bounces after the ball hits you.

This is a game that many people like because it is a very easy to learn game but will take years to master. Learn how to play this game and teach your friends how to play.

TVLesson.com is a community-based education for all users. Many different types of how-to lessons can be searched in over 14 different types. We welcome users to sign up and join the TV Lessons community so they can help us grow and refine the TV Lessons experience for the needs of the community. Join us and share your own wisdom and know-how by uploading your video. Many lessons can be found in many different channels. Sharing a lesson can be a great way to connect in the community and to increase your knowledge. All lessons are carefully selected and filtered to provide the best instructional videos. With useful information about ping pong paddle, my article will help you solve your problem.


victornguyen (BOB member since 2018-10-18)

In CMC under Auditing check the duration of "Last Polling Cycle Duration (Seconds) 180 " this is the default setting and if you haven’t changed the CMS Server tries to write Audit files every 3 Minutes.

Once you’ve correctly configured Connections details CMS should try to write all pending events. Depending on the number of Events in backlog wait for some time maybe ~15 Minutes and check if there’s any difference.

Good luck


viru4808 :australia: (BOB member since 2008-01-09)

[Moderator Note: Moved from General Discussion to Auditor]


Marek Chladny :slovakia: (BOB member since 2003-11-27)

Depends on the version. In XIr2 and XI3 the staged audit data would be loaded upon CMS restart but not in BI4.

You can load it manually, but it takes some massaging. In particular, the event time stamp is recorded as milliseconds from some seemingly arbitrary date/time. Once you find that date/time you can use it it to calculate the actual event date/time.

Joe


joepeters :us: (BOB member since 2002-08-29)

Hi Joe,

I’m curious – what method do you use to do this:


Atul Chowdhury (BOB member since 2003-07-07)

Java… Just a program that opens each text file in the directory, does the magic with the start date, and inserts the results into ads_event and ads_event_detail. I also have to do a couple of lookups in the CMS to get the user name and object name from CUIDs. Here’s the meat of the program:

	    PreparedStatement psInsertEvent = conn.prepareStatement("insert into ads_event_import (event_id,cluster_id,server_id,service_type_id,client_type_id,start_time,duration_ms,added_to_ads,user_id,user_name,session_id,action_id,sequence_in_action,event_type_id,status_id,object_id,object_name,object_type_id,object_folder_path,top_folder_name,top_folder_id,folder_id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
	    PreparedStatement psInsertDetail = conn.prepareStatement("insert into ads_event_detail_import (event_id,event_detail_id,event_detail_type_id,bunch,event_detail_value) values (?,?,?,?,?)");

		File dir = new File(auditPath);
		String line;
		Integer fileCounter = dir.listFiles().length;
		
		for(File file : dir.listFiles())
		{
			fileCounter--;
			if(file.getName().startsWith("done-"))
				continue;
			Integer lineCounter = 0;
            try (FileReader fileReader =  new FileReader(file);
    			BufferedReader bufferedReader =  new BufferedReader(fileReader))
            {

				while((line = bufferedReader.readLine()) != null) 
				{
					System.out.println("File " + fileCounter + ", line " + lineCounter++);
					String splitted[] = line.split("\t");
					String eventID = splitted[0];
					Integer eventTypeID = new Integer(splitted[1]);
					String sessionID = splitted[2];
					String clientTypeID = splitted[3];
					String objectCUID = splitted[4];
					String serviceTypeID = splitted[5];
					Integer something = new Integer(splitted[6]);
					Long startTime = new Long(splitted[7]);
					Integer duration = new Integer(splitted[8]);
					String userCUID = splitted[9];
					String actionID = splitted[10];
					Integer sequenceInAction = new Integer(splitted[11]);
					Integer statusID = new Integer(splitted[12]);
					String userName = null;
					
					IInfoObject ioUser = infoStore.getIoBySQL("select si_name from ci_systemobjects where si_cuid = '" + userCUID + "'");
					if(ioUser != null)
						userName = ioUser.getTitle();
					
					String details = null;
					if(splitted.length > 13)
						details = splitted[13];

					Date adjStartTime = null;
					
					if(!timeOffsets.containsKey(something))
						throw new Exception ("Unexpected something: " + something);

					adjStartTime = new Date(startTime + timeOffsets.get(something));

					String objectName = null;
					String objectTypeID = null;
					String objectPath = null;
					String topFolderName = null;
					String topFolderID = null;
					String folderID = null;
					
					IInfoObject ioObject = infoStore.getIoBySQL("select si_name,si_kind from ci_systemobjects where si_cuid = '" + objectCUID + "'");

					if(ioObject != null)
					{
						if(!ioObject.properties().containsKey(CePropertyID.SI_KIND))
						{
							System.out.println("Skipping object: " + ioObject.getTitle());
							continue;
						}

						objectName = ioObject.getTitle();
						objectTypeID = infoStore.getIoBySQL("select si_cuid from ci_systemobjects where si_plugin_object = 1 and si_kind = '" + ioObject.getKind() + "'").getCUID();
						
						IInfoObject tempO = ioObject;
						while(tempO.getParentID() != 4 && tempO.getParentID() != 0)  
						{
							tempO = tempO.getParent();
							if(folderID == null)
								folderID = tempO.getCUID();
							
							if(objectPath == null)
								objectPath = "/" + tempO.getTitle() + "/";
							else
								objectPath = "/" + tempO.getTitle() + objectPath;
							
							topFolderName = tempO.getTitle();
							topFolderID = tempO.getCUID();
						}
					}

joepeters :us: (BOB member since 2002-08-29)

Good stuff, Joe -

Thanks!


Atul Chowdhury (BOB member since 2003-07-07)