フリーランス チャレンジ!!

フリーランス チャレンジ!!

週休4日制に俺はなる!

【解決方法】SQL Serverデフォルト設定(READ COMMITTED SNAPSHOT OFF)だと同時接続でロック待ちが発生します

f:id:ksakae1216:20170716125112j:plain

 

どうもコウタロウです。

 

今日はタイトルについて。

 

※2017年7月18日更新

 すいません。ロック待ちが我々の環境では解決できませんでした。

 我々の環境だけなのかわからないので記事はとりあえずそのままとします。

 引き続き調査し、解決すればまた記事を更新します。

 

 

 

トランザクション分離レベル

まず今回の記事の前にトランザクション分離レベルの説明が必要ですね。

 

トランザクション分離レベルはWikipediaによると下記のとおりです。

  • SERIALIZABLE ( 直列化可能 )
複数の並行に動作するトランザクションそれぞれの結果が、いかなる場合でも、それらのトランザクションを時間的重なりなく逐次実行した場合と同じ結果となる.このような性質を直列化可能性(Serializability)と呼ぶ.SERIALIZABLEは最も強い分離レベルであり、最も安全にデータを操作できるが、相対的に性能は低い。ただし同じ結果とされる逐次実行の順はトランザクション処理のレベルでは保証されない。
  • REPEATABLE READ ( 読み取り対象のデータを常に読み取る )
ひとつのトランザクションが実行中の間、読み取り対象のデータが途中で他のトランザクションによって変更される心配はない。同じトランザクション中では同じデータは何度読み取りしても毎回同じ値を読むことができる。
ただし ファントム・リード(Phantom Read) と呼ばれる現象が発生する可能性がある。ファントム・リードでは、並行して動作する他のトランザクションが追加したり削除したデータが途中で見えてしまうため、処理の結果が変わってしまう。
  • READ COMMITTED ( 確定した最新データを常に読み取る )
他のトランザクションによる更新については、常にコミット済みのデータのみを読み取る。 MVCC はREAD COMMITTEDを実現する実装の一つである。
ファントム・リード に加え、非再現リード(Non-Repeatable Read)と呼ばれる、同じトランザクション中でも同じデータを読み込むたびに値が変わってしまう現象が発生する可能性がある。
  • READ UNCOMMITTED ( 確定していないデータまで読み取る )
他の処理によって行われている、書きかけのデータまで読み取る。
PHANTOM 、 NON-REPEATABLE READ 、さらに ダーティ・リード(Dirty Read) と呼ばれる現象(不完全なデータや、計算途中のデータを読み取ってしまう動作)が発生する。トランザクションの並行動作によってデータを破壊する可能性は高いが、その分性能は高い。

 

SQL Serverのデフォルト設定

SQL Serverのデフォルト設定ではトランザクション分離レベルは「READ COMMITTED」となってます。

 

これだけだと一見問題ないのですが、先のトランザクションの処理が長い場合、後のトランザクションがテーブルを参照できずにロック待ちとなってしまいます。

 

ロック待ちで困ること

実際、現在のプロジェクトで発生した事象です。

 

1時間毎に多くのテーブルを参照し、更新するJOBがあります。

このJOB実行時にトランザクションを開始し、終了まで20分程度かかる。

 

この20分の間に、JOBが参照しているテーブルをWebアプリケーションが参照しようとすると参照できずに待ってしまうんです。

 

困りますね。

 

解決方法

2つあります。

コマンドレベルと、SQL Management Studio使う方法です。

 

①コマンドレベル

下記の記事を参照して下さい。

SQLServerで読み取り一貫性 - Qiita

 

SQL Management Studio

下記ページのハードコピーにある通り、データベースを選択肢、右クリックでプロパティからオプションを表示して下さい。

そのオプションから「Is Read Committed Snapshot On」と「スナップショット分離を許可」をTrueに変更します。

※下記ページのハードコピーはtempdbになってますが、自分が使っているDB名に変えて下さい。

SQL Serverトラブルシューティング(22):TEMPDBを配置したディスク領域が枯渇した(Read Committed Snapshot分離レベル編)(ファイル管理トラブル) - @IT

 

