2018年10月28日 (日)

ゆるキャン△奥地の聖地巡礼を公共交通機関で頑張るための情報

相変わらず「ゆるキャン△」話。

漫画7巻が発売になりまして、さらに同じ作者あfろさんで、自分の作品の聖地巡礼編も描いているという作品「mono」も25日発売でしたね。
7巻分は、本誌掲載時に行った人もいたり、単行本発売直後に行き潰した人も、何人もいるようです。




そんなわけで、聖地巡礼をしたい!と思いつつも、車やバイクなんて持ってない‥‥タクシーなんて高いでしょう?という人もいらっしゃるかと思います。でも諦めるこたぁない、公共交通機関でチャレンジしてみましょう。

まず、漫画3巻15話、アニメ9話に出てきた夜叉神峠から。ほうじ茶のおねーさん、は僕が行ったときはいなかったですね‥‥ 僕行ったのは8月でしたしね。原付ででした。

ここは、甲府駅からバスが出ています。竜王駅近くも通ります。この辺 とか この辺 をご覧ください。運行の山梨交通とか。
甲府-夜叉神峠登山口で1420円です。運賃の他に環境保護の協力金として100円が請求されるかもしれません。マイカー規制区間手前には温泉街・宿泊施設もあるので、そういうの調べて逗留するのもいいでしょう。

‥‥あー、アカンわ、これ今年は11月4日までの運行ですね。来週まで。そうかそういうのもあるのかー。
でも僕が行った8月は、規制区間の門が開いていたので、本当に「通行止めなう」の写真を撮りたければバスが止まってから行かないといけないですね。夏でも夜には通行防止で閉まったりするのかな?

ちなみに一応ですが、夜叉神峠を越えてバスに乗っていくと終点の広河原に着きますが、そこから先もバスがあります。まず広河原から北沢峠、そこから先は長野県側となり、案内はこちら。茅野駅、伊那市駅、さらに高速バスで各地へ。ただし、やはり山中の区間は今年は11月4日までだそうですのでご注意ください。

これでリンちゃんが行こうとして行けなかった道を行くことができますが、自分で運転ができるわけでもなく。当然ながら本来は登山客向けのバスですから、ただ通っていくだけとなるとバスマニアな人ぐらいかなぁと。陣馬形山へ行くのなら、このコースでは直接は行けませんし、南アルプスの山中を通っていく必要はないですからね。


続いて最新7巻。山梨の奥の方、山梨県南巨摩郡早川町のいろんな場所が描かれています。

早川町といえば はやかわ乗合バス です。4~6月「ゆるくないスタンプラリー」時にもお世話になりました。
土日祝や年末年始は、運行してはいますが早朝の0便と夜の5便は休止ですので少しご注意を。

鉄道からの接続を考えると、身延駅、波高島駅、下部温泉駅が使えます。あとは東京の新宿から高速バスが身延山まで出ていますが、その手前の飯富ふれあいセンターというところで、このバスとの接続ができます。犬山あおいのバイト先モデル地・セルバみのぶ店のすぐ横です。

このうち、身延と波高島は区間が一つ増えるので、200円高くなってしまいます。下部温泉か飯富がベストでしょう。ただ高速バスは渋滞などで時間が読めない部分が大きいので、飯富の場合は十分な注意が必要です。

さて、行き先。7巻では最初に赤沢宿、会話中に出てきた「世界一古い旅館」慶雲館は西山温泉の領域だそうなので、順番入れ替わってその手前の湯島の大杉を見てから奈良田湖、奈良田の里温泉と古民家カフェ鍵屋、最奥の開運隧道、戻ってきて雨畑湖で吊り橋を渡り。桜さんに替わってジビエ直売所。リンに戻ってヴィラ雨畑で温泉に入ったのち、なでしこを心配して富士宮へ行きます。

これら、けっこう厳しいです。

まず赤沢宿ですが、バス停としては七面山登山道・赤沢宿入口があります。しかしそこから、しばらく登っていく必要があるようです。ざっくり調べたところ、2kmくらい、高低差260mくらい。

西山温泉、湯島はバス停に載っています、第1区間ですでに相当奥。しかしGoogleマップ見ているだけだとバス停の位置が確定できないのでちょっとどうでしょう。「西山温泉 湯島の湯」という施設があるようなので湯島の湯バス停はそこでしょうか。とすると湯島の大杉は下湯島バス停の方がいいのかな?
よく調べないとちょっと心配です‥‥

奈良田湖周辺は大丈夫ですね、はやかわ乗合バスの終点です。

ただその先、開運隧道までは別のバスになります。奈良田-広河原線、山梨交通Webサイトの下部に。そう、広河原は夜叉神峠の先の終点と同じ場所、リンちゃんも言及してますね。
開運隧道はその途中、第一発電所バス停というところになります。しかしこれ、回りには何も無さそうですね‥‥登山道の入り口ではあるようです。そこで降りるとして、バスの時間を確認すると、1~2時間程度は待つことに。しかもそれは休日ダイヤで、平日は一日に2本しかないですね。朝行って夕方帰る用。

こちらも夜叉神峠側と同じく、今年は11/4までの運行だそうです。
が、現在はその先の林道が台風の影響でダメなようで、この奈良田-広河原間はもうすでに年内通行止めとなっているようです。巡礼に行った方が写真を載せていました。


厳しい。
徒歩では行けるのかな、奈良田湖から2kmくらいなようです。

雨畑。硯で有名だそうです。乗合バスでは直接は行けず、大島バス停から乗合タクシーがあるようです。前日までに要予約。町のWebサイト下部に案内が。
停留所どこにあるのかな‥‥

ジビエは草塩温泉近くだそうです。これははやかわ乗合バスにありますね、第2区間。
先人の記事 にお世話になりましょう。

という感じで、相当広い区間を転々としています。バス頼りだと1日では絶対ムリですね。綿密な旅行計画でもって臨まないといけなさそうです。


いろいろ厳しいので、公共交通機関は、不可能ではないくらいに考えるのが良さそうですねー。
またこれからは冬季、路面凍結などの危険も出てきますので、車やバイクで行くにしても十分にご注意を。

2018年10月18日 (木)

「ゆるく楽しむスタンプミッション」を公共交通機関で頑張るためのまとめ

さらに続けて「ゆるキャン△」話。
この記事はしばらく追記をする予定です。

8月末から新たに、地元山梨の企業が主体となって「ゆるく楽しむスタンプミッション」が行われています。
今までに2回に分けて6ヶ所でのミッションが公開されていますが、終了未定、スタンプを集めると何かもらえるらしいのですがその公開もまだ、というそっち方向ではゆるめのスタンプラリーです。
(そのミッションの一つ・標高634mの醍醐山への登山をこの前したのですが、台風後で倒木が多かったり真面目に道に迷ったりして、ミッション単位で見ると相変わらずのゆるくなさでした‥‥)

その6ヶ所ですが、一つだけ、「なかとみ和紙の里」は鉄道駅からやや離れています。
しかしそれでも公共交通機関を利用してのアプローチは可能であるため、ここで紹介したいと思います。

もう一つやや離れた場所、身延山エリアの武州屋さんと松司軒仏具店さんは、身延駅から1時間に1、2本程度バスが出ていますので大丈夫です。
詳しくは4~6月「ゆるくないスタンプラリー」時の記事をご覧ください、って大して詳しいこと書いてなかった。いや他の地点よりはるかに大丈夫なので省きます。夕方とかになってしまわない限り大丈夫です。

さてなかとみ和紙の里。JR身延線の最寄り駅は、特急の止まる甲斐岩間駅か、普通列車のみの久那土駅です。歩きならどちらも2km程度。
これをどうにかしたいと考えると、やはり身延町営バスにたどり着きます。この2駅を通るのは古関甲斐岩間線という方で、循環線ではさらに波高島駅、下部温泉駅、甲斐常葉駅も通ります。
また身延鰍沢線というのも和紙の里を通っており、鰍沢口駅、波高島駅、身延駅が利用可能です。
時刻表だけだとちょっと見づらいので、これらの停留所を抜き出してみます。

さらに営業時間を外れては仕方がないので、営業終了後に到着・営業開始前に出発するような時間も外しておきます。
営業時間も複雑だな‥‥




紙屋なかとみ9:00~17:00、紙漉き体験受付16:00まで
現代工芸美術館9:30~17:00、入館16:30まで
味菜庵10:30~16:30(L.O.16:00、3~11月)
11:00~15:30(L.O.15:00、12~2月)


なお注意してほしいのは、身延町営バスは日曜祝日は運休です。土曜は動いているので、土日お休みの職の人は土曜を狙いましょう。
またなかとみ和紙の里自体が、火曜はお休みです。火曜祝日の場合は翌日休み。平日休み職業の人も十分ご注意を。

行き

鰍沢口駅8:39
なかとみ和紙の里9:18




