家族について考えるパパのブログ

普段の生活をいかに快適に過ごすかを考えて実践をしていくブログ

旅行をワクワクさせる台湾旅行体験記

 

たかちです!

今回は、台湾旅行を実際に記録に残している体験記の中から面白いと感じたものを挙げさせていただきます。

これらを読むと「早く行きたい!!!」という気持ちが高まります!

ぜひ、準備期間中にでも出国前でもご覧ください。

 

 

1. 台湾旅行記

wondertrip.jp

 

caplog.hatenablog.jp

 

tabirabbi.com

 

trippedia100.com

 

blog.nzakr.com

 

sekaitravelist.com

 

台湾旅行の総合情報はこちら!

takahitonakashima.hatenablog.com

 

-------------------------------------------------------------------------------------

補足:このまとめブログを作成している理由 

台湾に旅行に行きたい!

けど、情報ってバラバラ存在しすぎじゃないか?

そんな気持ちからこのまとめページを作りました。

「こんな情報もあったら便利だよ。」という声や「これも載せるべきだよ。」というような声も募集しています。

台湾旅行で抑えておきたいこの一本! (2019/05版)

 

たかちです!

今回は、台湾旅行を考える時に見ておきたい情報をまとめました。(2019/05版)

ぜひ皆様の大切なご旅行のためにご活用ください。

 

 

 

1. おすすめのホテル

 1-1. 定番 

www.tour.ne.jp

    
fishand.tips

 1-2. 高級ホテル

re-lief.net

  

2. 飛行機について

gloupes.com

 

3. おすすめの食事

taiwan55.com

 

4. おすすめのおやつ

douxiataiwan.com

 

 

5. おすすめの観光地

 5-1. 定番

retrip.jp

 5-2. 穴場

tabinaka.co.jp

 

6. おすすめのお土産

www.tour.ne.jp

 

7. 雑貨

www.travel.co.jp

  

 

8. もっと細かく! 関連情報

8-1. 旅行体験記を見る

takahitonakashima.hatenablog.com

 

8-2. 台湾の歴史を知る

takahitonakashima.hatenablog.com

 

 

-------------------------------------------------------------------------------------

補足:このまとめブログを作成している理由 

台湾に旅行に行きたい!

けど、情報ってバラバラ存在しすぎじゃないか?

そんな気持ちからこのまとめページを作りました。

「こんな情報もあったら便利だよ。」という声や「これも載せるべきだよ。」というような声も募集しています。

【Angular】Observableをimport仕様としたときのエラー

こんにちは。

Angularを書いていた際の備忘を残しておきます。

 

app.component.tsにて、

import { Observable } from 'rxjs/Observable';

でObservableをimportしようとした際のエラー。

Module '"d:/workspace/Angula-Apps/angular-chat/node_modules/rxjs/Observable"' has no exported member 'Observable'.

 

これは、RxJsのUpdateによって仕様が変更したため。

解決策としては、以下のようにする。

import { Observable } from 'rxjs';

 

以上です。

 

【Angular】ルーティングの設定

こんにちは。

Angularのルーティングの設定についてまとめておこうと思います。

 
 

利用するModule

Angularでルーティングの設定をする際には、RouterModuleを利用する。
 

以下、具体例

app.module.ts
RouterModule.forRoot([
{
path: 'members',
component: MembersComponent
}
])
 
ちなみに、index.htmlでRootとなるPathを指定するが、そこは以下のようになっている。
index.html
<base href="/">
 
そのため、今回の場合だと
/members
というようにすると、MembersComponent が呼ばれるというような意味になる。
 
メインとなるapp.component.tsではRouterOutletを用いる。
 
このRouterOutletは選択されているPathに該当するComponentを表示するというような意味になる。
そのため、app.component.tsのtemplateを以下のようにする。
@Component({
selector: 'my-app',
template: `
<h1>{{title}}</h1>
<a routerLink="/members">社員一覧</a>
<router-outlet></router-outlet>
`
})
 
また、この時該当のLinkへ簡単に遷移することができる、routerLinkというディレクティブもAngularには用意されているので、そちらも併せて利用する。
 
読んでいただきありがとうございます。
もし、質問や指摘などありましたらコメントに記していただけるとありがたいです。

【Angular】コールバック(関数)とは

こんにちは。

今日は、言葉自体は何度も聞いたことがあるもののしっかり自分の中で腹落ちしていなかった、コールバック(関数)について書いてみます。

 

コールバック(関数)とは

・「引数として渡される関数」です。
 「ある処理を実行してから、特定の関数を実行したい」というようなときに行うもの。
 

具体例1 

