【ジビエ】イノシシ肉のカルボナード(ビール煮)

イノシシ肉を、姿そのままで購入しました。

角煮を作ろうと思いましたが、思った以上にバラにお肉がなくて、 急遽、晩酌用のビールを使ってカルボナード(ビール煮)にしました。

お肉が箸で切れるぐらい柔らかく仕上がりました。

味付けは濃いめにした方が、お酒のあてとしては最高だと思います。

今回使わなかった部位は、後ほど食材として使用します。

ナレーション:ついなちゃん(VOICEROID2)


【バンドリ】【ガルパ】ティアドロップスの3連スライドを攻略するのです!

おそらく、レベル25の楽曲で一番難しいとされている曲「ティアドロップス」

難しいと言われている所以が、以下の3連スライドなのです。

ここでつまずく人が多い。(オイラも含めて)

まず、こういった、同じところでつまずく場合は、一度プレイ画面をキャプチャ録画して、どこでミスしているのかを確認した方が良いです。

上の動画では、二つ目のスライドの始点でミスしているのがわかりますね。

スライドは始点と終点の指の位置が合っていないとミスト判定される可能性が高いです。

始点と終点の指の位置が正確になるように、意識してプレイして見るとクリアできる確率が高くなりますよ。

最後に、オイラはフルコンしたという証拠を。

【Laravel】【ホテル予約管理】部屋でフィルタをかける

前回までの状況はこちら

最新ソースはこちら

https://github.com/takishita2nd/hotel-mng

今回は予約一覧とスケジュール一覧を部屋でフィルタをかける修正を行います。

フィルタに部屋を追加します。

                    {!! Form::open(['url' => action('RegisterManagementController@indexToMonthly')]) !!}
                    <table>
                        <tr>
                            <td>{!! Form::selectYear('year', 2019, 2020) !!}年</td>
                            <td>{!! Form::selectMonth('month') !!}</td>
                            <td>{!! Form::select('room', $rooms) !!}</td>
                            <td>{!! Form::submit('表示') !!}</td>
                        </tr>
                    </table>
                    {!! Form::close() !!}

部屋情報をViewに渡し、選択した部屋IDを受け取るようにコントローラーを修正します。

    public function index(Request $request)
    {
        if(is_null($request->input('year')) || is_null($request->input('month')) || is_null($request->input('room')))
        {
            return view('register.index', 
                [
                    'registerLists' => $this->registerManagement->getList(),
                    'rooms' => $this->roomRepository->getRoomList()
                ]
            );
        }
        else
        {
            return view('register.index', 
                [
                    'registerLists' => $this->registerManagement->getListByMonth($request->input('year'), 
                                                                                $request->input('month'), 
                                                                                $request->input('room')),
                    'rooms' => $this->roomRepository->getRoomList()
                ]
            );
        }
    }
    public function indexToMonthly(Request $request)
    {
        return redirect('management?year='.$request->year.'&month='.$request->month.'&room='.$request->room);
    }

関数名おかしいけど気にするな。

    public function getListByMonth($year, $month, $room)
    {
        return ReserveManagement::leftJoin('reserve_management_room', 'reserve_managements.id', '=', 'reserve_management_room.reserve_management_id')
                                ->where('start_day', '>=', date('Y-m-d', strtotime('first day of '.$year.'-'.$month)))
                                ->where('start_day', '<=', date('Y-m-d', strtotime('last day of '.$year.'-'.$month)))
                                ->where('reserve_management_room.room_id', $room)
                                ->where('lodging', false)
                                ->orderBy('start_day')
                                ->get();
    }

予約管理テーブルと部屋(正確には中間テーブル)を結合して、指定された部屋番号でwhere句を追加します。

これで得られたリストが年月と部屋でフィルタされたものになります。