※現在は、まだ事象が発生してないのでこれで解決だと思ってますが、もしロック待ちが再現すればまたここでお知らせします。

【残業しない仕事術】上司とのこまめなコミュニケーションで仕事の納期をコントロールして早めに帰るポイント5選

f:id:ksakae1216:20170712235258j:plain

どうもコウタロウです。 

 

今日はタイトルについて。

 

 

なぜあなたの仕事は終わらないのか?

毎日、残業、残業で自宅に帰っても風呂入って飯食って寝るだけの生活になってないですか?

 

残念ながら私はしばらくその生活を続けていました。。。

www.ksakae1216.com

 

さて、何故あなたの仕事が終わらないのか?

理由を考えてみましょう。

①自分がこなせる量以上の仕事を振られる

②自分の能力を大幅に上回る仕事を振られる

③ 仕事の量、難しさはたいしたことないが仕事の進め方が悪く終わらない

 

こんなところでしょうか?

 

仕事が終わらない原因は何?

判断が難しいですが、人によっては①〜③全て個人の責任だろうと言う人もいるかもしれません。

 

ただ私は、個人の責任だけだとは考えていません。

 

仕事が終わらない原因は仕事の進め方にあります。

 

つまり仕事が終わらない原因は仕事の進め方にあるのです。

けして個人の能力、体力が原因ではありません!!

 

残業せずに仕事を終らせるポイント5選

となると、仕事の進め方を改善すれば 残業せずに仕事を終らせることができます。

 

最近、忙しい中で私が実践し特に効果的だったポイントを5つ紹介します。

 

その仕事、本当に大切?

残業しなければ終わらない程、仕事が多い時って、どれもこれも全てやらなければいけないと考えがちです。

 

でもね、意外とそんなことないんですよ。

※私はIT系の仕事をしてるのでIT系の仕事の例となります。

 

例えば

①登録ボタン押すと、エラーになる

②削除ボタンで削除したけど、画面がクリアされずに残る(データはクリアされてる)

③数値だけしか入力できなはずなのに、文字列も入力できる

 

などなど、色々不具合があり直さなければいけないです。

 

忙しい時って考えることもしなくなるので

「①〜③全て3日間で全て終らせて!!」などと結構簡単に仕事を振られる場合があります。

 

上司も忙しいのでとにかく終わらせなきゃ

部下も忙しいので不具合は全て修正しなくちゃ

 

と考えるものです。

 

でも、本当に全てを3日間で終らせる必要ありますか?

もしかしたら①、②はやらなきゃいけないけど、③は来週でもいいかも?

 

もしかすると③はユーザーに確認したら「文字列入力してもOK!!」って言うかも。

 

仕事って意外と、振ってる方も絶対に必要かどうかの確信が無いものなんです。

 

だから、振られたから全てやるのではなく、本当にその仕事が必要かどうか少し立ち止まって考えてみて下さい。

 

上司が話しやすければその仕事の大切さ、意味を確認して見てください。

話してみると「残業してまでやる仕事でもないな」なんて展開になるかもしれませんよ。

 

仕事の期限を上司と確認する

忙しい時は2パターンあります。

・仕事の納期が決まってるパターン

・とにかく毎日、1つでも多く仕事を終らせるパターン

 

残念ながら後者は1つ1つの仕事の納期が無く、膨大な仕事を今いるメンバーで手当たり次第こなしていく最悪のパターンです。

 

こんな時は、最初に今日どこまでできるかを簡単に見積もります。

※「簡単に」と書いたのはキッチリ見積もったところでその通りにいかないし、忙しい時は見積もりの時間も勿体ないためです。

 

例えば、今日は3つくらいまでなら終らせられると見積もったとします。

そこで上司に確認するのです。

 

私:「恐らく、今日1日で3つまでなら終らせられると思います。

但し、3つ目の〇〇は少しリスクがあり、もしかすると終わらないかもしれません。」

 

上司:「悪いけど、今日中に終らせて」

 

