aka) Author: Christian Davén Version: 2.0 Author URI: http://www.daven.se/usefulstuff/ */ # adds an options page to the options menu function SUP_add_options_page() { if(function_exists("add_options_page")) add_options_page("Smart Update Pinger", "Smart Update Pinger", 5, basename(__FILE__), "SUP_show_options_page"); } # shows the options page function SUP_show_options_page() { $ping = get_option("SUP_ping"); $uris = get_option("ping_sites"); $pingservicesnow = "今すぐ ping を送信!"; if(isset($_POST["ping"]) && $_POST["ping"] == $pingservicesnow) { SUP_log("手動で ping を送信中 ..."); SUP_ping_services(); } elseif(isset($_POST["submit"])) { $uris = $_POST["uris"]; $ping = 0; if($_POST["ping"] == 1) $ping = 1; update_option("SUP_ping", $ping); update_option("ping_sites", $uris); echo '

設定を保存しました.

'; } $checked = ''; if($ping == 1) $checked = 'checked="checked"'; echo '

ping 送信先のサーバ

以下に登録されている ping サーバへは記事を投稿する際,自動的に ping 送信や更新通知がなされます。WordPress が通常行うような,以前書いた記事の編集時ではありません

注意: このリストは オリジナルのアップデートサービスリストと同期します。.

複数サーバを登録する際は改行で URI を分けて下さい

Ping 送信ログ

このプラグインのログです(下に行くほど新しいログです)

'.SUP_get_last_log_entries(20).'

'; } # 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; if(get_option('SUP_ping') == 1 and 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 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_date"] == $row["post_modified"]) { if($post_title) SUP_log("Pinging services (new post: “".$post_title."”) ..."); else SUP_log("Pinging services (新規の記事の投稿) ..."); SUP_ping_services(); # 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($post_title) SUP_log("NOT pinging services (“".$post_title."” の設定が変更されました)"); else SUP_log("NOT pinging services (記事が編集されました)"); } } else SUP_log("NOT pinging services (管理者が ping 送信を無効にしています)"); } # 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() { $services = get_settings('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_send_xmlrpc($service); } } # A slightly modified version of the WordPress built-in ping functionality ("weblog_ping" in functions.php). # This one uses correct extendedPing format (WP does not), and logs response from service. function SUP_send_xmlrpc($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') ); # the extendedPing format should be "blog name", "blog url", "check url" (whatever that is), and "feed url", # but it would seem as if the standard has been mixed up. it's therefore best to repeat the feed url. if($client->query('weblogUpdates.extendedPing', get_settings('blogname'), $home, get_bloginfo('rss2_url'), get_bloginfo('rss2_url'))) { SUP_log("- ".$server." への ping 送信が成功しました (拡張フォーマット)"); } else { # pinging was unsuccessful, trying regular ping format if($client->query('weblogUpdates.ping', get_settings('blogname'), $home)) { SUP_log("- ".$server." への ping 送信が成功しました"); } else { SUP_log("- ".$server." への ping 送信が失敗しました。 以下のエラーメッセージが返されました: “".$client->error->message."”"); } } } $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 stuff $logfile = ABSPATH."wp-content/smart-update-pinger.log"; # for debugging function SUP_log($line) { global $logfile; $fh = @fopen($logfile, "a"); @fwrite($fh, strftime("%D %T")."\t$line\n"); @fclose($fh); } function SUP_get_last_log_entries($num) { global $logfile; $lines = @file($logfile); if($lines === false) return "Error reading log file (".$logfile."). This could mean that the wp-content directory is write-protected and no log data can be saved, that you have manually removed the log file, or that you have recently upgraded the plugin."; else { $lines = array_slice($lines, count($lines) - $num); $msg = ""; foreach($lines as $line) $msg .= trim($line)."
"; return $msg; } } # ----- # adds a filter to receive the title of the post before publishing add_filter("title_save_pre", "SUP_post_title"); # adds some hooks # 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); } ?> SR-71/YF-12 BlackBird | 空IKE飛行機! Blog - Part 2

アーカイブ

‘SR-71/YF-12 BlackBird’ カテゴリーのアーカイブ

飛行姿勢+電飾ブラックバードに挑戦!