同じようにスケジュール一覧も修正します。

    public function schedule(Request $request)
    {
        if(is_null($request->input('year')) || is_null($request->input('month')) || is_null($request->input('room')))
        {
            return view('register.schedule', 
                        [
                            'Lists' => $this->registerManagement->getSchedule(),
                            'rooms' => $this->roomRepository->getRoomList()
                        ]
                    );
        }
        else
        {
            return view('register.schedule', 
                [
                    'Lists' => $this->registerManagement->getScheduleByMonth($request->input('year'), 
                                                                            $request->input('month'),
                                                                            $request->input('room')),
                    'rooms' => $this->roomRepository->getRoomList()
                ]
            );
        }
    }
    public function scheduleToMonthly(Request $request)
    {
        return redirect('management/schedule?year='.$request->year.'&month='.$request->month.'&room='.$request->room);
    }
    public function getScheduleByMonth($year, $month, $room)
    {
        return ReserveDayList::select('day', 'reserve_managements.name as name', 'rooms.name as room', 'lodging')
                                ->leftJoin('reserve_day_list_reserve_management', 'reserve_day_lists.id', '=', 'reserve_day_list_reserve_management.reserve_day_list_id')
                                ->leftJoin('reserve_managements', 'reserve_day_list_reserve_management.reserve_management_id', '=', 'reserve_managements.id')
                                ->leftJoin('reserve_management_room', 'reserve_managements.id', '=', 'reserve_management_room.reserve_management_id')
                                ->leftJoin('rooms', 'reserve_management_room.room_id', '=', 'rooms.id')
                                ->where('day', '>=', date('Y-m-d', strtotime('first day of '.$year.'-'.$month)))
                                ->where('day', '<=', date('Y-m-d', strtotime('last day of '.$year.'-'.$month)))
                                ->where('rooms.id', $room)
                                ->orderBy('day')
                                ->get();
    }

リポジトリはガッツリ書き換えました。

全部テーブルを結合して、where句でフィルタして、必要な情報をselectして・・・とやって、全部データベース一発で出力できるようにしました。

あとは集計処理ですな。

バナークリックで応援よろしくお願いします。

【ぼっち】蕎麦鳥バスセンター前店

先日、バンドリクリパのライブビューイングがあったので、その時間までの時間つぶしと、BanG Dream! 3rd seasonの制作発表会のライブ試聴のため、寄っていったお店です。

以前、ランチでおそばを頂いたのですが、ディナーも安く飲めるらしいので、今回このお店を選択しました。

というか、サッポロファクトリーの周りって、飲めるところ少ないよね。

飲み放題90分750円ですが、+230円でビール付きにすることもできます。

日替わりで色々サービスが変わるようです。

入店した日は、鳥ハツとキノコのバター炒めが100円引きでした。

美味しかったのは焼き鶏ね。

味噌とか、特製だれで味付けしてあるの。

めっちゃ美味しかった。

また近くに来ることがあったら寄りたいな。

駅から近いしね。

ごちそうさまでした。

バナークリックで応援よろしくお願いします。

【Laravel】スケジュールの重複をチェックする

前回までの状況はこちら。

最新ソースはこちら。

https://github.com/takishita2nd/hotel-mng

今回も内容薄いかもしれん。

今までは予約登録時、日にちが重複していればエラーを表示させていました。

これが通用するのは部屋が一つしか無い場合のみでして、

今回は部屋が複数あるので、日にちだけのチェックだけではなくて、部屋もチェックに含めなければいけません。

