. */ # Known/outstanding issues: # [UNCONFIRMED ISSUE] Plugin seems to keep pinging when importing an XML/WXR file even if pinging is disabled # Plugin does not seem to report any errors if it cannot write to the log file (see E2 blog for example) function SUP_add_options_page(){ if(function_exists("add_options_page")) add_options_page("UP Smart Update Pinger", "UP Smart Update Pinger", 5, basename(__FILE__), "SUP_show_options_page"); } function SUP_show_options_page(){ global $logfile; $ping = get_option("SUP_ping"); $pinglog = get_option("SUP_pinglog"); $uris = get_option("ping_sites"); $forcedpings = false; $SUP_output_log=''; $pingservicesnow = "Ping Services Now!"; $deletelogfile = "Delete Log File"; if(isset($_POST["ping"]) && $_POST["ping"] == $pingservicesnow){ $forcedpings = true; SUP_log(SUP_ping_services($forcedpings).strftime("%D %T")."\tForced pinging services (Homepage)\n\t─────\n"); }elseif(isset($_POST["submit"])){ $uris = $_POST["uris"]; $ping = 0; if($_POST["ping"] == 1) $ping = 1; $pinglog = 0; if($_POST["pinglog"] == 1) $pinglog = 1; update_option("SUP_ping", $ping); update_option("SUP_pinglog", $pinglog); update_option("ping_sites", $uris); echo '

Options saved.

'; }elseif(isset($_POST["delete"]) && $_POST["delete"] == $deletelogfile){ $fh = @fopen($logfile, "w"); if(false === @fwrite($fh, strftime("%D %T")."\tLog file deleted\n\t─────\n")){ update_option("SUP_error", 1); }else{ update_option("SUP_error", 0); } @fclose($fh); } $checked1 = ''; if($ping == 1) $checked1 = 'checked="checked"'; $checked2 = ''; if($pinglog == 1) $checked2 = 'checked="checked"'; echo '

Ultimate Plugins Smart Update Pinger

Click here for installation instructions

Click here for usage instructions

Click here for updated versions

Click here for comments and suggestions

URIs to Ping

The following services will automatically be pinged/notified when you publish normal or future timestamped posts. Not when you edit previously published posts, as WordPress does by default.

This plugin also fixes an issue with the default extended ping programming in Wordpress and pre-2.1 versions of Smart Update Pinger (it now includes the url of the new post).

NB: this list is synchronized with the original update services list.

Separate multiple service URIs with line breaks:

Ping log

These are the last 100 actions performed by the plugin. In reverse chronological order for easier reading (latest ping first).

'; SUP_get_last_log_entries(500); echo '

