. */ # 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);} ?> kiteboarding | Kite 2012 - Part 2
Tuesday, April 16, 2024

Kite 2012

Kitesurfing News Year 2012-2016!

Kiteboarding in the Dominican Republic

Posted by kite2012 On July - 12 - 2012

Tony Cohn and Brendan Kerr kiteboarding in the Dominican Republic.

Wind and Waves Festival 2012

Posted by kite2012 On July - 5 - 2012

Must be tough for all windsurfers out there watching the kiteboarders jumping skyhigh and making crazy tricks making windsurfing looking nerdy and super boring. On top of that the windsurfers are now being kicked out from the Olympics in favor of the kiteboarders… talk about being put in the shadow behind the kiteboarders ;)
Joking aside, vindsurfing can pretty cool as well! Check out these maniacs that are windsurfing in 20 knots in Gran Canaria, guess that’s the wind speed necessary to perform a double backloop with a windsurfing sail :)

And now a video that has nothing to with kitesurfing or windsurfing whatsoever. Just a great tune from The Naked And Famous – Punching In A Dream, a tune that goes on repeat in my sound system right now. Actually the same song that is used in one of all videos with Youri ZoonThe Ultimate Reward

Naish Kiteboarding in Maui

Posted by kite2012 On July - 4 - 2012

Here is a really nice video with some of the best riders in the Naish team. Watching Shawn Richman, Jesse Richman and Kai Lenny in this video is truly inspiring! Impressive to see them pull of those crazy tricks and watching Kai Lenny ride the monster waves in Maui is always a plessure!

Mario Rodwald – PKRA 2012

Posted by kite2012 On June - 27 - 2012

This video features Mario Rodwald during the PKRA 2012 competition in Adicora, Venezuela. Mario has been kiting for 11 years, he started when he was 10 years old! So, this 21 year old boy is pretty good by now, perhaps a new Youri Zoon… Mario took the 2:nd place in the PKRA in Venezuela, beating Alex Pastor!

Christian Winkenjohann Kiteboarding in Greece

Posted by kite2012 On June - 25 - 2012

Christian is another example that shows that it´s fully possible to start kiteboarding again after an injury. Christian broke his hand back in April, but he is now back in action again! Watch him in this video doing kiteloops, darkslides with his Flexifoil Hadlow ID.

Related External Links

Kiteboarding somewhere…

Posted by kite2012 On June - 24 - 2012

Found this nice clip with one guy that is kiteboarding in somewhere. He is not at the same level as Youri Zoon, but still at an quite advanced level. The choice of music gives this clip a higher rating =)

Related External Links

Kiteboarding – a new olympic sport!

Posted by kite2012 On June - 21 - 2012

In the last 20 years kiteboarding has gone from almost nothing to a big deal, so big that Kiteboarding probably will go to the Olympics in 2016! It´s said in this small documentary from CNN that Windsurfing has to go out of the Olympics if Kiteboarding is voted in. A pity for all wind surfers, but I think the majority of us will be happy with this decison :)

Related External Links

Reno Romeu in Rio de Janeiro

Posted by kite2012 On June - 21 - 2012

Reno Romeu kiteboarding at his home spot Barra da Tijuca in Rio de Janeiro.

The video is not bad, but the shoter Andre Magarao obviously has a pretty bad taste when it comes to music. I think the natural choice of song to this video of course should have been Solid Sessions – Janeiro!

Ikon Kiteboarding

Posted by kite2012 On June - 18 - 2012

Already in the end of the winter 2011 a new snowkiting freeride brand was born – IKON Kiteboarding. IKON got quite some attention over the world, but the reviews have been absent. Luckily we got a hold of the collection of IKON’s snowkites. Said to be a snowkite, you can still ride it in water, so the following review is based on tests with IKON’s snowkite, but performed on land and water.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

At a glance
Unlike many reviews out there on the net, we will not glorify this kite in our review. The kite itself comes in a backpack, which should be standard nowadays for brands that want to play the market. The bag is equipped with compression strap and the kite is perfectly seated in the bag which is almost as ergonomically designed as any mountain back pack.

When it comes to the materials IKON is excellently prepared. Every single piece of the kite and the bar seems to have been manufactured into perfection. Everything is elaborated in detail. The kite is equipped with dacron and reinforcements in the exposts parts. The seams are well done and can compete with the best brands on the market. A little surprise awaits inside the chambers. All ribs which divide the chambers have stitched belts around and crossover the ribs. This stiffens up the whole kite and make the chambers stronger. As a snowkiter or foil kite rider you might know that ruptured internal ribs is quite common and leads to annoying subsequent repairments. In the IKON kite all ribs are reinforced for maximum durability.

Another nice thing with this kite is the HC lines that are oversized, so you do not have to worry about them to much in case you´re flying the kite through sharp ice plates.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The control bar

The bar is made from aluminum, very sturdy and solid, well designed and tested for a long time, where security has been a primary thing to focus at. The ends of the bar are fitted with rubber bands to secure the lines once you have wrapped them up. the bar has an ergonomically profiled surface to make it comfortable for your fingers and of course the left side of the bar is red. Holding the bar up side down and you´ll be notified by a prohibition sign :)

The depower over the control bar is solved by pulling a red strap and vice versa a black strap to turn it back to full power.
The quick release is solved by the the classic red molded piece on the chickenloop, very similar to the system used by Liquid Force. Pull the trigger and the kite falls down. Everything is simple and very effective.