身延駅8:3016:10
甲斐常葉駅15:53
下部温泉駅15:57
波高島駅6:588:5116:0216:31
なかとみ和紙の里7:209:1316:2216:53



久那土駅7:008:0010:0012:00
甲斐岩間駅10:0612:20
なかとみ和紙の里7:058:0510:1512:0512:25


帰り





なかとみ和紙の里12:0512:2516:22
甲斐岩間駅12:1016:31
久那土駅12:3016:44

なかとみ和紙の里16:53
鰍沢口駅17:12





なかとみ和紙の里10:1517:3918:3219:19
波高島駅10:3518:0018:5119:40
下部温泉駅10:4018:56
甲斐常葉駅10:4419:00
身延駅(身延駅まで行きません)


なかなか数あるように見えますが、行きは開店はるか前に着くものが3本、帰りは閉店けっこう後に出発するものが3本あります。
他にも、えーと、‥‥、全部まとめると、行きは、8:30身延8:51波高島、8:39鰍沢口、10:00久那土甲斐岩間、12:00久那土、12:20甲斐岩間、15:53甲斐常葉から下部温泉波高島経由、16:10身延16:31波高島では超ギリギリ。
帰りは和紙の里発時間で、10:15下部温泉方面、12:05甲斐岩間、12:25久那土、16:22甲斐岩間久那土、16:53鰍沢口、あとはせいぜい17:39波高島行きくらいで、それ以降はどう時間を潰すのかという感じです。

さらに言うと、ほとんどはJR身延線への接続が考えられたダイヤで、JRからの接続はあまり考えられていないということです。完全に地域住民の足であるように考慮されています。
行きの場合、JR身延線の到着時刻をつきあわせると、富士からでも甲府からでも、ほぼ全てで駅に着いてから20~30分待ちが発生します。

ちょっとまぁ、書き出すのがさすがに面倒になってきたので、JRからどうしてもこのバスで行きたいという方は、到着時間指定で乗換案内を調べてください。

って考えてくると、2kmだし、歩くのが最適かなぁと思えてしまいます。
荷物が多かったら駅のコインロッカーを使うとか。あるのかは調べていないのですが。

現在のここの目玉でありミッションの一つでもある「木喰展」は、今週末までになってしまいました。いまさらの情報ですいません。

2018年7月25日 (水)

ゆるキャン△おじさんは青い日産ラシーンで四尾連湖水明荘に乗り付ける夢を見るか?

以下、訂正箇所がありますが、もともとの文章は2018年6月頭に書きためていたものです。
引き続いて漫画・アニメ「ゆるキャン△」の話。

作中に登場する、ヒロイン各務原なでしこの姉・桜が乗る車は、日産のラシーンであろうということでほぼ決着しています。
私的には特に後ろ姿が特徴的だと思えて、一発でわかるんですよね。
高校生くらいの時から、街中で現物を見るたびに「おっラシーンだ」と、印象づけられてきました。

そんなラシーンですが、25年くらい前の車です。
いまだに東京でもたまには見かけ、後述しますが中古車も出回っているようなので入手は可能なようですが、車は車。買ってしまうと税金など維持費がかかります。
そこで手軽にレンタカーはないものかと考え、いろいろ調べてみました。
格安レンタカーの類だと古い車を使っているところもあるし、そういった期待も込めて。

また、「ゆるキャン ラシーン レンタカー」とかでググってもさっぱり情報がないあたり、あんまこの方向でみんな情報出してないんだな、と思ってのこの記事です。

結論から言うと、レンタカーは今はもうほぼ無理っぽいです。
7月末にこの文章書くに当たってまた調べていたら、なんと、1ヶ所借りられそうなところがありました!後述します。
先も言ったとおり入手自体は可能なようです。
ひとつずつ述べていきます。


トップラシーン

「ラシーン レンタカー」で検索するとまず出てくるのがここです。
ラシーン専門店として中古車を扱う一方、レンタカーもやっているとのことで期待してしまいます。千葉県は船橋市。
が、トップページを見ると新着入庫が2014年4月止まりだったり、スタッフダイアリーの納車紹介記事が2012年の2月だったり、ショップ案内のアクセスマップからGoogleストリートビューを見てみると更地やあまり使われて無さそうな建物が見えて、おや‥‥?という感じです。

さらにいろいろいろいろと調べていると、トップランクという車販売業者が、近くに店舗を構えているようです。http://toprank.jp/
またそこのサービスブログではラシーンの整備記事 http://toprank.jp/autotechnicalbase/info/archives/860 が載っていて、「少し前に「トップラシーン」という名前でお店を展開していたこともあり、ラシーンといえばトップランク的なイメージを持っていらっしゃる方も多く」という記述も見つかります。
こちらが後継企業なような感じです。

なんか企業サイト https://toprank.co.jp/ で見ると同じ船橋でレンタカー事業をやっているようなのですが、上記店舗サイトだとそれは出ていません。

本当に借りたいので、電話してみました。
まずはトップラシーンの方から。呼び出し音が鳴って生きている番号なようなんですが、一向に出ない。
仕方ないのでトップランクの方へかける。レンタカー船橋で掲載されている番号へ。
すると電話に出られて、「レンタカーをやってらっしゃる?」と聞くと「いや、いまは休止中で‥‥」とのお答え。「ラシーンのレンタカーを探していて‥‥」と話すと人が代わり、「今はやっていない、他にやっているところもちょっと知らない」とのことでした。トップラシーンの方についても聞くとやはり前はそうだったようで、「Webサイトが残っているのでやってないなら消した方が」とは言っておきました。

とりあえずここはもうダメらしい。
残念。


個人blog「ラシーンライフ」

次に出てくるのはこちら。
中古のラシーンをヤフオクで購入して自分で直しながら乗っているということです。
2015年の記事 http://rasheen-life.sunnyday.jp/blog/rasheen-rental/ ですが、DeNAが運営するAnycaという個人間カーシェアリングサービス https://anyca.net/ に登録してみた、というのが出てきます。
しかし載っているリンクから行ってみると「クルマが見つかりません」。エニカのサイト上からラシーンを探したものの、日産の中に車種として載っていません。下記の通り、別の方ですが2018年7月現在掲載がありました。

ブログにはTwitterが連携されているので、凸ってみました。
結果、「車1台になって余裕ないので今はやっていない」とのことでした。
残念。

Anycaサイトにも車種がなかったので、こちらもダメということですね。