ngOnInit(): void {
// constructorが実行された後、初期化時に呼ばれるコールバック
this.getMembers();
}
例えば、Angularのコンポーネントのライフサイクルには、ngOnInit()というものがある。
これは、Constructorが実行された時に呼ばれるものです。
ngOnInit()を用いると、Constructorが実行された後に、その中で記している処理を実行する。
 

具体例2

他にも、clickイベントなどもそれに当たる。
<ul class="members">
<li *ngFor="let member of members" (click)="onSelect(member)" [class.selected]="member === selectedMember">
<span class="badge">{{member.id}}</span> {{member.name}}
</li>
</ul>
この場合であれば、
> (click) = "onSelect(member)"
というものがある。
リストをクリックすると onSelectメソッドが呼ばれるというものだが、これもコールバックである。
これは、関数というには少し語弊がある気がしますが、概念的にはコールバックといえるでしょう。
 
読んでいただきありがとうございます。

【Angular Error】ERROR TypeError: Cannot read property 'name' of undefined

こんにちは。

今回はAngularのキャッチアップをしている際にErrorが起きたのでそれをメモしておきます。

 

エラー内容

ERROR TypeError: Cannot read property 'name' of undefined

 

 エラーが発生したソースコード

app.component.ts
import { Component } from '@angular/core';
 
export class Member {
id: number;
name: string;
}
 
const MEMBERS: Member[] = [
{ id: 11, name : '竹山 岳'},
{ id: 12, name : '西山 景'},
{ id: 13, name : '富沢 堅固'},
{ id: 14, name : '田中 泰治'},
{ id: 15, name : '富田 恵子'},
{ id: 16, name : '砂糖 隆'},
{ id: 17, name : '小林 純一'},
{ id: 18, name : '真子 工事'},
{ id: 19, name : '田中 雄大'},
{ id: 20, name : '鈴木 隆'},
{ id: 21, name : '小池 あこ'},
]
 
@Component({
selector: 'my-app',
template: `
<h1>{{title}}</h1>
<h2>社員一覧</h2>
<ul class="members">
<li *ngFor="let member of members" (click)="onSelect(member)">
<span class="badge">{{member.id}}</span> {{member.name}}
</li>
</ul>
<h2>{{selectedMember.name}}</h2>
<div><label>id: </label>{{selectedMember.id}}</div>
<div>
<label>name: </label>
<input type="text" [(ngModel)]="selectedMember.name" placeholder="名前">
</div>
`,
styles : [ `
.selected {
background-color: #CFD8DC !important;
color: white;
}
.members {
margin: 0 0 2em 0;
list-style-type: none;
padding: 0;
width: 15em;
}
.members li {
cursor: pointer;
position: relative;
left: 0;
background-color: #EEE;
margin: .5em;
padding: .3em 0;
height: 1.6em;
border-radius: 4px;
}
.members li.selected:hover {
color: #607D8B;
background-color: #DDD;
left: .1em;
}
.members .text {
position: relative;
top: -3px;
}
.members .badge {
display: inline-block;
font-size: small;
color: white;
padding: 0.8em 0.7em 0 0.7em;
background-color: #607D8B;
line-height: 1em;
position: relative;
left: -1px;
top: -4px;
height: 1.8em;
margin-right: .8em;
border-radius: 4px 0 0 4px;
}
`
]
})
export class AppComponent {
 title = '自社社員名簿';
members = MEMBERS;
selectedMember: Member;
 
onSelect(member: Member): void {
this.selectedMember = member;
}
}
 
 

原因

以下のコードでは、selectedMemberの初期値が入ってなく、nameを参照することができないからErrorになっている。
 

解決法

<div *ngIf="selectedMember">
<h2>{{selectedMember.name}}</h2>
<div><label>id: </label>{{selectedMember.id}}</div>
<div>
<label>name: </label>
<input type="text" [(ngModel)]="selectedMember.name" placeholder="名前">
</div>
</div>
<div *ngIf="selectedMember">を追加する。
 

<div *ngIf="selectedMember">とは

selectedMemberが存在する場合に、その中の要素を表示するという意味を持っている。
 
 
※この辺りに関連するGithub

https://github.com/TakahitoNakashima/Angula-Apps/tree/master/angular-tutorial

絶賛キャッチアップ中なので、指摘事項などあったらコメントしていただけるとありがたいです。

また、質問もいただけるとありがたいです。全力で一緒に考えます。

 
 

魯肉飯(ルーローハン)が嫌いな理由

こんにちは。

最近、魯肉飯を食べてとても苦手だったので嫌いな理由をまとめたいと思います。

 

