2019前売りチケットの価格3

カリフォルニア州でスキーをするために必須となる前売りチケットの価格調査です。さて、9/3からEPIC PASSが値上がりしているはずなので、今日は9/4と1日遅れではありますが、価格調査をしておきます。

去年の傾向からすると$10くらいしか上がらないだろうなんて思っていましたが、ねらっていたTahoe Valueはなんと$30あがりましたね。なかなかこれはインパクトありました。値上がり前に買った人おめでとうございます。

チケット 4/16 9/2 9/4
EPIC 4day $456 $456 $470
EPIC 7day $731 $731 $753
EPIC Tahoe local $589 $589 $609
EPIC Tahoe value $499 $499 $529
EPIC $939 $939 $969
Sugar Bowl unrestricted $699 $809 $809
Sugar Bowl slightly restriced $499 $599 $599

seleniumでウェブスクレイピング2

去年、スキーチケットの価格を楽に調査しようと思って作ったPythonSeleniumで作ったウェブスクレイピングはこちらでした。

tomo3i.hatenablog.com

そして、無事取得できたことがうれしくて、何度も実行した結果、Akamaiから不正アクセスIPとして認定されるという苦痛を味わったのは、そこに書いた通りです。それ以来Akamaiは嫌いです。Akamai使ってなくてもレスポンス良いサーバーなんていくらでもあると思う。

1週間ぐらいおとなしくしていると無事にいろんなアクセス制限が解除されたので、今回のところは最悪1週間待てばなんとかなる、という安心感?のもと、待ち時間をたっぷり入れて人間がアクセスしてるのと変わらない感じにしておきます。去年とは価格が書かれているサイトの構造がいくつか変わっていたので更新しました。

というわけで、全ソースコードを貼っておきます。くれぐれもご注意ください。

続きを読む

2019前売りチケットの価格2

カリフォルニア州でスキーをするために必須となる前売りチケットの価格調査です。本日9/2がこの価格でEPICを買える最終日ということで価格をメモしておきます。 結局のところ、EPICは早期購入でBody Passがついてきたという特典がなくなっただけで、価格は今日まで変わりませんでしたね。そしてSugar Bowlは値上がりがすごい。 去年の傾向からすると、そんなに値上がりしないと思っていましたが。

チケット 4/16 9/2
EPIC 4day $456 $456
EPIC 7day $731 $731
EPIC Tahoe local $589 $589
EPIC Tahoe value $499 $499
EPIC $939 $939
Sugar Bowl unrestricted $699 $809
Sugar Bowl slightly restriced $499 $599

Deadline Extended!

カリフォルニア州でスキーをするために必要になるリフトチケットですが、すでに来シーズンのチケット販売は始まっています。基本的に早期に購入すると安くなりますが、早期購入特典として、Heavenly, Northstar, KirkwoodでつかえるEPICは、4/15までに購入するとBuddy Ticketが10枚ついてくる!という早期購入得点を実施していました。そして今日はすでに締め切りを過ぎていますが、タイトルに書いた通り、4/19まで延長されました。焦って買った人の気持ち考えたらちょっとかわいそう。

Sugarbowlのほうは、3月のいつ頃からか、来シーズンのシーズン券で今シーズン滑り放題、というのをやっています。今年は大雪だったらしく、いけるとこまで営業しよう、という感じのようです。昨夜も4インチの雪が積もったとのことで、まだまだいけるのでしょう。

というわけで、

チケット 4/16
EPIC 4day $456
EPIC 7day $731
EPIC Tahoe local $589
EPIC Tahoe value $499
EPIC $939
Sugar Bowl unrestricted $699
Sugar Bowl slightly restriced $499

ちなみに今シーズンの調査はこういう感じでした。4月ごろは知らないけど、EPICは強気に値上げしてきましたね。

チケット 10/7 10/11 11/22 12/8 12/20 12/27
EPIC 4day $479 $489 $489 N/A N/A N/A
EPIC 7day $689 $709 $709 N/A N/A N/A
EPIC Tahoe local $589 $609 $609 N/A N/A N/A
EPIC Tahoe value $499 $519 %519 N/A N/A N/A
EPIC $929 $949 $949 N/A N/A N/A
Tahoe Super 4 $369 $369 $389 $409 $409 $439
Sugar Bowl unrestricted $799 $799 $829 $829 $829 $879
Sugar Bowl slightly restriced $589 $589 $619 $619 $619 $639

2018 7日目 Heavenly part 3