ラシーンライフさん、僕が凸った後、6月の記事でゆるキャン△についても触れてくれていました。(^^;

Anyca

上記の通り、この記事を書くに当たってまた調べていたら、Googleでの検索順位が変わってて。
うーん?と思い検索結果のAnycaサイトを見てみたら!兵庫県宝塚市で1件、6月からラシーンの登録があり、これまでに2件の貸出実績があるようです!
ゆるキャン△ファンとしてはボディカラーが作中とは違い白・ベージュっぽいのは残念かもですが、私が調べている限り今のところ唯一の実機貸し手なので、これは期待大‥‥!私は遠いのですが、機会つくって宝塚まで行って借りてみたいと思います!

直リンクは控えておきます。Anycaのサイト https://anyca.net/ から「クルマ検索」→「メーカーで探す」→「日産」→「ラシーン」とお進みください。


ワンズレンタカー

僕が見た検索順に言っていくと次はここ。 http://www.ones-rent.com/
いわゆる格安レンタカーの2強の一角かと思います。
古い車もいっぱいあります、車種は各店舗にまかせている感じ。

こちらはなにより、店舗横断での車種検索ができて大変便利。
ライバルであろうニコニコレンタカー https://www.2525r.com/ はそれができず、店舗で検索してからその店にある車種、という見方しかできないので大変つらい。なのでそちらでは探していません。
その辺改善してほしいですニコレンさん。

さてワンズレンタカーでのラシーンですが、「取り扱い車種」から「Bクラス」に行き「メーカー:ニッサン」で絞り込むと、結果に出てきます。しかしそれを開くと「条件に一致する車両がありません。」と出るのみ。
他の車種を見てみると貸出店舗ごとに一覧が表示されるので、昔はともかく今は取扱店舗が無いのでしょう。
残念。


閑話休題

検索結果には、旅行系サイトであるエクスペディアやその他なんか違う感じのところも出てきます。
どうやら、アメリカはウィスコンシン州、ミルウォーキー付近にラシーンという都市があるようです。
そこでのレンタカーを借りるには、といった話が検索に引っかかっていました。
海外旅行向けの情報も出てくるということで。


CaFoRe

話戻して、個人間カーシェアリングサービスであるカフォレです。 http://www.cafore.jp/
先ほどラシーンライフの方が過去に登録していたAnycaの、ライバルといったところでしょうか。
DeNAよりも小さい、まだベンチャーな会社の運営なのかな?

ここも車種で検索できるので、やってみると、東京都の新宿区に1台、兵庫県は姫路市に1台の計2台が出てきます!
まずは新宿の方で指名リクエストを送ってみました。‥‥待てど暮らせど返事が来ない。
いろいろ考えて姫路の方にも送ってみました。‥‥こちらも同様。

東京・新宿の人、CaFoReのプロフィールページにいろいろと書いてあって、起業家的な方っぽい。Facebookのアドレスが書いてあって、そちらは頻繁に更新していらっしゃるようなので、これまた凸ってみました。
結果、「もう廃車にした」とのことでした。
残念。
「もう車ないなら登録削除した方が」、とは言っておきましたがいまだそのまま残ってますね。

姫路の方。こちらは特に連絡先なども書かれておらず、それ以上調べようがありません。
連絡手段は指名リクエストしかないので、少し出し続けてみたのですが、‥‥なんと!1回だけ反応がありました!
しかし、リスポンス出品がありましたというシステムからのメールで気づいただけで、しかもその3分後にキャンセルされていたのでした。メール内には詳細書かれていないし、キャンセルされるとあとかたもなくきれいさっぱりなにもなかったことにされるので、どういう内容だったのか、そもそも指名リクエストとはいえ指名した人からのリスポンスだったのかすらわかりません。
ということで、こちらは可能か不可能かの判断すらつけられません。これまでリクエスト投げても有効な返答が返ってきていない以上、自分の都合に合わせて借りられるとは思わない方がいいでしょう。運がよければ返事があるかも、しかしその詳細はまだ不明。
残念。

システムがダメだと思っています。もっとどうにか改善していただきたい。
そもそも指名リクエストが発生したらその指名された人にメールなど飛んでいるんだろうか?レンダー登録はしていないのでシステムの全容がつかめていない‥‥


ということで、情報集めていた5月末の時点では、レンタカーについては以上のような結論になっています。

中古で購入する場合は、検索すると、やっている業者がいろいろ見つかり、神奈川県や兵庫県など場所もいろいろですので、立地や評判など検討して各店へご相談ください。
ラシーン専門にリストアしてカスタマイズしてとやってくれる業者があったり、通常の中古車情報でも出回っているようです。またヤフオクなど個人間で取引することもできるようですね。

こだわりの一台を完成させて、上記紹介してきたようにカーシェアサービスで貸すのもいいかもしれません。
ぜひ作中同様のいわゆるドラえもんカラーで借りたい。です。

2018年5月 2日 (水)

「ゆるくないスタンプラリー」を頑張るための公共交通機関情報まとめ

漫画・アニメ「ゆるキャン△」のキャンペーン「ゆるくないスタンプラリー」について書きます。
詳細は公式サイトのNewsスタンプラリー特設サイトをご確認ください。

車、バイク、原付、自転車で行く場合は、ほかにいろいろと記事があったりTwitterで報告があったりするのでそちらを探してください。
ここでは、公共交通機関+徒歩だけを考えます。


野クルコースの3つ

大丈夫です。
行けます。
JR中央線の山梨市駅で降りてちょちょいのちょいです。
近場ですし、有名どころばかりですし。
心配事があればTwitterで山梨市観光協会の人にでも聞くといいのではないでしょうか。
すいません僕まだ行っていません。


<2018/05/19追記>
申し訳ありません有名どころだからって完全にナメてました。

まず、山梨市駅から一番上のほったらかし温泉まで、道のりは4.2kmで1時間10分と案内されます。
Yuru_10_hottara
しかし画像左上の標高差を見てください。342mも登ることになります。平均81.4パーミルもあります(鉄オタにわかりやすい表現)。上り坂になるのはフルーツ公園入り口交差点以降なので、実質は3.3kmで342m、100‰越えです。100m進むと10m、10mごとに1m登っているということです。
野クルのごとく徒歩で行くのはかなりおすすめできない。

ではバス。
早いうちに山梨市観光協会の人がつぶやいていたのですが、1日に3本しかありません。

あとほったらかし温泉までは行かず、途中止まりです。笛吹川フルーツ公園の上ですが、フルーツセンターという場所。展望台があって「恋人の聖地」となっているところです。
ここからは1.4kmで80mの登り。駅からよりはずいぶん楽でしょう。
Yuru_11_fruitpark

バスは山梨市駅を10:30、13:40、16:45発です。
対する帰りはフルーツセンターを10:40、13:50、17:00発です。フルーツ公園バス停なら+3分。
前の2本に乗れば、行動時間はだいたい3時間あるということですね。
運賃は2017年10月に改定したそうで、片道200円の後払い方式です。
公式情報は山梨市のサイトへ。

なお力学的エネルギーを考えると、やはりバスでなるべく上に行ってそこから順に、ほったらかし温泉行ってフルーツ公園行ってそこからバスで戻るというのが一番楽だと思われます。
バス終点のフルーツセンターというところも売店でして、傘も売っていたので突然の雨天でもバスは上まで行って大丈夫です。フルーツ公園内なら真ん中あたりのやはり売店で売っていました。買いました‥‥
<追記ここまで>


なでしこコース

内船駅

ローカルな身延線の無人駅ですが、特急停車駅です。
大丈夫です。
駅舎ではなく、QRコードは道を渡った花わらべというお店にあるということさえ知っていれば。
探し回ってうろうろしている人を結構見かけます。

普通列車で来ると、列車すれ違いで長時間停車している場合もあるので、特に静岡・富士駅側から来た場合はQRコードとってすぐ同じ列車に乗って身延駅へということも可能かもしれません。
時間が惜しい場合は綿密に調べておきましょう。


身延山観光協会

日蓮宗総本山久遠寺の三門手前です。
身延駅からバスが1時間に1~2本出ていますので、その終点からさらにすこし登ったところです。
大丈夫です。


身延山ロープウェイ

久遠寺の裏手にあります。
まずロープウェイ入り口までが結構大変です。
三門をくぐって正面にそびえるは菩提梯。超絶急な階段で、いきなりやる気を削いでくれます。
回避用には男坂・女坂というのもありますが登る高さは一緒ですね。
その他、駐車場が裏手にあるので、三門をくぐらずそっちへ行って人工の通路を上ったり、斜行エレベーターを使うこともできます。

さてロープウェイだしQRコードはその上なんだろうな、と思いがちですが、スタンプラリー開始前にアナウンスされた「ゆるくないスタンプラリー制覇ガチツアー」の案内をよく見ると、スケジュール内に「身延山ロープウェイ入口★(乗車しません)」と書いてあるので、下にもある可能性は高いと私は踏んでいました。実際には、開始日早々には山上にしかなく、その後当日中に下の駅にも設置されたとの情報があります。

とにかく今のところは下にもあるようですが、撤去される可能性はあります。
景色もいいし、漫画に登場した苦死切り団子は山上にしかないので、登っておいて損はないかと。

また2日前までならWebチケットというのがあり、安い上に久遠寺のクリアファイルとお経葩(お守りみたいなもの)がもらえたりします。日が決まっていればぜひ検討しておきましょう。

ちなみに登山道もありますが、高低差700m、上り2時間半とかいう本格的なものですので十分な覚悟をお持ちください。下りなら、と思っても傾斜がかなり急なので、くれぐれも泣かないように。僕は靴が適当だったのでマメ、というより水ぶくれができました。


ゆるキャン△コース

栄昇堂

身延駅の駅前です。
以上。


みのぶゆばの里

ここはバス利用だと、少々の徒歩は避けられないようです。
身延駅から身延山行きのバスに乗り、鏡円坊(きょうえんぼう)バス停か総門(そうもん)バス停、または自由降車区間ですので鏡円坊過ぎてすぐくらいに運転手さんに言って止めてもらうのがいいかもしれません。Google先生によると久遠寺入り口交差点から2.1km、27分です。https://goo.gl/maps/QQX9e1s2mez
Yuru_05_kyouenbou

いっそのこと、東京の新宿から高速バスが身延山まで出ていますので、それでやって来て身延山ロープウェイと身延山観光協会を回って、歩いてゆばの里まで行く、というのがいいかもしれません。
身延山観光協会-ゆばの里は3.3km、43分です。https://goo.gl/maps/BuVvmS6haYt
Yuru_06_minobukanko
帰りは上記と同じルートで、総門か鏡円坊まで戻って身延駅行きのバスを待つことになります。

あるいは、なでしこコースの賞品受け取りは身延山観光協会なので、逆にいろいろ回ってから身延駅-総門を路線バス、徒歩でゆばの里へ行き、身延山まで歩いて戻ってロープウェイと、観光協会でステッカーなりポスターなりをゲットし、そのまま高速バスで新宿へ、とか。

なんか火曜定休でQRコード撮れなくて難民発生しているらしいです。ご注意を。
<2018/05/19追記>
ひと悶着あって、現在はゆばの里建物に向かって左側の、ゆばソフトクリームを売る売店にもQRコードのポスター掲出されていたので、なんとかなると思われます。
<追記ここまで>


セルバみのぶ店

けっこう行きにくい。
最寄り駅は波高島駅、そこから2.9km、徒歩38分です。Google先生に聞くと波高島はムダに駅反対側のルートを示されますが、駅には西側駐車場から出入りします。https://goo.gl/maps/X7aVizckYQ62
Yuru_01_seruvaminobu
ただし波高島駅は特急が止まらない。またなでしこコースやゆるキャン△コースを考えると身延駅からアクセスしたい。

と考えると、身延町営バスというのがあります。身延鰍沢線という方で、飯富ふれあいセンターが最寄り、フレスポみのぶのすぐ北側の土地になります。
時刻表を見ると、身延駅から1日3便。都合がいいのは16:10身延駅発、ふれあいセンター16:37着、セルバ内にはイートインコーナーがあるのでメンチカツでも食って、帰りは17:54発、‥‥身延駅まで行かへん!仕方なく波高島駅から撤退することにしましょう。

しかしさらなる問題が。このバスは日曜祝日は運休なのです。土曜日に動いているのはかろうじて助かるのですが、日を選ばないといけないですね。

なお古関線は下部温泉駅と甲斐常葉駅にもバス停があるので、そちら方面の人も一考の価値ありです。ただし同じく日祝運休であることには注意。
ともに片道200円なのも魅力です。

日曜や祝日にしか行けない場合はどうしたものか‥‥と思っていると、身延駅にはもう一つバス停の看板が。
Yuru_02_hayakawabus
俵屋観光という業者がバスを運行しているようです。
いろいろ調べた結果、早川町のはやかわ乗合バスというものでした。
こちらは0便と5便という早い時間・遅い時間のみが土日祝運休で、それ以外の時間帯は日曜でも走っています。

こちらも本数は少ないので、一番都合がいいのは身延駅13:45発、飯富ふれあいセンター14:15ごろ着、帰りは14:50ごろ発で身延駅15:20着となります。それ以外は時間が空いたり帰りがなかったりと難しいところです。
片道だけは波高島駅から/まで歩くというのも一考かと思います。
私は4便でセルバへ行って波高島まで歩いて戻り、普通列車で身延駅へ行って甲府方面へ戻る方向に特急乗車、とかでした。

なお、はやかわ乗合バスは身延駅や波高島駅からだと片道400円になります。下部温泉駅からなら200円なので、宿泊地などとの兼ね合いかと。

ところで町営バスの類は、ググっていると数年前の古いPDFファイルが出てきたりして時刻が違っていることも多いです。「平成○○年改正」などとは書いてあるのでちゃんと最新のものかどうか確認しましょう。


リンコース

四尾連湖

山の上までの一本道行き止まりしかないのがこの四尾連湖です。
とりあえずググって出てくる旅行系サイトを見ると「市川本町駅から徒歩150分」とか書いてあってマジで言ってんの‥‥?という気になってきます。
山梨県公式観光情報でも一緒。まぁハイキングコースとしての設定のようです。
湖畔の山荘・水明荘さんのWebサイトでも、登山道が書いてありますね。

しかし諦めずにさらに探してみると、市川三郷町コミュニティバスというのがあるようです。山保線というのに市川本町駅から乗れて、四尾連公民館前というところまで。
ここ。https://goo.gl/maps/2sQ3STLbe4P2
Yuru_03_shibirekoumin

ここから四尾連湖までは徒歩になります。Google先生によると1.5km徒歩28分。https://goo.gl/maps/6XXYQB71Qsr
Yuru_04_shibire
なんとかなりそうですね。
ストリートビューで一連の道が見られるので、予習しておくのもよいでしょう。

しかし注意しなければならないのがこのバス路線。
まずバス停のある市川本町駅は、身延線の特急は止まらず各駅停車しか止まりません。列車本数が限られてきます。しかし本数が減る鰍沢口駅よりは甲府側にあるので、まだ数ある方か。

次いで上記リンクからバスの時刻表を見ると、四尾連湖行きは市川本町駅を 11:54 か 16:50 発です。四尾連公民館前に着くのが 12:39 か 17:35 。
そして。
帰りの市川三郷病院行きを見ると、四尾連公民館前は 7:35 か 13:35 発となっています。

つまり。
その日のうちに行って帰るには、「バス停に 12:39 に着いて 13:35 発車しかない」と言っています。
片道30分かかる山道を、55分以内に往復してQRコードも撮ってこいよということです。
がんばれ。
なおWikipedia的には徒歩20分と書いてあるので、その記述に自信のある人は15分余裕があるということに。
頑張れ。

では仕方ない、せっかくだし四尾連湖で一泊キャンプだ、と考えたあなた、甘いです。
Webサイトをよーく見ましょう、なんと「運行日: 月曜日・水曜日・金曜日のみ」となっています。
つまり一泊では帰れません。
最低2泊、金曜来て月曜帰りだと3泊必要です。

中日なんかは、小さな湖しかない環境で、帰る手段も存在しないと考えると、まさに俗世を離れ孤立した気分になること請け合いではないかと。
他のキャンパーさんや水明荘・龍雲荘の方々はいらっしゃるかもしれませんが。
あー水明荘さんのWebサイト見るといろいろレジャーありますね。

ちなみにページの一番上には「※各路線とも土・日・祝日・年末(12月29日~翌1月3日)は運休となります。」とも。つまり平日の月水金のみの運行ですので祝日を絡めることができません。十二分に注意しましょう。

四尾連湖自体、徒歩ならば登山者前提の感じですね。スタンプラリーだけを目当てに考えると相当厳しいと言えるでしょう。
タクシー課金くらいは必要かもしれません。ボッチだとお高いでしょうが‥‥

<2018/05/19追記>
5月頭に、富士の国やまなし観光ネットさんが「モデルコースA:公共交通機関を利用した日帰りモデルコース」を掲載しました。こちらは「道の駅富士川でレンタサイクルを借りる」という、交通機関‥‥?といった内容となっています。電動自転車もあるそうです。ご参考までに。
<追記ここまで>


富士山コース

本栖湖

すいません、全然調べていません‥‥
いくつかの方面からバスがあることは知っています。
近いうちに追記します。


<2018/05/19追記>
まず目的地となる浩庵さんを確認すると、本栖湖の西岸です。
バス停で言うと「浩庵荘入口」。
富士山駅~下部温泉郷という系統にのみ属しているようで、どうやら、上り下りともに1日1本ずつしかバスがないようです。

富士急行バスのサイトではこちら
富士山駅を 10:10 発で、11:13 ごろ着、帰りは 13:56 ごろ発で 15:00 富士山駅着のようです。
身延町側・下部温泉バス停を確認すると、 11:50 にやってきて折り返し 13:20 発になるようなので、しまりんやなでしこが登ってきた本栖みちを通る場合は一日では無理です。

この記事では、甲斐常葉・下部温泉とのバスの本数がもっとあるように書かれているのですが、ざっと探したもののそういった情報は見あたりませんでした。2016年の記事なので、今はダメなのかも。
こちらの記事によると2015年の4月に今のダイヤになったっぽいぞ。

本栖湖の東岸なら、バスの拠点である本栖湖バス停があって、富士山駅→本栖湖バス停で1日12本、新富士駅・富士宮駅・朝霧高原を通って本栖湖バス停へというのが1日4本あるようですが、これだと本栖湖を半周せねばならず、4.4km1時間を案内されるので結構大変なのではないかと。
Yuru_12_motosuko

他にはこの時期、芝桜まつりというのが開かれて大渋滞の元だったりしますが、新宿や東京方面からの高速バスが増発されたりするようですので、チェックしておきたいところです。
ただしやはり本栖湖東岸までにはなってしまいますね。

さてこちらも四尾連湖と同じく、富士の国やまなし観光ネットさんが「モデルコースB:公共交通機関を利用した宿泊モデルコース」を掲載しました。これは「下部温泉“千円札の絶景富士山無料お送りサービス”提供の旅館・ホテルに宿泊 ※お送りサービスは平日限定、5/7より開始」というびっくりするようなサービスを利用して本栖湖浩庵まで行くという、公共‥‥?といった内容となっています。ご参考までに。
<追記ここまで>



といった感じで、誰もが言ってますがマジでゆるくないです。
山の上までバスやタクシーを使い、下りは折りたたみ自転車という人や、本栖湖から20km走って下部温泉まで降りたという人もいます。装備や体力、時間とお金によく相談して、余裕を持った入念な計画を立て、総力を挙げて取り組みましょう。
お役に立てば幸いです。

2014年5月20日 (火)

ボタン押したときに目的の位置までスクロールさせたい

なんかの一覧で、ボタン押すとそれに対応したセクションが表示されるんだけど、いちいちぶつ切りではなくて1ページ内でスクロールすれば別ボタンに対応している章も見られるようにしたいという場合。




単純なHTMLなら <A NAME="hoge"> の <A HREF="#hoge"> でやるんですけど、あ、古い、そうですか、僕はHTML 3.2あたりで育っててCSS嫌いな人間なもので、なんですか、id属性使えば<A>タグ以外でも自由自在に飛べるってことですか。じゃあまぁ <div ID="hoge"> とかでも。

で、 ASP.NET の C# でもって .NET Framework 上のWebアプリを作っていて、 GridView とか DataList とか使ってるんだけどその中のどっかへスクロールしたい、という話。




JavaScriptでやります。

とは言ってもC#から、HTMLにJavaScriptを出力するメソッド Page.ClientScript.RegisterStartupScript() を使って、こんな感じ。





System.Text.StringBuilder script = new System.Text.StringBuilder();
script.Append("<script language=\"javascript\">");
script.Append("window.attachEvent('onload',ScrollDiv);");
script.Append("function ScrollDiv(){");
script.Append(" var elemMasterDiv=document.getElementById('");
script.Append(this.div1.ClientID);
script.Append("');");
script.Append(" var elemTarget=document.getElementById('");
script.Append(this.DataList1.Items[10].FindControl("label1").ClientID);
script.Append("');");
script.Append(" elemMasterDiv.scrollTop = elemTarget.getBoundingClientRect().top - elemMasterDiv.getBoundingClientRect().top;");
script.Append("};");
script.Append("</script>");
this.ClientScript.RegisterStartupScript(this.GetType(), "ScrollDiv", script.ToString());



.aspxの方は例えばこんな。





<div id="div1" runat="server" style="overflow:auto; height:100px">
    <asp:DataList ID="DataList1" runat="server">
        <ItemTemplate>
            <asp:Label id="label1" runat="server" Text='<%# Eval("COL1") %>'></asp:Label>
        </ItemTemplate>
    </asp:DataList>
</div>



.aspx.cs の方でとりあえず初期表示します。





protected void Page_Load(object sender, EventArgs e)
{
DataTable inDt = new DataTable();
inDt.Columns.Add("COL1");
for (int i = 0; i < 90; i++)
{
inDt.Rows.Add(inDt.NewRow());
inDt.Rows[inDt.Rows.Count - 1]["COL1"] = i.ToString();
}
this.DataList1.DataSource = inDt;
this.DataList1.DataBind();
}



んでなんかのボタンのイベントハンドラに上記一連の RegisterStartupScript() を書いておけば、それを押した時点でこの例だと DataList の10行目へ飛びます。

this.DataList1.Items[10] って指定してるから。




要点は elemMasterDiv.scrollTop = elemTarget.getBoundingClientRect().top - elemMasterDiv.getBoundingClientRect().top; でしょうね。

getBoundingClientRect().top だとページ全体に対しての自分の絶対位置が返ってくるっぽいのに対し、<div>では自分の中でのスクロール量がほしいので、目的コントロールの getBoundingClientRect().top から<div>の getBoundingClientRect().top を引いてます。

あとは getElementById() に渡すIDを ClientID プロパティで取ってきてるくらいかなー。目的に合わせるにはそこの取得方法工夫してくださいね。




これdivタグでスクロールさせる場合の話なんで、ウインドウ全体をスクロールさせたい場合は、まぁなんか調べてやってください。






ブラウザのことはよく考えてません。手元の環境でうまくいったのでそれ書いてるだけです。IE8。

会社内のものだから統一された環境と考えていいのだ。

あー子会社も含むから本当に大丈夫かどうかは、どうかな。






2015/05/25に書きました。

2014年4月18日 (金)

ココログでソースコードを見やすくする

SyntaxHighlighter を入れたりました。


プログラムのソースコードを見やすくするやつです。
ココログは使いにくいなー書いてもパッとしないし、と思ってたけどこういうのやるだけでモチベぐっとあがりますね。
一時的にですけど。


ここ http://trivia.cocolog-nifty.com/blog/2013/04/post-0fcc.html に従って。


簡単に書くと、SyntaxHighlighter を落としてきて http://alexgorbatchev.com/SyntaxHighlighter/ 解凍します。ココログの「コントロールパネル」の「ファイル」で、適当にフォルダ作って、そこにJavaScriptとCSSを全部アップロードします。で「ブログ」の「設定」で、「ブログのサブタイトル」に使うJavaScriptとCSSを書いておく。

ブログのサブタイトル
<script src="http://自分のサイトのアドレス-nifty.com/作ったフォルダ/shCore.js" type="text/javascript"></script>
<script src="http://自分のサイトのアドレス-nifty.com/作ったフォルダ/shBrushAS3.js" type="text/javascript"></script>
<script src="http://自分のサイトのアドレス-nifty.com/作ったフォルダ/shBrushCpp.js" type="text/javascript"></script>
<script src="http://自分のサイトのアドレス-nifty.com/作ったフォルダ/shBrushCss.js" type="text/javascript"></script>
<script src="http://自分のサイトのアドレス-nifty.com/作ったフォルダ/shBrushCSharp.js" type="text/javascript"></script>
<script src="http://自分のサイトのアドレス-nifty.com/作ったフォルダ/shBrushJScript.js" type="text/javascript"></script>
<script src="http://自分のサイトのアドレス-nifty.com/作ったフォルダ/shBrushPlain.js" type="text/javascript"></script>
<script src="http://自分のサイトのアドレス-nifty.com/作ったフォルダ/shBrushXml.js" type="text/javascript"></script>
<link href="http://自分のサイトのアドレス-nifty.com/作ったフォルダ/shCore.css" rel="stylesheet" type="text/css" />
<link href="http://自分のサイトのアドレス-nifty.com/作ったフォルダ/shThemeDefault.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
SyntaxHighlighter.config.stripBrs = true;
SyntaxHighlighter.all();
</script>

なお、上記だと今時点で配布されているすべてが載っているわけではないので注意を。具体的に言うと上記別サイトのをコピって入れて、僕はC#が多いのでパッと書いてみたらエラーダイアログばっか出やがりまして。
上記のは減らし済みです、PerlやPythonは僕はきっと使わない。自分が使うものだけ書いておけばいいのではないかと思います。


書くときはpreタグの class に、こんな感じに指定する。

<pre class="brush: c#;">
C#のソースコード
</pre>

たとえばC#の場合、c#、csharp、c-sharp の3つの書き方ができるようなので、ちらっとでもジャバスクリプトのソース見ておくといいですよ。

2014年4月17日 (木)

ある文字列のうち、nバイト以内に収まるのは何文字か

英字かな交じりの文字列が100字くらいあるんだけど、30バイト以内ずつに分けたい、とかいう場合。文字数で切るのではなく。データベースに書き込むような時とかさ、カラムサイズに合わせて分割しないといけないときあるじゃん。


「abcあいうdefえおか」
って文字列があって5バイトずつだ、とか。


文字コードによっても変わるし。
シフトJISの場合は "abcあ"、"いうd"、"efえ"、"おか" になりますよね。
UTF-8なら約日本語3バイトだと思ってるんで "abc"、"あ"、"い"、"うde"、"fえ"、"お"、"か" ですかね。


「abあいcdうえefおか」を5バイトずつだと
Shift-JISは "abあ"、"いcd"、"うえe"、"fおか" 、
UTF8だと "abあ"、"いcd"、"う"、"えef"、"お"、"か" 。


つーことで、「nバイトに収まるのはm文字だ」というのを求めたい。
.NET Framework 3.5、C#。
ちなみに今の問題では UTF-8 な Oracle DBに入れたいので、その辺をターゲットに。


「この文字列はnバイトだ」というのは Encoding クラスの GetByteCount() が使えますよね。
UTF-8 とかなら static なメンバがあるそうなので

Encoding utf8Enc = Encoding.UTF8;
int byteCount = utf8Enc.GetByteCount("文字列");

いろんな文字コードに対応できるように作りたいなら、

Encoding.GetEncoding("UTF8");

を使って "UTF8" の部分書き換えてって感じですかね。


さて、もちろんいろいろと可変なので、文字列の長さを変えながら、nバイト以上にならないかどうかとかで調べていきます。
でも単純に、頭から順番に一文字ずつ増やして、納まるかオーバーするか見ていくと、各種短いものだったらいいんですが、例えば10万文字を8万バイトでとかいう場合にかなり時間を食うと思われる。


ので、二分探索をします。バイナリサーチ or バイナリーサーチ。
今回やるのは二分探索って名前じゃないかもしれないけど、なんかそれっぽい感じの動きの。二分法?一緒か。 http://ja.wikipedia.org/wiki/%E4%BA%8C%E5%88%86%E6%B3%95
しかしきちっとした二分探索も面倒くさいなーと思ったんで、てきとーにやります。
でもそれだけだとやっぱまずいので、目星をつけた後で補正します。

/// <summary>
/// 指定バイト以下になる文字数を返す
/// </summary>
/// <param name="strOrg">調査対象文字列</param>
/// <param name="start">何文字目から開始か(0始まり)</param>
/// <param name="getbyte">制限したいバイト数</param>
/// <returns>getbyteより少なくなる文字数</returns>
protected int GetByteCount(string strOrg, int start, int getbyte)
{
    //--収まるなら全文字数でOKと返す
    Encoding utf8Enc = Encoding.UTF8;
    int orgByte = utf8Enc.GetByteCount(strOrg.Substring(start));
    if (getbyte >= orgByte)
    {
        return strOrg.Substring(start).Length;
    }
 
    #region 適当な二分探索
    int y = (strOrg.Length - start) / 2;    //--着目点
    int delta = y / 2;    //--着目点の変化量
 
    while (delta > 0)    //--1以上の間ループ
    {
        if (getbyte > utf8Enc.GetByteCount(strOrg.Substring(start, y)))
        {
            y += delta;
        }
        else if (getbyte < utf8Enc.GetByteCount(strOrg.Substring(start, y)))
        {
            y -= delta;
        }
        //--getbyteと一致したら
        else
        {
            //--終わる
            break;
        }
 
        delta /= 2;    //--半分にする
    }
    #endregion
 
    #region 適当さを補正
    //--目標より少なければ
    if (getbyte >= utf8Enc.GetByteCount(strOrg.Substring(start, y)))
    {
        //--1文字足しても大丈夫かどうか
        while (getbyte >= utf8Enc.GetByteCount(strOrg.Substring(start, y + 1)))
        {
            y++;
        }
    }
    //--多ければ
    else
    {
        do
        {
            y--;    //--1つ減らして
        } while (getbyte < utf8Enc.GetByteCount(strOrg.Substring(start, y)));    //--まだ多いかどうか
    }
    #endregion
 
    return y;
}

呼び出すときに strOrg と start を指定するのは、同じ文字列を使って500バイト分1回目は1~300文字まで、500バイト2回目は301~725文字まで、とかいう使い方を想定しているからです。

こんな。

string message = "元のmessageフガフガ";
int limitByte = 5;
int next;
for (int i = 0; i < message.Length; i += next)
{
    next = GetByteCount(message, i, limitByte);
    //--message.Substring(i, next); を使ってどこかに出力
}

そりゃあ引数に Substring(i) を使って726文字目から終わりまでを渡す、でもいいかとは思いますけど。
オーバーロードでそっちを呼び出すべきか。


きちんと二分探索をやって、後の補正なんか汚いからやめたいって人は、こういうところがすごいしっかりしてるんで参考にするといいですよ。
その他ググれ。


404 Blog Not Found 「アルゴリズム百選 - 二分探索(binary search)」 http://blog.livedoor.jp/dankogai/archives/50961989.html


「二分探索の古典的実装にオーバーフローのバグがある」という話も発見しましたが、上のものだと足し算してるところはほとんどないから大丈夫かしら。足してても 1/2 単位だから Length へ向けての左極限だし。intをバリバリ使ってるから全然ダメという視点はあるでしょうがそこだけならlongかInt64なんか適切なのに置き換えてやってください。stringクラスの文字数制限ってあるのかしら、もし無かったら上記はダメね。制限あるならstringクラスに準じるって言えるから楽です。


ホットコーナーの舞台裏 「古典的バイナリサーチアルゴリズムにバグ」 http://iiyu.asablo.jp/blog/2006/06/05/393464

404 Blog Not Found 「(a+a)/2 == -a /* 半世紀もののバグ */ 」 http://blog.livedoor.jp/dankogai/archives/50522708.html


あとstring型の内部構造と文字コードに起因するこういう話もありますので、当然ですけど自己責任で検証/お使いください。


「C#プログラムでサロゲート・ペアの動作を検証する」 http://itpro.nikkeibp.co.jp/article/COLUMN/20080109/290600/?k2


魚へんに花のホッケの字をばしばし入れて確かめた結果なんとなく大丈夫じゃねーかなーと、か、思いつつ、半文字ズレ、が、怖く、なって、きた、ので、1バイトずつ増やしながら試してたらズレキター
どうすっかなこれ。最後の1文字が「そういうの」じゃないかどうか確認する?サロゲートペアだけでええんか?組み合わせ文字・結合文字?
͛꒰ू ऀ•̥́ꈊ͒ੁ•ૅू॰˳ऀ꒱ ͟͟͞ ̊ ̥ ̥” とかo͡͡͡͡͡͡͡͡͡͡͡͡͡͡╮( ꒪⌓꒪)╭o͡͡͡͡͡͡͡͡͡͡͡͡͡͡とか入れてきたらどこで切るのが正しいんだろ。おぉ難題だ。ややこしい時代になってきた気がする。


DOBON.NET プログラミング道 「サロゲートペアや結合文字が含まれているか調べる」 http://dobon.net/vb/dotnet/string/issurrogatepair.html


車輪の再発明ならぜひ教えてください!

2013年8月29日 (木)

Oracleで三者間の権限設定をする話

Oracle で、あるユーザ/スキーマで見える他のユーザ/スキーマのオブジェクトを制限したい。 権限いろいろ付けたり消したりでやりますが、ビューが絡むと単純なやり方ではダメな場合がある。 制限したいっつーより一部だけ許可したいという場合ですな。


二者間の場合についてはここ http://www50.tok2.com/home/oppama/oramemo.html の「元表の持ち主にビューをGRANTしてもORA-01720が発生する」に書いてあるんですが、三者間でどうなるのかがいまいち理解できてなかった。ので一応メモ。


スキーマA に テーブルa が、スキーマB に ビューb があって テーブルa を参照しています。
スキーマC は テーブルa を直にも見るし、 ビューb も見たい。
その他 テーブルx や ビューy が存在してますが、スキーマC からは ab だけ見えて xy は見えない状態にしないといけない。



初期状態よくわかんないんだけど、スキーマCは自分のもの以外何も見えないように設定しておきます。
スキーマAで入って、スキーマCにテーブルaのSELECT権限を与えます。


GRANT select ON scheme_A.table_a TO scheme_C


ビューbのSELECT権限も与えます、


GRANT select ON scheme_B.view_b TO scheme_C


としようとすると、ORA-01720 のエラーを出されます。
ので、まずスキーマBに、テーブルaのSELECT権限を、WITH GRANT OPTION 付きで与える必要があります。


GRANT select ON scheme_A.table_a TO scheme_B WITH GRANT OPTION


その後、スキーマCにビューbのSELECT権限をつけると大丈夫です。


GRANT select ON scheme_B.view_b TO scheme_C


A ← B ← C
↑←←←↓


Cに付けたいのにA-B間の権限にオプションを付けてやらなければならないという話でした。



ちょっと厳しいところだと、すでに使われている権限に対して操作をくわえるなんてとんでもない、もしなんかあったらどうすんだ、ということで拒否されそうな状況ですね。
結局ウチでもこれは採用されず、スキーマBのビューbと同じ定義文でスキーマCにもビューbを作ったっぽい。


世の中そういう、既存のものに手を加えるのははばかられる状況ばっかりですから、そんなことしなくても新しく作るものへの設定だけで何とかなるようにしてほしいなー。



2016/06/09 に書きました。

2013年5月31日 (金)

文字列の分解

文字列を分解したい。C#、ASP.NET。.NET Framework 3.5。
しかしstringクラスのsplit()では、区切り文字が失われてしまう。
分解したものを単純に再度くっつけると元の文字列が得られるような分解をしたい。

ごく簡単に調べたけど見当たらなかった。ので作った。
もし車輪の再発明ならぜひ教えてください。すでにあるやつのほうが絶対にいろいろよさそう。
ぎっとはぶにはそういうの置いてあるのかなぁ。

/// <summary>
/// 文字列を分解する、区切り文字も保持する
/// </summary>
/// <param name="s">分解対象文字列</param>
/// <param name="pat" />区切り文字のパターン(正規表現)</param>
/// <returns>分解された文字列配列</returns>
public string[] splitPerfect(string s, string pat)
{
	ArrayList arrList = new ArrayList();
	Regex r;
	Match m;

	r = new Regex(pat);

	while (s.Length > 0)
	{
		m = r.Match(s);
		if (!m.Success)	//--見つからなかったら抜ける
		{
			arrList.Add(s);
			break;
		}
		arrList.Add(m.Value.Substring(0, (m.Value.Length >= 2) ? m.Value.Length - 1 : m.Value.Length));
		s = s.Substring((arrList[arrList.Count-1] as string).Length);
	}
	return (string[])arrList.ToArray(typeof(string));
}

くっそ遅そう。実際にはどうかわかんないですけど。測定するつもりもない。

本体としては以上なんですが、目的としてはちょっとばかしSQL文を分解したいというものなので、こういうのをくっつけまして。

/// <summary>
/// SQLを分解するための区切り文字パターン(正規表現)
/// </summary>
/// <remarks>()[]+*-/><=(半角スペース),.(タブ)"':; のどれかと一致するように記述</remarks>
public string strSqlSplitPattern = ".*?[\\(\\)\\[\\]\\+\\*-/><= ,\\.\\t\"\':;]";

/// <summary>
/// 文字列を分解する、区切り文字も保持する
/// </summary>
/// <remarks>区切り文字のパターンとしてstrSqlSplitPatternを使う</remarks>
/// <param name="s">分解対象文字列</param>
/// <returns>分解された文字列配列</returns>
public string[] splitPerfect(string s)
{
	return splitPerfect(s, strSqlSplitPattern);
}

SELECT COL1, COL2 FROM EMPLOYEE WHERE COL3 = 'hogehoge' AND (0=1 OR 1>= 0)

というSQL文があったとして、

SELECT

COL1
,

COL2

FROM

EMPLOYEE

WHERE

COL3

=

'
hogehoge
'

AND

(
0
=
1

OR

1
>
=

0
)

という組に分けてくれるよ。

テストコード。

string example = 好きなSQL文を入れてね!

string[] tmppp= fugaClass.splitPerfect(example);

System.Text.StringBuilder sb = new System.Text.StringBuilder();
for (int i = 0; i < tmppp.Length; i++)
{
	sb.Append(tmppp[i]);
}
if (sb.ToString().Equals(example))
{
	string result = "Match!";
}

当然ながらすべからく適当なのでうまいことやってくださいね。
上に載せたSQLの区切り文字パターン strSqlSplitPattern も、こっちの要件で適当に作ってあるので、自分の用途に合うように考えてから使ってください。
' クオテーションの中に書かれた文字列とかも考慮しないでぶった切っちゃうからね。
‥‥えっそれ大丈夫なんかいな。うーんもうちょっと考えないといかんのかな。

OracleだとかSQL Serverだとかの差も考えてくださいね。
正規表現勉強してね。僕も全然詳しくなくて好きじゃないんだけど仕方ない。

この辺を参考にしてコピペった部分もあります。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1394207798
http://freelancer.yoka-yoka.jp/e337117.html

2013年5月16日 (木)

Webアプリで謎のエラー 0x80070057

最初に言っておこう。この 0x80070057 というエラーコード自体はいろんなもので使われているっぽいので、ちゃんと目的のものを探さないとダメっぽいですよ。
http://support.microsoft.com/kb/982736/ja
http://d.hatena.ne.jp/babydaemons/20080408/1207656965
http://blogs.msdn.com/b/d99/archive/2012/04/06/10291428.aspx


今回以下と同様に VisualStudio / .NET Framework / IIS でのエラーだとしても、また違う原因の場合もあるということですね。


で、Visual Studio 2008 でASP.NET Webアプリケーションの開発をしていて、突然アセンブリが読み込めないとかいうエラーが出るようになったという話です。


僕じゃないんですけど。
なんかいない間に建物で突然の停電があったそうで。20分くらい。
停電復旧後に、デバッグ実行したら次のようなエラーが出るようになったらしい。


「ファイルまたはアセンブリ 'hogehoge'、またはその依存関係の1つが読み込めませんでした。パラメーターが間違っています。(HRESULTからの例外: 0x80070057(E_INVALIDARG))」


画面イメージからの手打ちなんで、全角半角やスペースありなしの違いはあると思います。検索で来れた人おめでとう。


でまぁいろいろ調べたんですが、結論としてはここ(英語) http://blkarwasara.blogspot.jp/2011/07/hresult-0x80070057-einvalidarg-on-debug.html のような感じで C:\Users\[username]\AppData\Local\Temp\Temporary ASP.NET Files\ (Windows 7の場合)以下のファイルを消したら直った。


実際、エラー画面の下部には
「ログ: 新しい URL file:///c:/Users/xxxxxxxx/AppData/Local/Temp/Temporary ASP.NET Files/root/nnnnnnnn/mmmmmmmm/hogehoge.DLL をダウンロードしようとしています。」
的なメッセージも出ている。
しかしこれに従って、該当ファイルを探しても実際にはなかった。
微妙に違うフォルダにそれっぽいDLLがあったので、それを単発で消した。
すると hogehoge 部分が別DLLになったので、そっちも探して消してみた。
でもまだダメ。
なので調べて、上記英語サイトを見つけて、今回対象のPCには Temporary ASP.NET Files 以下にいろんなフォルダが作られていたので、上記メッセージで指定されている root 以下だけ削除しました。
テンポラリなんで全部消しても問題ないはずですけど、root の下も今回関連のものやその他明らかに消していいものだけだなというのを、ファイル名で判断してから消しました。


あーなんか前後しますけど、まずは当該DLLが壊れたのかなと思ったので、ネットワーク上に置いてあったDLLをbinフォルダにコピーしてきて、参照設定やり直して、ということもやってみてました。
でもそれではダメだったので、上記単発消しを試し、それでもいまいちダメなので調べて全消し、という流れでした。


停電でなんかテンポラリフォルダがおかしくなったんだろう。
スキャンディスクやった方がいいですよと言っておこう。

2012年7月26日 (木)

かな入力で間違えて記号を入れてしまった時の動き

記号のいろいろがクッソMS-IMEでしたね。


「:@\]」と打って確定し再変換のため Ctrl+BackSpaceキー を押すと、「ころんたんかえん]」。
ksg。