魯肉飯(ルーローハン)が嫌いな理由

・臭い

・ちょっと甘い

 

筆者の前提

・魚の煮つけなど甘い食べ物はあまり好んで食べません

・それ以外のものはわりとなんでも食べます

 

嫌いな理由のポイント1

臭い

魯肉飯は臭いです。口に入れた途端にモワッとした香りが口の中に漂います。

この原因は 八角 と呼ばれる台湾では一般的な香辛料です。

八角とは星形の実を持っており、スターアニスという別名も持っています。(ちょっとカッコいい)

八角はインフルエンザの治療薬であるタミフルの原料として使われたりし、漢方薬としての立ち位置も有しています。

 

なんで八角を利用するのか

・そもそも台湾では一般的に使われているため

・豚肉の臭いを消すため

 

八角を利用する理由1

そもそも台湾では一般的に使われているため

日本では調味料として、塩・しょうゆ・砂糖を使います

それと同じ感じで当たり前のように台湾の人たちは八角を使う。

それだけと言えば、それだけの理由です。

 

八角を利用する理由2

豚肉の臭いを消すため

豚肉は少し傷んだりすると、臭いが出やすい食べ物です。

その臭いを消すために八角を利用します。

ちなみに、日本の場合では以下のようなものが主に豚肉の臭いを消すために使われます。

・お酒

・ショウガ

・玉ねぎ

重曹 等

 

嫌いな理由のポイント2

ちょっと甘い

魯肉飯はちょっと甘いです。

個人的にご飯には甘いものを合わせたくありません。

※九州の料理は甘いので苦手です。

 

まとめ

・魯肉飯は臭くて甘いから嫌いです。

 

ハマる人もいるそうなので、人それぞれですね。

読んでいただきありがとうございます。

Spring Frameworkの@RequestMappingで複数のmethod属性を設定する

こんにちは。

今回は、Spring Frameworkを使っていてGET でも POSTでも受けたい場合に少し困ったので、

その方法についてメモを残しておきます。

 

結論

// 複数のmethod属性を指定

@RequestMapping(method = {RequestMethod.GET, RequestMethod.POST} )

 

 

こうやればできます。

 

ちなみに、ひとつだけの場合は以下。

@RequestMapping(method = RequestMethod.GET)

 

以上。

ありがとうございました。

今僕がこの会社で働いている理由

こんにちは。

今日はなぜ今転職せずにこの会社にいるのかを書いてみます。

 

 

 

 

この記事を書こうと思った理由

・転職していった先輩に「外から見たら崩壊している会社」と言われたこと

・自分自身悩んでいることなので整理をしたいと思ったこと

 

今僕がこの会社で働いている理由

・お客様にとって良いモノを提供できると信じていること

・他の会社とは違う業務範囲の仕事ができること

・他社の話を聞いてそれよりは良い状況にいると思ったこと

 

この会社にいると微妙かもしれないこと

・そもそも崩壊してると思われてる会社にいるってどうなの?

・社会人として一般的な常識が欠如している可能性があること

・Web系の会社に比較すると最新な技術を使っているわけではいないこと

 

ポイント1

お客様にとって良いモノを提供できると信じていること

僕が所属している会社はお客様にシステムを提供する会社です。

そのシステムはお客様を幸せにできると本気で思っています。

そのために努力をすることは苦ではないし、むしろそのために頑張りたいと思っています。

 

ポイント1の理由

自身の経験ですが、配属当初実際にお客様先に行って話をすることがありました。

その時のお客様の「こんなシステムできるの?」というようなキラキラした表情を忘れられないからそのように感じているのだと思います。

 

ポイント2

他の会社とは違う業務範囲の仕事ができる

今の僕自身の仕事は「企画」「開発」「オフショア開発」を業務として行っています。

このように広い範囲を担当させてもらえる会社が実際どれくらいあるのかを考えた時に、1つのメリットとしてこれを上げました。

 

ポイント2の理由

これは先輩の話なのですが転職をした人がいました。

その人はSIerに常駐していて、オフショア開発をしています。

その体験を元に「こんな業務範囲をできるのはこの会社だけだ」というような話をしていたのです。

普通の会社なら効率化するために各個人のタスクをもっと細かく分けるようです。

 

ポイント2が孕んでいるリスク

「広い業務範囲をやる」ということは「それぞれが薄っぺらい可能性がある」と思っているので、その辺りについては注意して生活を送らないといけないと考えています。

 

ポイント3

他社の話を聞いてそれよりは良い状況にいると思ったこと

