ゆるふわエンジニアのブログ

行ったこと、調べたこと等をつらつらと書いていくかもしれません。

Scalaの学習に役立つサイト

本記事では、Scalaの学習を行う際に役に立つサイトを紹介していきます。

Scala公式

下記の公式Webサイトでは、流れでScalaを学習することができます。
Documentation | Scala Documentation

リファレンスだけでなく流れで学習できるようになっているのは、嬉しいですね。
オンライン上でプログラミングできる実行環境
j-levia.hatenablog.jp
と併せて使用すると、よりよいですね。

日本Scalaユーザーズグループ

下記のWebサイトでは、開発環境の構築方法や、
Scalaを効果的に使用するための方法等へのリンクが記載されています。
技術記事 - ScalaJP

Scala Exercises

下記のWebサイトでは、Scala公式ドキュメントよりも
さらに踏み込んだ内容を学習できるようになっています。
Scala Exercises

オブジェクト指向や関数型指向、JSONライブラリについて等記載されていますね。

Web(オンライン)上で使用できる開発環境

自分で開発環境を用意しなくても、
Web(オンライン)上で使用できる開発環境について紹介します。

下記ページを開き、「コード作成を試してみる(無料)」をクリックしてください。
paiza.io

すると、ブラウザ上でエディタが表示されるので、
コードを書き、「実行(Ctrl+Enter)」をクリックすると、実際にコードが実行され、
実行結果が画面の下の部分に表示されます。

また、使用する言語の選択やファイルは、
画面左上の言語選択ボタンや、「+」ボタンで行うことができます。

本格的な開発を行わない、参考書片手に手軽にプログラミングしたい場合は
サクッとすぐに使用できるので、便利ですね。

画像からカラーコードを取得するツール(Windowsのみ)

本記事では、画像からカラーコード(色コード、色)を
取得する際に使用するツールを紹介していきます。

本記事の内容です。

ツールについて

使用するツール(Color PIcker)は、下記のページからダウンロードできます。
www.vector.co.jp

このツールはインストール不要なので、
レジストリを汚す心配がありません。

使い方

Color Pickerを起動したら、後は色を取得したい
画像にマウスカーソルを合わせて、左クリックするだけです。
すると、クリップボードにカラーコードが保存されるので、
後はペーストして使用してください。

WindowsのカレンダーライクなDatePicker(bootstrap-datepicker)

本記事では、WindowsのカレンダーライクなDatePickerである
bootstrap-datepickerを紹介していきます。

本記事の内容です。

bootstrap-datepickerとは?

Bootstrapを利用したdatepickerです。
Windowsのカレンダーライクなdatepickerを使用することができます。

デモページ

下記ページで実際に動作させることができます。
Datepicker for Bootstrap

ライセンス

Apache License 2.0です。
github.com

使用するための準備

jQueryに依存しているので、jQueryが必要です。
下記のページからダウンロードしてください。
jquery.com

bootstrap-datepickerは、デモページ左上のDownloadボタンから
ダウンロードできます。

サンプルコード

HTML

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">        
    <link rel="stylesheet" href="css/bootstrap-datepicker.css" />
    <link rel="stylesheet" href="css/bootstrap-datepicker.standalone.css" />
    <script src="js/jquery-3.3.1.min.js"></script>
    <script src="js/bootstrap-datepicker.min.js"></script>
    <!-- 言語ファイルは、必要に応じて増やす -->
    <script src="locales/bootstrap-datepicker.ja.min.js"></script>
    <script src="js/index.js"></script>
</head>
<body>
    <input type="text" id="datepicker">
</body>
</html>

JavaScript

$(function() {
    $('#datepicker').datepicker({
        // 任意のオプション
        // デモページ右下のコードをそのまま貼り付ける
    });
});

使い方

デモページで設定した、ページ右下に表示されるソースコード
そのままコピーして使用してください。

ASP.NET WebAPIで処理されなかった例外をハンドリングし、ログを出力する方法