試そう。
!"#$%&'()=~|    -^\@[;:],./\    `{+*}<>?_
  ↓ ↓ ↓
!”#$パーセント&’()=~|    -^円単価[点コロン],./円    `{+*}<>・_

うぉう書いてる最中に何を学習したのか漢字になりやがったぞ。
ksg。


まぁATOKはF11キーでひらがな⇔英字の相互変換ができるけど、MS-IMEはいろいろ設定見たんですがひらがな→英字の一方向にしか変換できないグズっぽいので、どうでもいいといえばどうでもいいんだけどなぁ。
ATOKなら最初のように「:@\]」と打ってしまっても、未確定状態でF11キーを押せば「げーむ」とひらがなへ変換できるという話です。もう一度F11押せばまた「:@\]」に戻る。


2014/01/13に書きました。

2012年5月22日 (火)

IMEで変換未確定や確定状態から入力状態に戻す機能について

MS-IME はホントに我慢ならんよね。


僕はJISキーボードのかな打ちなので、
間違えて「ん゛」とか打って変換し、まだ確定していない状態で BackSpace で未確定・入力中の状態に戻すと、「ん”」という風に勝手に全角ダブルクオテーションを入力したことにされちゃうの。
しかも。確定させ、再変換ということで Ctrl+BackSpaceキー を押すと、「ん"」となって「”」と「"」で違いがあるとかいうわけのわからなさ。どっちにしろふざけた結果なので削除するし一緒なんですけど。