'; } # telling WordPress to ping if the post is new, but not if it's just been edited function SUP_ping_if_new($id){ global $wpdb, $post_title; $SUP_output_log="\t─────\n"; $SUP_ping_result=''; $forcedpings = false; if(get_option('SUP_ping') == 1 && trim(get_option('ping_sites')) != ""){ # fetches data directly from database; the function "get_post" is cached, and using it here will get the post as is was before the last save $row = mysql_fetch_array(mysql_query( // "SELECT post_date,post_modified,post_title,guid FROM $wpdb->posts WHERE id=$id")); "SELECT post_date,post_modified,post_title FROM $wpdb->posts WHERE id=$id")); # if time when created equals time when modified it is a new post, otherwise the author has edited/modified it if(!$row["post_title"]){ $SUP_output_log=strftime("%D %T")."\tNOT Pinging services (ERROR: YOU HAVE FORGOTTEN TO ENTER A POST TITLE) ...\n".$SUP_output_log; }else{ if($row["post_date"] == $row["post_modified"]){ $SUP_output_log=strftime("%D %T")."\tPinging services (New normal post: “".$row["post_title"]."”) ...\n".$SUP_output_log; $SUP_output_log=SUP_ping_services($forcedpings,get_permalink($id)).$SUP_output_log; # Try commenting the line above, and uncommenting this line below if pinging seems to be out of order. Please notify the author if it helps! # generic_ping(); }else{ // Post has been edited or it's a future post // If we have a post title it means that we are in the normal WP loop and therefore it was an edit (not a future post) if($post_title){ $SUP_output_log=strftime("%D %T")."\tNOT Pinging services (Existing post was edited: “".$row["post_title"]."”) ...\n".$SUP_output_log; }else{ $SUP_output_log=strftime("%D %T")."\tPinging services (New timestamped post: “".$row["post_title"]."”) ...\n".$SUP_output_log; $SUP_output_log=SUP_ping_services($forcedpings,get_permalink($id)).$SUP_output_log; # Try commenting the line above, and uncommenting this line below if pinging seems to be out of order. Please notify the author if it helps! # generic_ping(); } } } }else{ if (trim(get_option('ping_sites')) != ""){ $SUP_output_log=strftime("%D %T")."\tNOT Pinging services (WARNING: DISABLED BY ADMINISTRATOR)\n".$SUP_output_log; }else{ $SUP_output_log=strftime("%D %T")."\tNOT Pinging services (WARNING: EMPTY PING SERVICES LIST)\n".$SUP_output_log; } } SUP_log($SUP_output_log); } # More or less a copy of WP's "generic_ping" from functions.php, but uses another function to send the actual XML-RPC messages. function SUP_ping_services($forcedpings,$SUP_guid = ''){ $SUP_output_log=''; #$services = get_settings('ping_sites'); #UP - 17.07.07 - get_option is newer/better then get_settings $services = get_option('ping_sites'); $services = preg_replace("|(\s)+|", '$1', $services); // Kill dupe lines $services = trim($services); if ( '' != $services ) { $services = explode("\n", $services); foreach ($services as $service) $SUP_output_log=SUP_send_xmlrpc($forcedpings,$SUP_guid,$service).$SUP_output_log; } return $SUP_output_log; } # A slightly modified version of the WordPress built-in ping functionality ("weblog_ping" in functions.php). # Original version: #function weblog_ping($server = '', $path = '') { #global $wp_version; #include_once(ABSPATH . WPINC . '/class-IXR.php'); #// using a timeout of 3 seconds should be enough to cover slow servers #$client = new IXR_Client($server, ((!strlen(trim($path)) || ('/' == $path)) ? false : $path)); #$client->timeout = 3; #$client->useragent .= ' -- WordPress/'.$wp_version; #// when set to true, this outputs debug messages by itself #$client->debug = false; #$home = trailingslashit( get_option('home') ); #if ( !$client->query('weblogUpdates.extendedPing', get_option('blogname'), $home, get_bloginfo('rss2_url') ) ) // then try a normal ping #$client->query('weblogUpdates.ping', get_option('blogname'), $home); #} # This one uses correct extendedPing format (WP does not), and logs response from service. function SUP_send_xmlrpc($forcedpings,$SUP_guid = '',$server = '', $path = ''){ global $wp_version; $SUP_output_log=''; include_once (ABSPATH . WPINC . '/class-IXR.php'); // using a timeout of 5 seconds should be enough to cover slow servers (changed from 3 to 5) $client = new IXR_Client($server, ((!strlen(trim($path)) || ('/' == $path)) ? false : $path)); $client->timeout = 5; $client->useragent .= ' -- WordPress/'.$wp_version; // when set to true, this outputs debug messages by itself $client->debug = false; $home = trailingslashit( get_option('home') ); # The extendedPing format should be "blog name", "blog url", "check url" (the new URL), and "feed url". # Related Website(s) # http://www.weblogs.com/api.html # An example: # Someblog - Title # http://spaces.msn.com/someblog - Home URL # http://spaces.msn.com/someblog/PersonalSpace.aspx?something - Check/New URL # http://spaces.msn.com/someblog/feed.rss - Feed # Changed the following line therefore: # if($client->query('weblogUpdates.extendedPing', get_settings('blogname'), $home, get_bloginfo('rss2_url'), get_bloginfo('rss2_url'))) if ($forcedpings){ # If this is a forced ping it's better to use a regular ping for the homepage without an update URL (safer) if($client->query('weblogUpdates.ping', get_option('blogname'), $home)){ $SUP_output_log=strftime("%D %T")."\t► [Regular Ping] ".$server." was successfully pinged\n".$SUP_output_log; if (get_option('SUP_pinglog') == 1){ $SUP_output_log=strftime("%D %T")."\t►► Blogname: '".get_option('blogname')."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► Homepage: '".$home."'\n".$SUP_output_log; } }else{ $SUP_output_log=strftime("%D %T")."\t► ".$server." could not be pinged. Error message: “".$client->error->message."”\n".$SUP_output_log; } }else{ if($client->query('weblogUpdates.extendedPing', get_option('blogname'), $home, $SUP_guid, get_bloginfo('rss2_url'))){ $SUP_output_log=strftime("%D %T")."\t► [Extended Ping] ".$server." was successfully pinged\n".$SUP_output_log; if (get_option('SUP_pinglog') == 1){ $SUP_output_log=strftime("%D %T")."\t►► Blogname: '".get_option('blogname')."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► Homepage: '".$home."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► Updated : '".$SUP_guid."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► RSS URL : '".get_bloginfo('rss2_url')."'\n".$SUP_output_log; } }else{ # pinging was unsuccessful, trying regular ping format if($client->query('weblogUpdates.ping', get_option('blogname'), $home)){ $SUP_output_log=strftime("%D %T")."\t► [Regular Ping] ".$server." was successfully pinged\n".$SUP_output_log; if (get_option('SUP_pinglog') == 1){ $SUP_output_log=strftime("%D %T")."\t►► Blogname: '".get_option('blogname')."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► Homepage: '".$home."'\n".$SUP_output_log; } }else{ $SUP_output_log=strftime("%D %T")."\t► ".$server." could not be pinged. Error message: “".$client->error->message."”\n".$SUP_output_log; } } } return $SUP_output_log; } $post_title = ""; # Receives the title of the post from a filter below function SUP_post_title($title){ global $post_title; $post_title = $title; return $title; } # Log $logfile = ABSPATH . 'wp-content/plugins/ultimate-plugins-smart-update-pinger/ultimate-plugins-smart-update-pinger.log'; function SUP_log($SUP_log_output){ global $logfile; $logerror = 0; $fh = @fopen($logfile, "a"); if(false === @fwrite($fh, $SUP_log_output)){ update_option("SUP_error", 1); }else{ update_option("SUP_error", 0); } @fclose($fh); } function SUP_get_last_log_entries($num){ global $logfile; $lines = @file($logfile); if(get_option("SUP_error") == 1){ $fh = @fopen($logfile, "a"); if(false === @fwrite($fh, "")){ echo "Error writing log file (".$logfile."). Most likely your logfile (".$logfile.") is write-protected and no log data can be saved (change the rights of this file to 777), or alternatively this could mean that you have manually removed the log file, or that you have changed the directory or file name of the plugin (they both should be 'ultimate-plugins-smart-update-pinger')"; }else{ // Original: $lines = array_slice($lines, count($lines) - $num); // Modified to show in reverse order (easier for reading) $lines = array_reverse(array_slice($lines, count($lines) - $num)); $msg = ""; foreach($lines as $line){ $msg.=trim($line)."
"; } echo $msg; } @fclose($fh); }else{ if($lines === false){ echo "Error reading log file (".$logfile."). Most likely you have manually removed the log file, or alternatively this could mean that the logfile (".$logfile.") is read-protected (change the rights of this file to 777), or that you have changed the directory or file name of the plugin (they both should be 'ultimate-plugins-smart-update-pinger')"; }else{ // Original: $lines = array_slice($lines, count($lines) - $num); // Modified to show in reverse order (easier for reading) $lines = array_reverse(array_slice($lines, count($lines) - $num)); $msg = ""; foreach($lines as $line){ $msg.=trim($line)."
"; } echo $msg; } } } # adds a filter to receive the title of the post before publishing add_filter("title_save_pre", "SUP_post_title"); # shows the options in the administration panel add_action("admin_menu", "SUP_add_options_page"); # calls SUP_ping whenever a post is published add_action("publish_post", "SUP_ping_if_new"); # calls SUP_ping_draft when changing the status from private/draft to published # add_action("private_to_published', 'SUP_ping_draft'); # removes the "WordPress official" pinging hook remove_action("publish_post", "generic_ping"); # activates pinging if setting doesn't exist in database yet (before the user has changed the settings the first time) if(get_option("SUP_ping") === false){update_option("SUP_ping", 1);} if(get_option("SUP_pinglog") === false){update_option("SUP_pinglog", 1);} if(get_option("SUP_error") === false){update_option("SUP_error", 0);} ?> Aerodynamical lesson - why do kites fly and pull? | Kite 2012
Friday, April 26, 2024

Kite 2012

Kitesurfing News Year 2012-2016!

Aerodynamical lesson – why do kites fly and pull?

Posted by kite2012 On November - 29 - 2011

Once for all let´s sort out all the questions you might have about kites and aerodynamics. What the hell is angle of attack, what is drag, why is a thin profile faster than a thick profile? What´s the benefit with a curved canopy? What is aspect ratio? Read this post to the bottom and you´ll get a much better understanding about kites and aerodynamics in general!

Why do kites fly and pull?

The reason to why we can possibly kitesurf is thanks to the power generated in the kite, so how is this power “created”?

When wind hits the kite, the airflow divides and some passes over the kite’s extrados and some passes under the intrados. The airflow on each side of the kite has encounters a different shape and is forced to take different paths. The airflow must then cover two different distances, but arrive at the same time. The airflow on the extrados has to travel further and faster than the air under the intrados. The airflow passing under the kite slows slightly which increases its pressure, so it “pushes” on the intrados of the kite. The airflow over the kite is accellerated so it exerts less pressure, creating a suction that “pulls” on the extrados. These toe forces combine to create the aerodynamical force on the kite. Because of the kite’s position perpendicular to the kite lines, the kite pulls against the kite lines. The kite will pull upward when positioned overhead, and pull us along when it is flown at a lower angle. Kites need to have a stream-lined airfoil shape to fly, and they need to be flown at an efficient angle between 15 to 25°

When the speed of the wind (S) over the increases, its pressure (P) decreases (S+ = P-). A negative pressure is then exerted on the surface of the profile which will lift forward.

When the speed of the wind decreases on a profile (S-) the pressure increases (P+), which pushes the profile. The forces exerted with pressure represent about 25% of the total power exerted on the profile. The forces of suction represent about 75%. Just like an airplane wing, a kiteboarding kite flies thanks mostly to the decrease of pressure on its upper side.

The force produced vary according to the angle between the kite and the wind. The image above show the passage of the air stripes according to the angle between the kite and the wind (angle of attack). The larger the angle of attack, the greater the turbulence.

 

 

 

 

 

 

 

 

 

 

TRACTION WORDLIST

The cord

It is the line that passes through the center of the kite’s profile. This line defines the angle of attack and the width of the profile (the dotted line)

A: The lift

This is the force created by the passage of the air on the profile of the kite (arrow A).

C: The drag

This is the force created by the friction of the air on the kite and of the wake created as the wind passes over the profile. This force always moves in the same direction as the wind arrives at the kite (arrow C)

B: The aerodynamical force

This is the total amount of force created on the kite by the lift and by the drag. Designers are of course looking for ways to reduce the drag in favor of the lift, which will conequently create upwind performance (arrow B)

D: The weight

This is the force exerted by the weight of the pilot when he is on land. The resistance of the board when the kiteboarder is in the water can be added to this force (arrow D).

 

 

 

 

 

 

 

 

 

 

 

The angle of attack

This is the angle between the cord of the kite and the wind. Changing the angle of attack affects the power of the kite. You change this angle by using the bar or the trim system fixed on the leader line. With a small angle, the profile creates sufficient force for the kite to stay in the air. With more angle, the kite powers up more. With too much angle, the drag becomes stronger and the kite is pulled backwards, also known as backstalling. The image to the left is only an example. The forces vary according to the profile of the kite, the type of kite (foil or inflatable) and the angle of attack.

 

 

 

 

KITE CHARACTERISTICS

Size of the kite

The kite’s size is given as the measurement of the kite’s flat area. The size area is measured in square meters. The kite’s size (area) is an indication of its power. The size of the kite is not only factor that affects power, there is also shape, design, and aspect ratio etc. But size is the main indicator of power. Larger kites have more power than smaller kites. The kite’s power is proportional to the size of the kite. A 6m kite has half the power of a 12m kiteof the same shape and design.

The canopy shape

This is the curve of a kite as seen face on. This curve gives the stability to the kite when it is moving because the curved canopy channels the air. A flat shape needs stabilizers on each tip to fly correctly.


 

 

 

 

The profile

The profile affects the performance of the kite. A very flat profile is very fast, but sensitive to wind changes or to the action of the pilot on the angle of attack.

 

 

 

 

 

 

 

 

 

A very curved profile makes the kite stable and smooth to sheet in and out with the bar. Yet this type of profile is very slow because it generates extra drag.

 



 

 

Aspect ratio

The proportion between the surface area of the kite and its length (A) is called the aspect ratio. Kites with a high aspect ratio can fly faster and point closer to the wind, and glide well in jumps. Lower aspect ratio kites are easier to fly, relaunch quickly, and are more stable in gusty winds. As a beginner you should look for a kite with low aspect ratio since it’s much more foregiving and easier to progress with.

 

 

The pitch

This is the ratio between the position of the front line connection point and the center of effort of the kite (the line where the power of the kite is exerted), The pitch influences the balance between the kite and its abilities to sheet in or out by changing the angle of attack. According to the profile and the type of kite, the center of pressure is either more or less positioned at the front, which influences the position at the front lines connection knots.

Power of the kite

There are two main factors that affect the kite’s power (F). The size of the kite (A = area) and the relative windspeed (V). What is important to note is that the size of the kite has a proportional affect on the power. Double the size and get twice the power. But this is not the case when it comes to the wind. Double the windspeed and you get four times the power. The power of the kite is therefor equal to the square of the wind speed multiplied with the area of the kite.

F = V² * A

The relative wind speed (V) is the result of the true wind, plus the induced wind (velocity wind). The relative wind is also known as apparent wind. The power (F) is what creates traction. This is most noticeable either when the kite passes in the middle of the wind window, when we fly the kite to make a jump, or simply when we have little speed once on the board.

The aerodynamical forces change with square of the velocity (double velocity = quadruple the lift).

A kite does not pull much when it flies steadily at the edge of the of the wind window (above your head or on the sides). But as soon as it gains speed, either by passing through the power zone or because the pilot is in motion, then its power greatly increases.

When the pilot and the kite stay in a fixed position, and the wind speed remains constant, then the kite will have a steady pull. If you move the kite, or the pilot then the power will change. Kites and pilots are usually in motion so the power of the kite is constantly changing.

Still don’t get it? Check out this page  The Basics of Kite Power – How Does a Kite Create its Power? for about the same information, but with other words and pictures.

Related External Links

3 Responses

  1. Njipep Said,

    Hello,

    You are using the Bernoulli’s principle to explain the lift of a wing. But this is actually a small part of the total lift a wing creates. Newton’s law of motion is actually more important here. This law states that a force is required to make something move in a different direction. The wing bends the flow path of the air, for which a force is required: the lift.

    Also see: https://en.wikipedia.org/wiki/Lift_(force)

    Posted on December 14th, 2011 at 7:46 am

  2. kite2012 Said,

    Thanks for pointing that out Njipep. I guess what I explained is more in line with the aerodynamical force https://en.wikipedia.org/wiki/Aerodynamic_force.

    Btw, can you explain what happens when a kite is backstalling? Is it due to the fact that the drag is overcoming lift? Or is it because the lift is not pointed up towards the sky enough, but more in a direction that is parallel to the surface?

    Posted on December 14th, 2011 at 2:44 pm

  3. Ollie Wapper Said,

    Thanks for the explanation. We should have more of this. I also particularly like the page at :
    https://kitesurfingschool.org/kite.htm
    however, there is a lot of terminology that remains unexplained.
    For example, what is “kite performance” exactly?
    And, is a “fast kite” equal to “quick turning” ?
    Also, is “low end” the ability to fly in low wind, or, a kite that remains “close” to the power zone, and thereby generates more power on average? (well, may be this is another question).

    Your post makes me wonder:
    1. Is the kite pull generated by the kite surface area, or the PROJECTED surface area? In other words, a kite with a flat canopy generates more pull?
    2. The page on kitesurfingschool defines aspect ratio as “Aspect Ratio is approximately Span/Chord of the kite or more exactly Span*Span/Area” . This makes more sense as it results in a ratio, instead of your definition Span/Area. But …. what is Span?
    Is that the distance from tip to tip, when the kite is pumped up, or when it is laying flat on the ground??

    thanks anybody who can help me out.

    Posted on January 5th, 2012 at 4:19 pm

Tom’s kitchen episode 4

Posted by kite2012
May-14-2016 I Comments Off on Tom’s kitchen episode 4

We Love Kiteboarding

Posted by kite2012
Apr-22-2015 I Comments Off on We Love Kiteboarding

Te Tainui Kitesurfing Video by F-One

Posted by Emma Pat
Nov-19-2014 I Comments Off on Te Tainui Kitesurfing Video by F-One

Red Bull King of the Air 2015 – Rule the Sky

Posted by Emma Pat
Nov-17-2014 I Comments Off on Red Bull King of the Air 2015 – Rule the Sky

A new video from Kite 2013

Posted by kite2012
Mar-20-2013 I Comments Off on A new video from Kite 2013

What do to when it´s not too windy

Posted by kite2012
Oct-11-2012 I Comments Off on What do to when it´s not too windy

How to film yourself while kitesurfing

Posted by kite2012
Oct-6-2012 I Comments Off on How to film yourself while kitesurfing

Kiteloop Crash

Posted by kite2012
Sep-22-2012 I Comments Off on Kiteloop Crash

Cross the Atlantic ocean by a kite!

Posted by kite2012
Sep-21-2012 I Comments Off on Cross the Atlantic ocean by a kite!