となれば、出来る範囲でがんばり、夕方か、定時位に終わりそうであればそのまま進め、難しそうであれば、現状を包み隠さず報告し、そのまま頑張るか、期限を変えてもらうか解決策を相談しましょう。

 

もし、相談しても「終らせて」くらいの一言しかない上司であれば次回から見積もりを甘くし、1日に2つまでしか終わらせられないなど、自分で自分の身を守りましょう。

 

仕事の前に少しでいいから効率的な方法を考える

これ、スゴイ重要です!!

 

恐らく大多数の人が仕事を振られたら、そのまますぐ手を付けるんじゃないでしょうか?

 

それは間違いです。

 

仮にいつもやっている作業でも、少しでいいから考えるんです!

 

そのいつもの手順が本当に効率がいいのか?

 

昔からやっている作業でも今は効率のいいツールがあって30分かかる作業が10分でできるかもしれません。

 

はじめてやる仕事であれば尚の事どのように進めるのか?

ゴール(作業完了)のイメージは?

 

慣れないうちは考えても何も思いつかず考えなくても一緒かも?と思うかもしれませんが考えるクセ、習慣をつければ、恐ろしいほど、仕事のスピードがアップします。

保証します!!

 

中間締め切りを決める

仕事は、順調に進みません。

 

こんなはずじゃなかった、もっと簡単にできるはずだった。。。

 

想定通り進まなかったら、残業して穴埋めする?

 

イヤイヤ、そうじゃないです。

例えば、ある仕事を2時間でやるつもりだったと見積もります。

 

となると、1時間たてば、全体の半分は終わってるはずです。

1時間30分で75%、ほぼ完了しているはずです。

 

でも実際は、1時間たっても進捗がほぼ無く、1時間30分経過しても半分も終わって無ければ、そのまま進めるのは危険です。

 

おそらくその仕事は終わりません。

 

仕事の難易度によりますが、簡単な仕事で挽回の自信があれば1時間30分までがんばり、あまり自信がない仕事であれば1時間経過した時点で

・そのまま進めるか?

・その後のスケジュールを見直すか?

 

の判断をします。

 

そのまま進めるのであれば、残業を覚悟して進めます。

 

スケジュールを見直すのであれば、その後に控えている仕事を翌日に回し、必要であれば上司に報告して下さい。

 

上司に報告した結果、残業を打診されるかもしれないし、後に控えている仕事を別の担当者にまわしてくれるかもしれません。

 

一番良くないのは、2時間作業しても終らず、残業しても終らず、その後の仕事も手をつけず、夜の20時、21時くらいにぜんぜん終わらないと上司に報告することです。

 

これが一番最悪。

 

仕事は一人でやっているものではありません、チームのためにも自分のためにも中間締め切りを設け、意識して仕事して下さい。

 

仕事の成果が100点でなくてもいいか確認する

ケースとしては多くないですが、少なくもないので。

 

仕事を振られたら、当然全て完了したら終りとなります。

 

私のIT業界では、ユーザーから気軽に「これやって」、「あれやって」と言われますが、技術的に難しいこともあり、100%要望を満たせないことも間々あります。

 

当然、100%期待に答えたいですができないこともあるのが事実。

それは、自分の技術不足かもしれないし、与えられたコスト(時間と経費)の問題かもしれないし。。。

 

なので最初は100点目指してがんばりますが、残りの与えられた時間を考えると、80点までしかもっていけない事もあります。

 

その時は、残業しても必ず100点に持っていこうと思わず、残り時間を考えたら80点までしかいけないと判断できた時点で上司に相談して下さい。

 

作業担当者は100点に持っていかなければと考えがちですが、上司はプロジェクト全体から判断し、80点でもいいとなるかもしれません。

 

今は、80点でもプロジェクト後半になると、技術力が上がり残り20点を少ない時間で完了させることができるかもしれません。

 

仕事は100点、いや120点を目指すのが当たり前ですが、80点でもいいかもしれないという柔軟な判断と相談する習慣をぜひ身につけて下さい!

 

最後に

如何でしたか?

 