続いて。「ん゜」とでも打って同様にすると「んまる」になるの。アホかと。ひらがな展開とか何がしたいのか意味わからん。文字数増えてるし。
1キー間違えたのに削除に2キー必要なの。ひどい。なんの仕打ちか。
かな打ちだと「か゜゛」とかままあるよ?「かまる”」になるの。「が」に直すためにバックスペース3回押させられるの。
お前のキー入力が精度悪いせいだってか。はいその通りですなにもいうことはありません。


「ひらいている」を変換→「開いている」確定→ Ctrl+BackSpaceキーで再度未確定へ戻す→「あいている」。
アホ。アホとしか言いようがない。なんでやねん。
なんで前の状態に戻せる機能が付いてんのにその前の状態を覚えてへんねん。
アホや。


なんかさっきは逆に「あいている」変換→「開いている」確定(「空いている」にしたかった)→未確定へ戻す→「ひらいている」だったような気がして辟易してこの文章を書き始めたので、変な部分で学習しとるんかもしらん。
しかし単純に前の状態を覚えるだけであるべきなのに(ですよね?違いますか?)、なんでわざわざ逆変換なんて高度なことしようとしてアホな結果になっているんでしょう。ああ救いようがない。


家ではATOKなんですが、会社では当然有料ソフトを勝手に入れることができないのでしぶしぶ、指定されている MS-IME を使わざるを得ない。本当にやめてほしい。