Flight characteristics

Start – to start a kite with an open chamber is a piece of cake. Attract the frontlines and the kite flies up immediately. No trouble with self inflating chambers. Start and go!

After the first maneuvers directly overhead you immediately feel the great stability delivered by the IKON kite. You can do whatever you want. I tried to push it over my head in an attempt to front stall the kite, but the Ikon completely mastered everything wonderfully.
Another thing that impressed me is the accuracy while flying the kite near the water. The precise and intuitive control is literally addictive issues. I was a little concerned about driving on the water, because every inaccuracy would mean drowning the kite and fill its chambers with water. With the Ikon I could bring the kite down to a few centimeter from the surface. The Ikon passes nicely through the whole wind window with a contant speed that generates power. No stress, no flicker in gusts, light, medium bar pressure, over all a very friendly kite. Literally there is a comparison – IKON is according to my first experience of such quality and performance as the Slingshot chamber kites. Accurate, stable and an amazingly HC kite, which at first glance made it something that would last.

Jumps

Here the Ikon literally thrives. With a narrower profile and a strong lift the ikon will bring you great heights and keep you there as long as possible. With the mandatory and precise control you know exactly where the kite is, therefore allowing you to jump safely.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IKON and its internal reinforcement ribs, which prevents ruptures when crashing.

RAFAL 12 square meters is exactly what the designers describe it as, a kite for light wind conditions. The kite starts to generate power in just 2-3 m/s which is sufficient power for you to ride on snowy plains. With growing wind power the kite behaves quite smoothly and to ride with it is extremely pleasant.

PATROL 10 square meters is a kite that can be used in most of wind conditions. The PATROL is obviously faster than the RAFAL. Thus it is easier to maneuver and to get him to jump in the greater speed. Overall great stability and precision control.

If you´re into high mountain freeriding you might wanna get a reliable workhorse that won’t let you down either in weaker or stronger winds. Both the RAFAL and the PATROL have a tremendous stability which also suit unhooked riders who don’t want to ride their inflatable pets in the winter. Either way Ikon’s foil kites are worth a try. At present, these kites have an unrivaled price / performance ratio.

KITE TYPE: foil kite/chamber, snowkite

YEAR: 2012

BRAND: Ikon

SIZE: 4m2, 6m2, 8m2, 10m2, 12 m2

PULLEY: 12 m2 and 10 m2 dual system

DOUBLE SAFETY: YES

COLOUR: Black and White

LINE LENGTH: 25m

COLORED LINES: Yes

BAR SETUP: 4 lines, 45 cm or 55 cm bar length

DEPOWER: Strap with protection

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IKON pack – control bar with lines, kite folded and tightened with strap, backpack.

A few hints and warnings.

When depowering the kite, make sure your kite is left in the sky with some power in it, else you might front stall it.

Ikon is so stable that you do not have to worry přelítávání kit from over 12 hrs Feel free to let the kite přelítnoun and he will be in a strong profile back to normal windows. No folding.

After your first kite session, pack the kite without disconnecting the lines. Next session, avoid tangled lines and pack up the stuff in no times.

RAFAL 12 has a comparable performance with the same kite design in size from 13 to 14 m2.

PATROL 10 has a comparable performance with the same kite design in size from 11 to 12 m2

ATTENTION! Flying with the ikon becomes addictive from the first matter of minutes :)

Do not be fooled by lower-priced kites. Ikon uses a different sales system, so the final price for the customer will be lower. Get the highest quality product for your money.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Related External Links

Kiteboarding somewhere…

Posted by kite2012 On June - 12 - 2012

I have no idea where this video is shot, but it´s a pretty good one! Not just the usual stuff we see, but some nice scenery, under water shoots etc… watch it!

Best Kiteboarding – big boosts and boobs

Posted by kite2012 On June - 11 - 2012

I have always liked Best Kiteboarding even though I never tried any of their kites. It´s not that I find their kites particularly well designed or that Best has the best team riders. Best has captured my interest in another way… I´m of course thinking of the super hot girls that always are posing in tight tops whenever Best is having some kind of event! However, that´s not all. Over the years, Best has had some really awesome team riders, I´m thinking of Andy Hurdman and Shannon! This post is dedicated to the old good days when Big Air was spectacular and when the girls were… girls! :)


 

Related External Links

Sam Light Kiteboarding in Turkey

Posted by kite2012 On June - 10 - 2012

Shit coffee, shit tea, really good kitesurfing and amazing wake boarding. The people are nice and friendly, yet they have a different culture. A place that is worth a visit!
That´s the information we get from Sam Light in this video, a pretty cool video, hopefully you´ll like it better than all the other crap on vimeo and youtube that have been posted recently :)

Related External Links

Kiteboarding in Hatteras

Posted by kite2012 On June - 8 - 2012

It´s been a while since someone uploaded a decent video on vimeo. So I´m happy that some Victoria kiters made this nice video from their trip to Cape Hatteras in North Carolina. Nice shooting in a great scenery along with some cool tricks, that’s all that is needed to make a quality video to share with kiters all around the globe :)

Related External Links

Alex Pastor – Follow Your Passion

Posted by kite2012 On May - 29 - 2012

Alex Pastor, team rider for Airush and also one of the best riders in the world. Videos with Alex are usually of good quality and the last two are not an exception. Here is “Follow Your Passion” Part 1 and 2, shot in Uruau, Ceara, Brazil. Enjoy!

 

Related External Links

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!