前回がけっこう楽しかったからまたまたきてしまったHeavenly。

天気とか道路状況とか

晴れを狙って道路状況を確認してきたから路面にまったく雪はなし。快晴。最高。雪質は、そんなに悪くない。14時過ぎのStagecoachロッジのあたりは砂みたいになってるけど、コース自体はややゆるんでるな、って程度。3000mある最高地点はなかなかの雪質を保っている。もちろんほわほわの新雪ではないけど。

気に入っているリフトとコース

STAGECOACH EXPRESS

駐車場から最初に乗るリフト。多くの人はこれに乗ったら右に降りてDIPPER EXPRESSの方に行ってしまうんだけど、左に降りてSTAGECOACHやEMILY'S RUNからリフト下まで降りてくるコースが実は最高。朝は誰も滑ってないし整地したてで気持ちいい斜面。今回iSkiを使ってログをとってみたけど、ここで時速80kmが記録されていた。たぶん嘘だと思う。なんせ朝一はSTAGECOACHで決まり。

間違ってもやや奥側のCOMSTOCKとかMINESHAFTとかには行ってはいけない。いや、まあ行ってもいいんだけど、GALAXYのほうに行ってしまって、STAGECOACHには簡単に戻ってこれなくなるし、GALAXYはとっても遅い。EXPRESSリフトは14km/hだけどGALAXYは7km/yくらいで遅いし13分くらい乗っていないといけない。

DIPPER EXPRESS

リフトをおりて右側に出ると、Lake Tahoeのすばらしい景色が広がる。みんな写真を撮ってるから人を避けて進んでORIONへ。一気にリフトのふもとまで滑り降りれる気持ちの良いコース。カービングターン最高。と前回書いたけど、今回は斜度が物足りなく感じた。STAGECOACH最高。

OLYMPIC EXPRESS

何かよくわからない気持ち良さがある。カービングターン最高。と前回書いたけど、今回は来たのが遅かったからなのか、路面が荒れていてやや楽しみにくかった。午前中に来た方がいいのかも。

COMET EXPRESS

リフトをおりて右でも左でもどちらからも行けるLITTLE DIPPERはコブ斜面。斜度はそんなにきつくないはず。いつまでたってもコブは下手すぎるけど、いつか滑れるようになりたい。前回と同じことを思った。2個とか3個前のこぶを見よう。ひざを曲げてから入るっていうのは試したけどイマイチだった。

いちおう行くけど2回は行かないコース

SKY EXPRESSはとにかく混んでいる。となりのCANYON EXPRESSは空いてるのに。LIZ'Sは整地してるって言われたけどぼこぼこだった。12時くらいだったのに。TAHOEに滑り降りていく景色はすばらしいけど。HIGH FIVEは整地してたけどやや斜度がゆるい。DOUBLE DOWNは右側半分整地で左側半分はこぶ斜面。リフトがあまりにも近くにあってこぶで下手なのをさらしたくなくて滑りづらい。

山頂からネバダに戻るコースは次回は動画を撮ろうと思う。景色を楽しむだけのコース。初心者ボーダーは平らでつらいと思う。

TAMARACK EXPRESSはなんと6人乗りだけど4人ずつくらいしか乗らないからゆったり。ゴンドラであがってきたひとをさらにあげるために6人なんだろうね。でもCASCADEはとくに印象無し。

とりあえず山頂に、最高地点に行きたいから行くだけいくけど、ただそれだけ。ネバダ側にもどってくるSKYLINE TRAILは、中級ってことになってるけど斜度はゆるくて良い景色を眺めながら直滑降する感じ。

駐車場

Stagecoachに8:15くらいについたけど近い方は満車だった。遠い方は半分以上空いてた。

まとめ

最高に気持ちよかった。また行きたい。Sugar Bowlのほうが1日券が安いから、難しいところ。道路はi80の方が走りやすいような、Heavenlyの方が渋滞がマシなような。という感想は今回も同じ。次行くとしたらSugar BowlにするのかHeavenlyにするのか、悩ましい。

2018 6日目 Heavenly part 2

天気とか道路状況とか

待ちに待った晴れが続いたあとの週末。路面に雪はまったくなし。余裕で走れます。本当にずーっとチェーン規制が続いてたからひさびさにこういう天気になった、っていうかんじ。新雪をとるのかチェーン規制なしをとるのか、それが問題だ。

気に入っているリフトとコース

DIPPER EXPRESS