二番目のなんかATOKなら間の「゜」一個消せば後ろの濁点も判別して「が」に直してくれるのになー。


2014/01/13に書きました。

2012年5月 7日 (月)

日本に無いハンディターミナルの話

海外拠点にいます(東アジア)。
ハンディターミナルでバーコードを読み込んでPC側のシステムに流し込みたいんだけどできないという話があったのでいろいろ調べた。
対象は、Datalogicという会社 http://www.adc.datalogic.com/ のSkorpioというシリーズ。スコーピオ。Mobile Computerに分類されるようです。イタリアの会社のようですね。

いろいろ調べた結果、IDEC DATALOGICという日本代理店がある http://www.idljp.com/jpja/ ようだけどSkorpioは扱っていないっぽい。なので日本語資料がない。
そこのニュースリリースを読むだに、Datalogicが用途別というか分類して分社したそれぞれが売っていて、MobileComputer担当の会社とは日本は取引自体がないっぽい。
データロジックADC株式会社 http://www.datalogicscan.jp/ ってのはなにやってんでしょうかね。日本法人ですかね。あっURLが datalogicscan だからさっき言った分社の部分名乗ってんじゃん。

とりあえずUSBの接続ケーブルはあるんで、バーコードリーダーって普通突っ込めばピッと読み込んでパッとPC画面に表示できるだろうから、ということでUSBでつないでバーコード読む。
なにも反応なし。
やっぱハンディターミナルとバーコードリーダーでは違うんですね。