この記事で紹介したポイント5選を実践し、今の現場では毎日一番早く帰宅しています。

 

特に重要なポイントは、リスクのある仕事ほど、上司と蜜にコミュニケーションを取ることです。

 

私はフリーランスなので、威圧的で話のわからない上司であれば、すぐに現場を変えて働くことができます。

 

それができな会社勤めの人はちょっと難しいかもしれないですが上司と相談する以外のポイントは実践できると思うのでぜひお試し下さい!!

【解決方法】Mybatis "if test"で1文字の文字列がNumberFormatExceptionエラー発生!!

f:id:ksakae1216:20170710223937p:plain

どうもコウタロウです。

 

今日はタイトルについて。

 

 

NumberFormatExceptionエラー

MybatisはSQLをXMLファイルに記載できるのでJavaクラスではビジネスロジックを記載し、SQLはXMLファイルへと分離でき慣れると仲々使いやすく気に入っています。

MyBatis – MyBatis 3 | イントロダクション

 

そのMybatisではSQLを記載するXMLファイルの中にif文やfor文(foreach)などの分岐も記載することができます。

 

※if文の例(8行目と11行目)

gistc3abbc6e7bb14ad3c6e77d3f6d7c9a51

 

SQLを実行する時に渡す変数valが「なし('')」か「A」か「B」の場合、9行目10行目も

実行するようになっています。

 

一見、何の問題も無さそうですが、これを実行すると「'A'」の部分で「NumberFormatException」が発生します。

 

解決方法

原因は不明ですが、1文字の文字列をシングルクォートで括っても、Mybatisは数値と認識して、数値変換しようとしてエラーが発生する流れです。

 

では、どうすればいいかというと「toString()」してあれればOKです!!

gistae82147000e88112c65f78b662b76e38

 

8行目の「'A'」と「'B'」を「'A'.toString()」、「'B'.toString()」に変更すればエラーは回避できます!!

【Eclipse】「Java プロジェクト・ファセットのバージョンと一致しません」エラーの解決方法(番外編:Macのキーボードショートカット付き)

 どうもコウタロウです。

 

今日はタイトルについて。

 

 

Eclipseでファセットのバージョンと一致しませんエラー発生

1、2年前から使っているEclipseでちょっと試したい事があり、プロジェクトのJavaバージョンを1.6->1.8に上げたんですね。

 

すると、こんなエラーが!!

f:id:ksakae1216:20170701091631j:plain

 

Javaプロジェクト・ファセットって?

まずはこれが何なのかわからないのでちょっと調べてみる

 

ファセットは、Java EE プロジェクトの特性および要件を定義し、ランタイム構成の一部として使用されます。

 

プロジェクトにファセットを追加すると、そのプロジェクトは特定のタスクを実行するか、特定の要件を満たすか、または特定の特性を持つように構成されます。例えば、EAR ファセットはデプロイメント記述子を追加し、プロジェクトのクラスパスをセットアップすることにより、プロジェクトをエンタープライズ・アプリケーションとして機能するようにセットアップします。

IBM Knowledge Center

 

あまり情報がなく、唯一IBMのページで上記の情報が。

つまり、Javaプロジェクトの機能や設定を定義してあることらしい

 

原因

ということは、ビルドパスから変えたJavaのバージョン1.8とプロジェクト・ファセットのJavaのバージョンがあっていないことが原因ということです。

 

そこまでわかれば簡単、早速直します。

 

解決方法

まず、念のため、ビルドパスの確認

f:id:ksakae1216:20170701160322j:plain

プロジェクト(上記ハードコピーだとSpringWebProject) を右クリックしてプロパティを選択。

 

そこから「Javaのビルド・パス」、「ライブラリ」を選択するとJavaのバージョンが出ます。(1.8になってますね)

f:id:ksakae1216:20170701160550j:plain

 

次にプロジェクト・ファセットの確認です。

こちらもプロジェクトの右クリックからプロパティを開きます。

ここでは、「プロジェクト・ファセット」を選択

f:id:ksakae1216:20170701161201j:plain

おっ、こっちは1.6ですね。