リフトをおりて右側に出ると、Lake Tahoeのすばらしい景色が広がる。みんな写真を撮ってるから人を避けて進んでORIONへ。一気にリフトのふもとまで滑り降りれる気持ちの良いコース。カービングターン最高。最後、JACK'SにいくのかORIONにいくのかはどっちでも、むしろどっちもあんまりかも。

OLYMPIC EXPRESS

リフトをおりて右側に出てOLYMPIC DOWNHILL。斜度はORIONよりゆるい気がするけど、何かよくわからない気持ち良さがある。カービングターン最高。

COMET EXPRESS

リフトをおりて右でも左でもどちらからも行けるLITTLE DIPPERはコブ斜面。斜度はそんなにきつくないはず。いつまでたってもコブは下手すぎるけど、いつか滑れるようになりたい。

いちおう行くけど2回は行かないコース

SKY EXPRESSはとにかく混んでいる。とりあえず山頂に、最高地点に行きたいから行くだけいくけど、ただそれだけ。ネバダ側にもどってくるSKYLINE TRAILは、中級ってことになってるけど斜度はゆるくて良い景色を眺めながら直滑降する感じ。

お食事休憩

DIPPER EXPRESS, COMET EXPRESSのふもとにあるEAST Peak Lodgeで。天気が良いからオープンテラスも気持ちいい。11:30オープンのグリルで焼いたハンバーガー。11:30にはおいてないけど11:45くらいにはおいてあった無料のトッピング、これが出てくるのを待ってから買うべき。

駐車場

Stagecoach lodge, Boulder lodge, California lodgeの3箇所は無料駐車場。だんぜんネバダ側が滑りやすいのとEXPRESSリフトなStagecoachがいちばんオススメ。8:25くらいについたらほぼ満車だった。

まとめ

最高に気持ちよかった。また行きたい。Sugar Bowlのほうが1日券が安いから、難しいところ。道路はi80の方が走りやすいような、Heavenlyの方が渋滞がマシなような。

Storyboardを使わずにMacOSアプリを作ってHello Worldする方法

検索しても意外と出てこない。みなさん本当にStoryboardを使っていらっしゃるのでしょうか。それとも検索の仕方が悪いのでしょうか。

はじめに

作業環境はこんな感じ - macOS 10.14.3 Mojave - XCode 10.1 - Swift 4

プロジェクトの準備

プロジェクトを新規作成する。このときに Storyboard を使わないように設定する。そうすると AppDelegate.swift というファイルが作成される。

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    @IBOutlet weak var window: NSWindow!


    func applicationDidFinishLaunching(_ aNotification: Notification) {
        // Insert code here to initialize your application
    }

    func applicationWillTerminate(_ aNotification: Notification) {
        // Insert code here to tear down your application
    }


}

ソースコードの編集

applicationDidFinishLaunching の中をこんな風に書き換えます。

    func applicationDidFinishLaunching(_ aNotification: Notification) {
        // Insert code here to initialize your application
        window.title = "Hello World"
        let windowWidth = window.frame.width
        let windowHeight = window.frame.height
        
        let helloLabel = NSTextField()
        helloLabel.stringValue = window.title
        helloLabel.sizeToFit()  // Resizes the receiver to fit its text.
        let x = windowWidth/2 - helloLabel.bounds.width / 2
        helloLabel.setFrameOrigin(NSPoint(x:x, y:windowHeight/2))
        
        let view = NSView(frame: NSRect(x:0, y:0, width:windowWidth, height:windowHeight))
        view.addSubview(helloLabel)
        window.contentView?.addSubview(view)
    }

やっていることは - なんとなくウィンドウのタイトルも Hello World にしてみる - あとで使うためにウィンドウ幅と高さを保存 - NSTextField を作る - 文字列を Hello World に設定(ウィンドウタイトルと同じにする) - NSTextFieldの大きさを文字列がおさまるようにリサイズ - frameの起点位置を調整して文字列が画面の真ん中に来るようにする - NSViewを作ってHello World文字列を追加 - WindowのViewに今作ったViewを追加 という感じ。表示したいだけならNSViewを経由しなくても良い。

frame というのは下の参考資料のリンクによると、「frameの四角形は、superview上における位置とサイズです」ということです。superviewというのは親Viewですね。

参考資料

developer.apple.com

そもそもViewってなんなの?という疑問に答えるページ。Viewとは階層構造になっていて、という解説があります。 developer.apple.com

そもそもAppleはどんなNSViewを準備しているの?という疑問に答えるページ。 developer.apple.com