ここでWebを探して上記会社のサイト見つけて、マニュアルはダウンロードできた(「Support」→「Manuals」→「Search by product」のドロップダウンリストから「Skorpio(TM)」を選択して「Search」ボタン→「DL-Skorpio user's manual (.pdf, 2797949 byte)」のリンク)のでざっと英語読む。
前提として、このSkorpioにはWindowsCEが入ってて、CE型のメニューとWindowsMobile型のメニューが使えるらしいんだけど、ここでは渡された状態がWinCE型だったんで、以降はそのタイプのメニューの話です。

さて、目次をあさると「CONNECTIONS」とかあるんだけどロクな事書いてない。
「USE AND FUNCTIONING」には、「DATA CAPTURE」とか「DATA CAPTURE CONFIGURATION」とかがあったのでその辺を。
しかしDATA CAPTUREはレーザー発射の仕方なのでわかるわそんなもんって感じだし、DATA CAPTURE CONFIGURATIONは本当に設定話で、一応確認したけど変なところはなかった。
その次に「Capture」っていう項目があって、それを見るとデータ読み込みアプレットがあるよって書いてある。載っている画面キャプチャ通り、タスクバー部分の、緑色orグレーのなんとなくバーコードっぽいアイコンからこれらConfigureとかCaptureへ行けますよ。
バーコード用意して読み込んでみると、おぉ確かに表示される。しかし表示だけよのう‥‥ 「Save Data To LogFile」にファイル名がんばって入れてみると、確かにそっちに保存されたりする。しかしそれまで。

Skorpioの中のExplorerとかでその保存されたファイルを探して(保存場所変更していなければ C:\Windows 以下かも)、テキストファイルなのでそのまま開く。
ここでバーコード読み込んでみると、おぉアプレット通してでなくても直接入力できるのね、テキストファイルには。というところ。

できない場合は Configure の SCAN PARAMETERS の KeyboardEmulation を Enabled にするとよいかと。Clipboardだとクリップボード行きで貼り付け動作が必要なんでしょう。
あとタスクバーアイコンからポップアップメニュー出して「Wedge」というところにチェック付いているかどうか。何の意味だかよくわかりませんが、チェック付いてないとアイコンもグレーの色になりますよ。

つまりPCに入れるには転送動作が必要ということで。ここまで単にUSBいきなりぶっ挿してただけなので、単純につないだだけではやはり認識してくれないっつーことでドライバをインストールする。
Webサイトの「Support」→「Software」→「Search by product」のドロップダウンリストから「Skorpio(TM)」を選択して「Search」ボタン→使ってるのはWindowsXPの32bit版なので Windows 32 Bit Usb Driver for devices Windows Ce 4.2 & Windows CE 5.0 23/09/2008 のところ。その下に「Windows Usb Driver for MC Devices (.zip, 3590045 byte) 」ってリンクがある。
解凍してインストール。

したんだけど、WinXP側のマイコンピュータにドライブ増えたりもしてないし、なんだかあんまり変わらない。
スタートメニューにプログラムグループできたんで見てみると、HTMLファイルが一個あるだけ。
中を見ると「ActiveSyncを入れよ」というご神託であった。
その他にも実体はWindowsCEということで、「WindowsCE 接続」あたりでGoogle先生にお伺いを立てると、先達の(ハンドヘルドPCなどの)ActiveSyncインストール事例な古文書が得られたので、Microsoftのサイトから落としてきて入れる。今はActiveSync4.5というバージョンなようで、時代違うだろうけどええんかいな、と思いつつWikipedia様で調べた http://ja.wikipedia.org/wiki/Microsoft_ActiveSync ところ、このSkorpioに入っているのはWindowsCE5.0なのでActiveSyncは4.5でもいいっぽい感じ。

すると、ケーブル接続すればActiveSyncが立ち上がるようになって、ファイルの取り出しも可能になった。
しかしテキストファイルが取り出せるにすぎない。
バーコード読み取りでPC側に反映されるかやってみたけどやはりダメ。
つまり、ハンディ側で読み込んだらUSB経由でそのデータ転送する、という簡単なアプリを作らなきゃいけないっぽい。
というのが結論。
以上、ありがとうございました。

ちぇー、そんな機能くらい標準で付いてたっていいじゃないのさ。バーコードリーダーエミュレートモード。


よっぽど、SoftwareのページにあるSDKをインストールしてやろうかと思いましたけど、さすがにそこまで時間ないし、ちょっとやってみてくれという指示もないのでここまで。
あと日本語の開発事例が無いのでどうアプリ組んでいいのかわからず。CEの開発経験もないし。
仕様としては、テキストボックスが一個あって、Enterキー押されたらUSBでつながったPC側のキー入力となるようにデータ転送する、というだけでいいと思うんですが。バーコード→ハンディ上のキー入力 は上記で見てきたように自動でやってくれてるわけだから、そこからPCへの転送だけをやる。
そういうソフトすでにどっかで転がってたりしないかな。

「MCL-Collection for Datalogic Mobile Computers 30/11/2005」っていうのがSoftwareのところに載ってるけど、うたってる通り「enables even non-skilled programmers to quickly develop data collection applications」なら試してみたくもあり。「data collection applications」が想像と違ってたらアレなんですが。



すんげーどーでもいいんですが、Skorpioの製品情報に「Laser scanner with "Green spot", providing good read feedback (Datalogic patent) 」って書いてあった。その通り、バーコード読み込みの赤い横線レーザーが出てて読み込み成功すると緑の丸のレーザーが出るんですが、データロジック社の特許なのかそうなのかー。


なんか5/9の午後になったら、ピッピピッピ音がするので何かと思ったらバーコードリーダーが導入されていた。リーダー機能だけのやつ。それで正しい。


2012/09/12に書きました。

2010年12月 3日 (金)

Windows7のfindはちょっとだけ仕様が違うけどやっぱダメ

Windows7 の find ならば大丈夫かなと思っていろいろやってたら、1行の文字数が4096バイト以上だと、発見はできるけど表示はしてくれないw
2個以上の検索結果がある場合は、1個目が4096バイトで切れることによって改行コードがなくなって、その後ろに続けて表示されているので、コマンドプロンプトの問題ではない。

まぁ検索ではヒットするので、行数さえわかればあとはエディタで見てという流れなのでいいんですけどー。

findstr なら大丈夫かな。検索もできるし表示もされる。
findstr /N "検索文字列" 対象ファイル名 とか。 findstr /? ってすれ。


2012/10/01に書きました。

2010年7月28日 (水)

文字列検索コマンドfindの限界

あれっ、WindowsXP SP3のDOSプロンプトでfindコマンドを使ってたんだけど、1行の大きさに制限あるのかな?
目的の文字列が、1行の771バイト目あたりまでにある場合は見つかったけど、1364バイト目あたりだと見つからなかった。
テキストエディタ(oedit)の検索機能だと見つかったし、GUIのgrepソフトJGREP2というやつでもちゃんと見つかっている。
findの制約についてはざっと探した限りでは出てこなかったんで、自分で試さないといけないのかしらん‥‥

ってことで試してみたら、1行あたり1024バイトまでしか認識しないっぽいねー。検索対象文字列の末尾が1024バイト目を超えているともうダメ。
ダメじゃん。
行全体は1024バイトとか超えててもいい。1024バイトまでにある文字列なら検索できる。
ダメ。

というわけで上述の他の手段で解決ー。


あとJGREP2ってやつは、なんか最近は、なのかも知れないけど、どうも200MBくらいあるテキストファイルを探させようとするとすぐ「Out Of Memory」エラーを吐くっぽい。全然使えない。
もともとオプション項目の中にファイルサイズ制限指定があるって時点でダメじゃんこれとは思ってたんだけど。とりあえず999MBにしてある。1GBのテキストファイルはさすがにそう生成されないので大丈夫でしょう。
UIは悪くないと思ってるだけに、も少しマシになりませんかねぇ。


2012/09/29に書きました。

«gzip話

AmazonSearch


最近のトラックバック

無料ブログはココログ