これがエラーの原因です。

 

1.6の右の方に下矢印があるのでそこをクリックするとJavaバージョンを選択できるので1.8に変更してプロパティ右下にあるOKボタンを押下して下さい。

 

するとコンパイルが走りエラーが解消されます。 

 

番外編(Macでのキーボードショートカット)

私はMac使ってるんですけどキーボードショートカットがeclipseで紹介されているものと違うんですね。

 

eclipseで右クリックすると下記のようにプロパティは「⌘l」ってかいてあるんだけど、実際はoption+Enterなんですね。なんでだろう?

 

下記サイトがしっかり紹介してくれてます。もし、Mac使っててキーボードショートカット困ったら下記サイトを参考にして下さい。

Eclipseショートカットキー Mac & Windows 対応表 - CODESCRIBBLE

AngularJs難しいけど、ログ出力したら少しわかりやすくなった話

f:id:ksakae1216:20080617095852j:plain

どうもコウタロウです。

 

今日はタイトルについて。

 

 

AngularJs難しい

いや〜、やっぱAngularJs難しいな〜。

 

特に、今やってるのがAngular-Gantt

www.ksakae1216.com

 

常駐先のプロジェクトでなんとこのAngular-Gantt使ってるんですね。

有識者がいるわけでなく、今回の業務アプリケーションでガントチャート使いたいとのことからこのライブラリを導入。

 

私は導入が決まって、モックとして動いているのをアプリとして組み立てています。

 

とにかく情報がなく、既存機能以外の要望に関しては一から作成するという難しさ。

 

既存機能はガントタスクをドラッグして移動するだけですが、クリック選択で移動したい箇所に再度クリックすることで動かしたい場所に動かすなど。。。

 