本記事では、ASP.NET WebAPIで一切処理されなかった例外を
ハンドリング(グローバルハンドリング)し、ログを出力する方法を紹介していきます。

本記事の内容です。

例外ハンドリングクラスを作成する

今回は、GlobalExceptionLogger.csという名前でファイルを作成しています。
内容は下記の通りです。
ログ出力は、log4netを使用しています。

using System.Web.Http.ExceptionHandling;
using log4net;

namespace Hoge.Exceptions
{
    public class GlobalExceptionLogger : ExceptionLogger
    {
        private readonly ILog log = LogManager.GetLogger("Error");

        public override void Log(ExceptionLoggerContext context)
        {
            // ログ出力処理
            log.Error(context.Exception);
        }
    }

例外ハンドリングクラスをサービス登録する

上記で作成したクラスを、App_Start下のWebApiConfig.cs内でサービス登録します。
方法は下記の通りです。

using System.Web.Http;
using System.Web.Http.ExceptionHandling;
using Hoge.Exceptions;

namespace Hoge
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web API の設定およびサービス

            // Web API ルート
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

            // ここで例外をハンドリングするクラスをサービス設定
            config.Services.Replace(typeof(IExceptionLogger), new GlobalExceptionLogger());
        }
    }
}

退職しました

3年半勤めていた中小SIerを退職しました。
まぁ、正確には06/30付け退社なので、まだ在職扱いなのですが。
本日が最終出勤日でした。

せっかくなので、色々と書いておこうと思います。

在職中は何をやっていたの?

3年半の内、最初の3か月は1か月単位で様々なプロジェクトのアサインされ、
その後、3年3か月間、ずっと外へ派遣で出ていました。

行っていた仕事の内容について、ざっくり説明すると

といった感じでした。
他には、仕様やプロジェクトメンバーを取りまとめて、
プロジェクトリーダ的なことをやったこともありました。

何で退職したの?

まだ上手く文章化できないのですが、
これから先、今の仕事を続けていくこと、同じ会社に勤め続けること、
将来のキャリアのこと等を考えると、モチベーションを保てなくなったから。
SIer同士の政治的なアレコレにではなく、
ユーザのためになるような仕事がしたかったから。
とある方に背中を押していただけたから、かなぁという感じです。
会社自体、人間関係はすごく良かったので、そこはすごく働きやすかったです。

上記でも書いた通り、まだうまく文章という形に出来ないので、
詳細に興味がある方は、会った時にでも直接聞いてください。

これからどうするの?

今年の7~9月は、今までやっていたお仕事の続きを
フリーランスという形で、退職した会社から請ける予定です。
その間に、またどこかにお世話になるか、
フリーランスを続けるかを考えていこうと思います。
せっかくワーキングホリデーで海外へ行ける年齢(30歳以下)でもありますし、
貯金もあるので、これを機に英語の勉強がてら海外へ行ってみるのも良さそうですね。
目指せ、日本脱出。

最後に

例のアレを置いておきます。
ポチっていただけると喜びます。
Amazon.co.jp

TimePickiで値変更時に関数を実行させる方法

本記事では、TimePIckiで値を変更した時に
任意の関数を実行させる方法を紹介していきます。

本記事の内容です。

TimePIckiって何?

下記の記事を参照してください。
j-levia.hatenablog.jp

サンプルコード

公式ドキュメントには載っていませんが、
on_changeに関数を渡してあげることで、
値変更時に任意の関数を実行させることができます。

HTML

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">        
    <link rel="stylesheet" href="css/timepicki.css" />
    <script src="js/jquery-3.3.1.min.js"></script>
    <script src="js/timepicki.js"></script>
    <script src="js/index.js"></script>
</head>
<body>
    <input type="text" id="timepicker">
</body>
</html>

JavaScript

$(function() {
    $('#timepicker').timepicki({
        on_change: function() {
            // on_changeに関数を渡してあげれば、
            // 値変更時に実行される
            alert($('#timepicker').val());
        }
    }); 
});