VSCode,拡張機能のダウンロード

以前は、拡張機能のページのURLから、いろいろ編集して、アドレスを探り出してダウンロードしなければいけなかったと記憶しているが、いつの間にかダウンロードのリンクが追加されたみたいです。

これ、地味に面倒で、会社とかであまり使わない理由の一つになってたんですよね。

https://qiita.com/ss_tom_jp/items/5977e4f16d78b8ca7cc8

Go言語,メール送信

[github] https://github.com/chronos2015/samples/tree/master/golang/03.sendMail

Go言語で意外と面倒なのがメール送信だったりする。

テキスト形式なのか、HTML形式なのか、添付ファイルはあるのかでいろいろ判断しながらメール本文を作らなきゃいけないのが意外と面倒。

Go言語,Goland,helloworld

[github] https://github.com/chronos2015/samples/tree/master/golang/01.goland

Golangを使ってみた。

.idea以下に多数のファイルが作成されてしまうのは、IntellijIDEAからの伝統なのかな…。

vscodeでGo言語を書くのに比べて、どんなメリットがあるのかは要検証というところかな。

C#,ZIPファイルの圧縮と展開

[github] https://github.com/chronos2015/samples/tree/master/visualstudio/cs/05.zip

フォルダ指定で一度に圧縮するメソッドが用意されているのは想定してなかった。

// 1.フォルダをそのままZIPファイルに圧縮する場合
ZipFile.CreateFromDirectory("target", "target1.zip", CompressionLevel.Optimal, true, Encoding.UTF8);

// 2.ファイルを指定して、又はメモリ上のストリームなどを圧縮する場合
using (ZipArchive zip = ZipFile.Open("target2.zip", ZipArchiveMode.Create))
{
    ZipArchiveEntry entry = zip.CreateEntry("English.txt", CompressionLevel.Optimal);
    using (var stream = entry.Open())
    {
        byte[] data = readFile("target\\English.txt");
        stream.Write(data, 0, data.Length);
    }

    entry = zip.CreateEntry("日本語.txt", CompressionLevel.Optimal);
    using (var stream = entry.Open())
    {
        byte[] data = readFile("target\\日本語.txt");
        stream.Write(data, 0, data.Length);
    }
}

// 3.ファイルをそのままファイルシステムに展開する場合
ZipFile.ExtractToDirectory("target1.zip", "target1");

// 4.特定のファイルのみ展開する場合
using (ZipArchive archive = ZipFile.OpenRead("target2.zip"))
{
    foreach (ZipArchiveEntry entry in archive.Entries)
    {
        // 4.1.ファイルに展開
        if(entry.FullName == "日本語.txt")
        {
            entry.ExtractToFile("日本語.txt");
        }

        // 4.2.メモリ上に展開
        if (entry.FullName == "English.txt")
        {
            using (Stream stream = entry.Open())
            {
                byte[] data = new byte[1000];
                stream.Read(data, 0, 1000);
                Console.WriteLine(Encoding.UTF8.GetString(data));
            }
        }
    }
}

java,springBoot,オフラインビルドのサンプル

[github] https://github.com/chronos2015/samples/tree/master/java/springBoot

javaでspringBootを使ったアプリのオフラインでのビルドを行うサンプルを追加した。

mavenのキャッシュから手作業でオフライン用のキャッシュを作成するのは少し面倒なので、アプリによって自動的に変換するようにしたよ。

python, Django

[github] https://github.com/chronos2015/samples/tree/master/pycharm/django_sample

JetBrainsの統合開発環境(PyCharm)で開発してみる。

※chocolateyでインストールする場合以下のコマンドを使用

cinst pycharm-community -y

尚、python3がインストールはこちら

cinst python3 -y

PyCharmでは、デフォルトでvenvを用いてプロジェクト毎にライブラリを分けるようになっていたので、pipからDjangoのインストールはプロジェクト毎に実施する必要があるみたい…

以下のコマンドで Djangoのインストールを実施

pip install Django

プロジェクトを作成するのは、以下のコマンドを使用する

※既に、PyCharmでプロジェクト作成しているので、無駄にフォルダが出来てしまうのはあまり嬉しくない。

django-admin startproject django_sample

尚、デバッグ/実行用の設定は自動的には作成されない様なので手動で作成しないといけないみたい。

finereportを使ってみた

…とは言っても、デザイナをインストールして少し使ってみただけ。

感じとしては、jasperReportと比べると、マシかなという気もしないではない。

Excelに似せて作られたデザイナで恐らく使い始めは、使いやすく感じるんだろうなとも思う。

ただ、Excelに比べると、全面割り付けにした際に、ちょっとギリギリまで文字が配置されすぎ?と感じてしまう点や、セル内で自由に改行できないんじゃないかなって感じがする点については少し頂けないかなと感じた。

うーん、これが最善のツールなんだって言われたら、そうでないという自信はないけれど、完璧なツールかと問われたら、いいえと答えたくなる感じ。