今の自分がエンジニアとして置かれている状況は、一般的なSIerよりは技術的にも職場環境的にも良い状況であり、エンジニアとしてバリバリやるWeb系の会社よりはダメな状況だと考えています。

そのため、ある程度大きな会社にいることを加味すると職場環境的にはそれほど悪い状況ではないと判断しています。

当然、Web系の会社ほど最新の技術を使って仕事を行うわけではないので、「微妙なこと」として「Web系の会社に比較すると最新な技術を使っているわけではいないこと」ということを挙げさせていただいています。

 

微妙な点1

そもそも崩壊してると思われてる会社にいるってどうなの?

そもそも外部の人から見て崩壊していると思われるような会社にいるのはどうなのかという点についてです。

僕としては「27歳くらいまでは他社では若手として扱われる」ということを転職エージェントの担当者に聞いたので、ある程度それを信じています

そのため、若手として扱われるうちは崩壊している会社でチャレンジすることは(本当に死に物狂いでチャレンジするのであれば)問題ないと考えています。

そのため、この会社でお客様を幸せにするために働き続けたいと考えています。

 

微妙な点2

社会人として一般的な常識が欠如している可能性があること

エンジニアとして社内にいることが多く、なおかつ、上下関係があまり存在しない会社にいるため一般的な常識は欠如しているような気がしています。

これに関しては、会社に依存するようなものではなく自分でキャッチアップできるようなものだと思っているので微妙だが、問題ないものとして考えています。

 

まとめ

僕はこの会社でお客様を幸せにするために働き続けます。

 

最後はよくわからない宣言になってしまいますが、僕が見たいのは周りの人の笑顔だけです。

そのため、そこに向かって働くことができる限り働き続けたいと思っています。

読んでいただきありがとうございました。

【Spring Boot:対処中】詰まったこと(spring.resources.cache-period)

こんにちは。

 

今日は、Spring Bootの学習をしていく上で詰まっていることをメモ的に残しておきます。(解決したら更新を行います)

 

 

 

今回起こっている問題

静的ファイルのキャッシュ設定をした際にエラーが発生

 

今回は静的ファイルのキャッシュ設定をしようとした際に詰まっていることです。

Spring Bootでは静的ファイルのキャッシュ設定はデフォルトでは行われないため、

spring.resources.cache-periodで設定を行うことができます。

 

そこで設定をしようとしたところ、以下エラーログのようなエラーが起こって起動しなくなりました。

エラーログ

 


:: Spring Boot :: (v2.1.0.RELEASE)

2018-11-12 02:35:48.276 INFO 13236 --- [ restartedMain] com.example.demo.DemoApplication : Starting DemoApplication on DESKTOP-RFATJFB with PID 13236 (D:\workspace\spring-practice\demo\target\classes started by 19941 in D:\workspace\spring-practice\demo)
2018-11-12 02:35:48.283 INFO 13236 --- [ restartedMain] com.example.demo.DemoApplication : No active profile set, falling back to default profiles: default
2018-11-12 02:35:48.358 INFO 13236 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2018-11-12 02:35:48.358 INFO 13236 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
2018-11-12 02:35:50.114 WARN 13236 --- [ restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcatServletWebServerFactory' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryConfiguration$EmbeddedTomcat.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration': Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$$EnhancerBySpringCGLIB$$6549639e]: Constructor threw exception; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration': Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.boot.context.properties.ConfigurationPropertiesBindException: Error creating bean with name 'spring.resources-org.springframework.boot.autoconfigure.web.ResourceProperties': Could not bind properties to 'ResourceProperties' : prefix=spring.resources, ignoreInvalidFields=false, ignoreUnknownFields=false; nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'spring.resources' to org.springframework.boot.autoconfigure.web.ResourceProperties
2018-11-12 02:35:50.130 INFO 13236 --- [ restartedMain] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2018-11-12 02:35:50.132 ERROR 13236 --- [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter :

***************************
APPLICATION FAILED TO START
***************************

Description:

Binding to target [Bindable@24c78ee4 type = org.springframework.boot.autoconfigure.web.ResourceProperties, value = 'provided', annotations = array<Annotation>[@org.springframework.boot.context.properties.ConfigurationProperties(value=spring.resources, prefix=spring.resources, ignoreUnknownFields=false, ignoreInvalidFields=false)]] failed:

Property: spring.resources.cache-period
Value: 86400
Origin: class path resource [application.properties]:1:31
Reason: The elements [spring.resources.cache-period] were left unbound.

Action:

Update your application's configuration

 

 

 

原因

調査中

 

関連しそうな検索結果

検索結果1

解決策

調査中

 

今日は、こんな時間なので解決し次第、更新をします。