というわけで、引数に部屋IDを追加。

    /**
     * 登録処理
     */
    public function store(ManagementRequest $request)
    {
        if($this->registerManagement->checkSchedule($request->start_day, 
                                                    $request->days, 
                                                    $request->room) == false)
        {
            return redirect('management/create')
                        ->with(['error' => 'スケジュールが重複します'])
                        ->withInput();
        }
    /**
     * 更新処理
     */
    public function update(ManagementRequest $request)
    {
        if($this->registerManagement->checkScheduleForUpdate($request->start_day, 
                                                            $request->days, 
                                                            $request->id, 
                                                            $request->room) == false)
        {
            return redirect('management/create')
                        ->with(['error' => 'スケジュールが重複します'])
                        ->withInput();
        }

そしてチェック処理本体。

    /**
     * スケジュールの重複を確認する
     * 
     * @return boolean
     */
    public function checkSchedule($date, $num, $room)
    {
        for($i = 0; $i < $num; $i++)
        {
            $record = ReserveDayList::where(['day' => date('Y-m-d', strtotime($date.'+'.$i.' day'))])->first();
            if(is_null($record) == false)
            {
                if($record->reserveManagements()->first()->rooms()->first()->id == $room)
                {
                    return false;
                }
            }
        }

        return true;
    }
    /**
     * 更新時のスケジュールの重複を確認する
     * 
     * @return boolean
     */
    public function checkScheduleForUpdate($date, $num, $userId, $room)
    {
        for($i = 0; $i < $num; $i++)
        {
            $model2 = ReserveDayList::where(['day' => date('Y-m-d', strtotime($date.'+'.$i.' day'))])->first();
            if(is_null($model2) == false)
            {
                if($model2->reserveManagements()->first()->rooms()->first()->id == $room)
                {
                    if($model2->reserveManagements()->first()->id != $userId)
                    {
                        return false;
                    }
                }
            }
        }

        return true;
    }

strtotime($date.’+0 day’)ってできたんだ。

やってることは部屋チェックを追加しただけです。

簡単ですね。

これで、日付は同じだけど部屋が違う場合は予約可、日付と部屋が同じ場合は予約不可、というロジックが完成しました。

バナークリックで応援よろしくおねがいします。

【バンドリ】【ガルパ】BanG Dream! 3rd SEASON発表会での新情報

本日行われたBanG Dream! 3rd season発表会の内容からバンドリ!ガールズバンドパーティ!の情報を抜粋します。

新曲追加

BanG Dream! 3rd seasonのOP「イニシャル」が本日21時に追加されました。

他2曲も実装予定です。

カバー曲キャンペーン。

Twitter上での予想は、

マクロス・Fの「ライオン」?

五等分の花嫁の「五等分の気持ち」?

「!」はいろいろ予想が別れているようです。

というか、これだけじゃわからんわ。

12月22日のハロハピ放送局で明らかになるようです。

その他、ログインキャンペーンなどが行われます。

年末年始も眠れない。

【自作PC】【男のロマン】フルスペックのMac Proに対抗できる自作PCを考えてみる

実際に組むわけではないけど、もしMac Proに対抗できる自作PCを作ったら、という前提で検討してみた。

もはやこれは男のロマンの話です。

オイラが机上で考えた構成なので、動作確認はできません。

自己責任でお願いします。

買えるとは思えませんが。

CPU

Xeon W-3275M

https://kakaku.com/item/K0001211650/

型番の後ろにMが付いているのと付いていないのがありますが、Mが無いと、メモリ1TBまでしか認識しないそうです。

つまり、Mac Proのフルスペックが1.5TBなので、必然的にMが付いたモデルになります。

97万円。

マザーボード

Z11PA-U12

https://kakaku.com/item/K0001043740/

Mac Proのフルスペックである1.5TBのメモリを搭載するにはメモリスロット12個のマザーボードに128GBのメモリを搭載しなければいけません。

その上で、CPUに対応するソケットはLGA3647なので、それに対応するマザーボードを選択しました。

6万円。

でもさらに上を行くこともできます。

CPU2個搭載するモデルですが、メモリスロット16個のヤツを買えばメモリ2TBが可能です。

メモリ

クルーシャル 128GB DDR4 2666 MT/s (PC4-21300) CL19 Octal-Rank x4 CT128G4ZFJ426S

https://www.askul.co.jp/p/E693297/?int_id=recom_DtVar

上にも書いたとおり、1.5TBのメモリを実現するには、128GBのメモリが12枚必要です。

22万円×12枚=264万円。

グラフィックボード

HP Q1K37A AMD Radeon Pro WX7100 GPU モジュール

https://product.rakuten.co.jp/product/-/cea5a95901c6a369598272b7921f253a/?scid=we_twt_upc249

最近出たばかりのグラボですが、これがMac Proと同じモデルのはずです。

16万円。

ストレージ

7.68TB 5210 ION SSD SATA 2.5インチ エンタープライズ

この当たりだったら購入しても現実的に使えそう。

8TBのSSDです。

13万円。

あとは、電源ユニット、PCケース、CPUクーラーなどがありますが、価格.comでも多くの種類がヒットしますし、そんなに値段もしないでしょう。

とりあえず、一番お金がかかりそうなところをピックアップしてみました。

総額。

およそ400万円。(+電源とかいろいろ)

すごいぞ、自作PcならMac Proに匹敵するPCを400万で作れる!(机の上の計算では)

バナークリックで応援よろしくおねがいします。

【Laravel】【ホテル予約管理】スケジュールと部屋の連携

前回までの状況はこちら

最新ソースはこちら

https://github.com/takishita2nd/hotel-mng

今回は中身薄いかも。

スケジュール画面に部屋名を表示させます。

難しいことはなく、画面に部屋名の表示を付け足すだけです。

                    <table class="schedule">
                        <tr>
                            <th class="date">日時</th>
                            <th class="name">名前</th>
                            <th class="room">部屋</th>
                            <th class="lodging">宿泊状況</th>
                        </tr>
                    @foreach ($Lists as $list)
                        <tr>
                            <td class="date">{{ $list['day'] }}</td>
                            <td class="name">{{ $list['name'] }}</td>
                            <td class="room">{{ $list['room'] }}</td>
                            @if ($list['lodging'])
                                <td class="lodging">チェック</td>
                            @else
                                <td class="lodging">未チェック</td>
                            @endif
                        </tr>
                    @endforeach
                    </table>
    /**
     * スケジュール一覧を取得する
     */
    public function getSchedule()
    {
        $lists = array();
        $index = 0;
        $models = ReserveDayList::orderBy('day')
                                    ->get();
        foreach($models as $model)
        {
            $lists[$index] = array(
                                'day' => $model->day,
                                'name' => $model->reserveManagements()->first()->name,
                                'room' => $model->reserveManagements()->first()->rooms()->first()->name,
                                'lodging' => $model->reserveManagements()->first()->lodging
                            );
            $index++;
        }
        return $lists;
    }

    /**
     * 月別スケジュール一覧を取得する
     */
    public function getScheduleByMonth($year, $month)
    {
        $lists = array();
        $index = 0;
        $models = ReserveDayList::where('day', '>=', date('Y-m-d', strtotime('first day of '.$year.'-'.$month)))
                                ->where('day', '<=', date('Y-m-d', strtotime('last day of '.$year.'-'.$month)))
                                ->orderBy('day')
                                ->get();
        foreach($models as $model)
        {
            $lists[$index] = array(
                                'day' => $model->day,
                                'name' => $model->reserveManagements()->first()->name,
                                'room' => $model->reserveManagements()->rooms()->first()->name,
                                'lodging' => $model->reserveManagements()->first()->lodging
                                );
            $index++;
        }
        return $lists;
    }

レコード一件ずつ参照してデータを取り出しているので、同じようにリレーションを使って部屋テーブルの部屋名を取り出している、という感じですね。

今回は難しくなかった。

残るは、部屋の競合チェック処理を変えなくちゃいけないのと、部屋でフィルタ表示させたい。

あとは部屋ごとの集計かな。

バナークリックで応援よろしくお願いします。

自分、ぼっちですが何か?