正直そんなにAngularJsも経験がないのにハードルが高すぎる

  • (´Д`υ)

 

思った通りの順番で処理されない

既存のドラッグ以外にクリック用の機能(関数)も作成したんですけど、なぜかドラッグして動かしている最中にクリック用の関数も勝手に動く!?

  • ヘ(゚д゚)ノ ナニコレ?

 

結果的にはドラッグした時に、クリックされているのでまあ、動いて当たり前なんだけどハマった。。。

 

ログ出力したらわかりやすくなった

試行錯誤しながら毎日コード書いてたんだけど、ふと閃いた!!

  • ゥォー!ヽ(゚д゚ヽ)(ノ゚д゚)ノ ウォー!

 

「そっか、ログ出力してコンソール見ればわかりやすいんじゃね!」

 

それぞれの関数の最初と最後、他にも気になる箇所の変数を"console.log()"で出力しまくった。

 

そしたら、「へぇ~、なるほど、なるほど」と1つずつ不明点が解消されていく!

 

JavaScriptでログ出力なんて考えもしなかったけど、Javaとかのプログラムと一緒だもんね。

わからなければログ出力すればわからないこともなくなるよ!!

 

※ちなみにAngularJsはログ機能も備えてるみたい

AngularJS: ログをコンソールに出力するには?($log) - Build Insider

"console.log"よりもこの方が見やすいしいいね!

 

あと、コレも知らなかったんだけど、圧縮版のJSじゃなく、開発時は通常のJSを使えばいいっていうのも知らなかったよ。

AngularJS 開発時は圧縮版は使わない - OZACC.blog

 

最後に

どうですか?

もし私と同じくAngular難しくてあまり好きじゃないあなた!!

 

試しにログ出力して下さい。

きっと好きになるよ!!

【改めて】SQL Server2012では濁点半濁点を区別する(MySql8.0とは違うね)

f:id:ksakae1216:20170622222039p:plain

どうもコウタロウです。

 

今日はタイトルについて。

 

DBのデフォルト設定に気をつけたいという意味でまとめました。

 

 

MySql8.0は濁点半濁点を区別しない

けっこうはてブが付いている記事で。

blog.kamipo.net

 

MySqlおまえもか!!

 

こうゆうの誰得なんでしょうかね。

正直意味が分かりません。

 

SQL Serverは区別する

以前、記事にしましたがSQL Serverは区別します。

www.ksakae1216.com

 

ただ、上記記事でも書きましたが、大文字小文字は区別しません。。。

 

DBのデフォルト設定には気を付けたい

そもそも大きいプロジェクトや大手SIなんかは、インフラエンジニアがいて、長年の経験などからこの手の設定はこちらが何も言わなくても空気を読んでやってくれてました。

 

ただ、フリーランスになり、何でも自分達でしなければいけなくなるとこんなデフォルト設定知らないので後で痛い目に会います

 

もう、5年以上前の話ですが、Oracle11gをインストールした時に、Oracleがデフォルトでサーバーの40%のメモリを使うことを知らず、呑気に「いつもメモリ使用率高いな〜」と周囲に漏らしていたのも思い出しました。

 

また、sqlコマンドでユーザーを作成した時に、デフォルトで30日くらいでログインパスワードの有効期限が切れるのをしらず急にDBにログインできずアプリがコケて焦ったのも思い出しました。

 

※そもそもユーザー作成時に"パスワードを無期限"みたいなオプションをつけて作成するのが普通みたい。

 

最後に

今後、他にもDBのデフォルト設定で困ったらこの記事に追記して気をつけるようにしたいと思います。

【JavaScript】配列から重複削除(uniq)し、並び替え(sort)する

f:id:ksakae1216:20170619223332j:plain

どうもコウタロウです。

 

今日はタイトルについて。

 

 

簡単に配列から重複削除し、並び替える

こんなに簡単に実装することができます。

gist2b020021c5b0d429be1349cc7cafb505

 

実行結果のイメージ

f:id:ksakae1216:20170619202444j:plain

 

IE11の場合

IE11は"Array.from"が使えません。

なのでちょっと長くなりますが下記の実装で重複削除と並び替えができます。

gistb38b14aa27ad774425ccc2242576aeb5

 

実行のイメージ

f:id:ksakae1216:20170619203208j:plain

 

最後に

短いコードでも簡単に重複を削除し、並び替えすることができます。

【Java】ファイルの読み込み、書き込みはtry、resourcesを使おう

f:id:ksakae1216:20170611231202j:plain

どうもコウタロウです。

 

今日はタイトルについて。

 

 

ファイルのクローズ忘れ

先日、プロジェクトでファイルのクローズ忘れが発覚しました。

ある程度は、仕組み、テンプレート化して同じようなソースになるよう心がけていたんですが、ファイルのオープン、クローズはそんなに難しくない処理であり、各個人に任せてたんですがそれが良くなかった。

 

不具合修正している時に、「あれ? クローズしてない」って気づきました。

 

クローズ忘れを防ぐtry、resources

改めて、どうすればいいか考えたらJava7から便利な記述方法ができるようになりました。

 

それは「try-with-resources」文です。

 

ファイルや、データベースなど、オープンしたらクローズしなければいけないですが、クローズを記載するコードは結構冗長的で可読性も悪く、且つ記述し忘れもあります。

 

そこで登場したのがtry-with-resources文!!

 

旧来のファイルクローズ

早速今までのファイルクローズを見てみましょう。

gistb2d8812153824d53b8599a0d03cdcd2c

 

finallyでクローズ処理書いてますが、例外が発生する可能性があるのでさらにtry、catchを記載してるので冗長ですね。

 

try-with-resources

次にtry-with-resources文です。

gist6c842c7838e9282eaeb264932721925f

 

try句のカッコにリソースのオープン処理を記載すればクローズ処理は不要です。

BufferedReaderなどAutoCloseableを継承しているクラスは、try句の中に記載すれば、finallyの直前でクローズ処理が自動的に呼ばれます。

 

ソースもスッキリしてるし、リソースのクローズ忘れもないので、Java7以降をつかってるのであれば、ぜひtry-with-resourcesで記載して下さい!!

 

また、try句の中をワンライナー(1行)で記載しないのは理由があります。

try-with-resourcesでリソース解放されないパターン - Qiita

 

Qiitaの記事の通り、ワンライナー上で例外が発生した場合には、クローズされないのであえて、ワンライナーで書いていません。

これ知ってるだけでも大分違いますね。

 

最後に

私はJava1.3から使ってるんですが、Java6以降の新機能はあまり使いこなしていません。

今回のtry-with-catchや、Java8のラムダ式など。。。

 

でも、今回のクローズ忘れはJava7の機能try-with-resourcesで防げます。

改めて、新機能をもう一度勉強し直そうと思いました。

 

※参考までに全ソースを記載します。

gist8764b7c9e1865f8811ae22350549bafb

上手くいかなくて当たり前、何でも楽しめる人が強いと思う

f:id:ksakae1216:20170611173349j:plain

どうもコウタロウです。

 

今日はタイトルについて。

 

 

同じ仕事でも楽しめる人と楽しめない人

仕事ってつらいですよね、めんどくさいですよね。

 

それってそもそも本当ですか?

 

本当にツライ?

本当にめんどくさい?

 

それって個人の考え方、受け取り方じゃないかな?

 

今、一緒に仕事してる人は、優秀で技術もあって、しかも若い。

私よりも10個も年下だけどしっかりしてる。

 

最近その人と一緒にランチすることが多いんだけど、仕事の考え方が私とぜんぜん違うことに気が付きました。

 

その人が言うことは

・このままじゃ終わらない

・毎日残業が多すぎてしんどい

・前任者が書いたコードがクソ過ぎて直すのが嫌になる

・コウタロウさんは早く帰れていいですよね

 

そこで私が返事するのが

・なんとかなるよ

・体壊さない程度で終わってなくても帰りなよ

・前任者は経験が少なかったからね、しょうがないね

・わたしはそんなに早く帰ってる?(毎日2時間残業してる)

 

今は、システム開発で開発時にいたメンバーがほぼいなくなりその人と私でひたすらシステムのバグを潰している状況で、とにかくシステムの品質が悪いのでユーザーが触り始めるとビックリするほど動かない。

 

開発メンバーも寄せ集めだったのでしょうがないかなと思っていましたがソースを見ると「ひ、ひどい、ひどすぎる」と思わず声にでてしまうくらい。

 

でもね。しょうがない。

今更それを愚痴ったところでソースがきれいになるわけでもない。

現状を把握しリーダーに報告して、品質が悪いけど(悪い言い方をすると)ごまかしながら進めていきましょうということになっている。

 

ただ、その若い人はあまり経験がないせいか、けっこう深刻に捉えていて、しかも責任感が強いから自分がしっかりしなきゃと毎日遅くまで仕事してるんですね。

 

それはいいんだけど、つらいと思って仕事してるからランチのときに文句が出て来る。

 

私も今の状況は結構厳しいなとは思いつつ出来ることを出来る範囲でやろうと思っているので仕事がツライとは思っていない。

 

むしろ、楽しみながら仕事しています。

「いや〜、こんな不具合が出てきましたよ〜、でもこれは単体テストじゃ気づかないですね」とか

「半日かかると思ってたけど、1時間くらいで不具合直りましたよ」という感じで。

 

彼も、私もタスクをたくさん抱えていますが、リーダーは出来る範囲でいいよと言ってくれてるので私もできる範囲でやってるんですけど、彼はできる範囲以上のことをしようとします。

 

まあ、昔の私もそうでした。

 

でも自分が経験してるからわかるんだけど、それって長続きしないんですよね。

 

仕事のパフォーマンスは落ちるし、体調も崩しやすくなるし、早く帰る人を見ると忙しいのに早く帰りやがってと逆恨みするし、何より仕事が楽しくない!!

 

仕事が楽しめないと、毎日楽しくないし、何より仕事のスピードも質も上がらないんですよね。

 

プライベートでも

これ、沢山の人を見たわけじゃないんだけどプライベートもそうじゃないかな?

 

仕事を楽しめなくて無理する人って、プライベートでも同じような傾向にある気がします。

 

ちょっと自分の期待通りじゃないと、文句を言ったり、少しでもうまくいかないともう全てダメみたいなことを言ったり。

 

仕事もプライベートもそうだけど、自分の思い通りにいくことなんてほとんどないよね。

もしかして、仕事もプライベートもなんでもある程度、自分の思い通りにいくと思ってる?

 

だから、少しでもうまくいかないと文句言うのかな?

 

もしそうなら考え方を変えたほうがいいですよ。

なんでも自分の思い通りにいくわけないんだから!!

 

私は普段、「何でも思い通りにいかない」とは思ってないけど、何かうまくいかないことがあっても「そんなもんだろう」くらいにしか思いません。

 

そしてうまくいかなかった時に、「じゃあ次はどうしよう?」と考えます。

 

例えば仕事なら、人に相談するのか、解決方法を検討するのか、残業などの量をこなすことにより解決するのか考えます。

 

うまくいかないことが当たり前だと思うと、上手くいかない時にヘコむこともないし、上手くいかない時にどのようにすれば上手くやるのかを考えるようになり、その内、上手くいかないことをどのようにすれば解決するのかは自分の腕の見せどころと思えるようになります。

 

そして上手くいかなかった人や作業を責めるようなことはしません(時間もったいないし)。

※でも再発したら困るようなことは同じ事が起きないように再発防止策を検討、実施します。

 

プライベートだったら、例えば妻とケンカした場合、謝るべきか、時間を少し置いていつも通りに話しかけるのかといった具合です。

 

 

最後に

あなたはどうですか?

 

ちょっと考え方を変えて、「上手くいかなくて当たり前」と思えば、いつまでも上手くいかない事をグチグチ考えることもないですし、解決策を考えようと前向きに動くことができます。

 

上手くいかなくて、悩んでいるのなら、ぜひ「上手くいかなくて当たり前」と考えてみて下さい!!

最近の子供、YouTubeばかり見て、テレビ見ない問題について。 親としてはさみしい。。。

f:id:ksakae1216:20170609000540j:plain

どうもコウタロウです。

 

今日はタイトルについて。

 

 

最近の子供、YouTubeばかり見る

最近の子供ってYouTubeすごい見ますよね!!

 

ウチの子供は中1と小5なんだけど、しょっちゅうYouTube見てるんですよ。

 

子供が何見てるかじっくり確認したわけではないけど、大半は

・ゲームの攻略(マインクラフトとモンハンが多い)

・ヒカキンやその他のユーチューバーの動画

・デュエマの実況(カード対戦を見るだけ)

・よくわからないおもしろ動画(何が面白いかわからないけどゲラゲラ笑ってる)

・怖い動画(99%以上、作り物っぽい)

 

テレビ見ない

3年前くらいは、家族でテレビ見てたらなんとなく動画禁止だったんだけど、上の子は中学生だし、下の子は小学校高学年だから、もう少し自由にしてあげて、妻と私がテレビ見て、子供達はそれぞれ、漫画読んだり、WiiUでYouTube見たりとそれぞれで楽しむように。

 

一緒にテレビ見るのって、イッテQくらいかな?

 

あっ、火曜日深夜にやってるよしもと新喜劇はたまに一緒にみるかな。

 

でもそのくらい。

 

子供達は本当にテレビ見なくなった。

テレビ見ないっていっても勉強してるわけではなく、その分、3DSかWiiUをやってるのでただ単にテレビの時間が減っただけ。

 

一緒の時間がない

考えてみると、同じ空間にいるんだけど、それぞれ別々のことをやってるので一緒の時間がなくなってきている。

 

さみしい。。。

 

でも、そんなもんかな?

 

今は、リビングにいてそれぞれ別々のことをしているけど、その内、子供達は自分の部屋に閉じこもって、ご飯以外は一緒の空間で過ごす時間もなくってくるのかもしれないですね。

 

最後に

なんか、さみしいけど、受け入れなきゃいけないですね。

 

子供達はそれぞれ自分の好きなことをして、妻は次の日も早いからと早めに寝て、私は、テレビ好きなのでスマホいじりながらテレビ見て、たまにテレビに話しかけたりして。

 

まあ、それもいいかな。