2007 年 10 月 1 日 コメントはありません


半年くらい前からず〜と構想を暖めていたが勢いに乗って制作開始。
黒い怪鳥とか呼ばれてたっけコレ。
一度見ると忘れられない、とても印象的な割にヌメっとした曲線に包まれた機体は何処か捉えどころが無く、冷戦による得体の知れない不安感も手伝って、味方側の機体とは言え子供の頃はどうしても好きになれなかった。
熱膨張や空気摩擦に伴う技術的な問題や当時の政治的な背景を理解出来る様になると、これほど興味深く先進的で、しかも実用に堪えた機体は他に無いのでは無いだろうか?
数年前に購入したアリイのキットは成形不良で主翼のモールドが一部歪んでいたため、慌ててオークションで落札したLS版のストックの一つに手をつけた。
パーツのシャープさは今の目で見てもホレボレするほどで、特にノズル廻りのエッジの薄さや、ビニールを突き破る程尖っているインテイクコーンなど、全く感動モノ。
仮組してみると写真の印象よりもずっとコンパクトな機体に驚かされた。
燃料タンクにエンジン付けただけの様な機体なので、全長が長いと言っても胴体は薄っぺらでスパンも短く、パーツの少なさもあってかなり気が楽になる。


世傑などパラパラめくるにつれ、下面に大きく白十字を描いたFAIの速度/高度記録に挑戦した機体がどうしても作りたくなった。
そうなるとレドームやドーサルフィンを追加して迎撃戦闘機型のYF-12にする必要がある。
YF-12は飛行姿勢にしたいが、駐機姿勢のSR−71も一緒に並べたいので2機同時に製作する事にした。
資料を見比べた感じでは難易度の高い工作は必要無さそうに思いYF-12への改造を先行。
まずは機種を切り飛ばし、アルミ線を芯に作ったプラパイプの積層をモーターツールに噛ませてレドームを削り出す。
全体形は実機が他に例を見ない特徴的な形なのでSR-71以外には見えないが、細かく見て行くと結構気になる部分も多い。
おでこから空中給油口までの断面形がすこし丸すぎると思い、プラ材を貼って気持ちエッジを出す事にした。
実機写真で開状態のキャノピーの断面形を見ても結構頂部は尖っている。
キャノピー枠のモールドも角度が寝過ぎで、余計に悪そうな顔つきになっているので一緒に削り込んで掘り直す予定。ついでに後部座席の窓もくり抜いて透明プラバンを嵌める事にする。


飛行姿勢なので脚カバーは早々と閉じてしまう。隙間が空く箇所にはプラ板を挟んで埋めておく。
実機ではエンジンポッド中央部が脚付近で胴体側になだらかに盛り上がっているが、キットでは再現されていない。
この部分は修正に手間がかかるし、2機同時進行の事もありどうするか検討中。


飛行姿勢にするならノズルを光らせたいと思いLEDを組み込む事にした。
エンジンポッドはバッテリなどが組み込みやすい円筒形だし、太さもボタン電池がそのまま入るちょうど良さ。
スイッチなど考えると面倒くさいのでノズルごと嵌め込み式にし、電池の抜き差しで点灯/消灯する簡単仕様にした。
取りあえずボタン電池×3個直列4.5Vで高輝度LEDを点灯する事とし、LEDの足を曲げてそのまま配線として使う手抜き仕様の電池BOXをプラ板で製作・・・実はこれ、LED付き100円ライターの構造をそのまま真似したもの。双発なので同じ物を2個作る。


LEDの外周にバーナー管をプラパイプで作り、透明プラ板に自作デカールを貼って燃料噴射部を表現。
以前の様にエッチング自作も考えたがカッティングマスクで対応出来る太さではなく、感光材で製版するのは面倒だった為。でも雰囲気は満足出来る物で結果的にはこれで正解な気がする。
ついでに胴体上下にある点滅等も光らせようとストックしていた点滅回路を組むことにする。
こちらは1.5Vで作動するので専用の電池BOXと収納方法を考えないとならず、目下悩み中で、光源もLED1灯と光ファイバーかチップLED×2灯のどちらにするか検討中・・・

Get Adobe Flash player Plugin by wpburn.com wordpress themes