リメンバー・ミーを今さら観ました。

二日連続で観て二日連続で泣きました。

www.disney.co.jp

GWはスキルアップのために勉強しようと決めていて、息抜きのために観たのですが、必ず最後に涙腺持ってかれますね。。。

観て、楽しかった!で終わってしまうと自分のためにならないと思い、あらすじを自分でも考えてみました。


代々音楽嫌いの家で育った、ミュージシャン志望の少年ミゲルは、
死者の日と呼ばれるお祭りの最中、有名ミュージシャンのお墓に祀られていたギターを盗んでしまいます。
ミゲルが盗んだギターを弾いてみると、死人になる呪いを受けてしまいました。
生身の人間に触れなくなり、他の死人が見えるようになってしまったのです。
呪いを解くにはご先祖様の許しが必要ですが、ご先祖様に「許しが欲しければ二度と音楽をやらないこと誓いなさい」といわれてしまいます。
承知できないミゲルは、ミュージシャンだったひいひいおじいちゃんを探しに行くのですが。。。。

。。あらすじを考えるのは難しいですね。
何を伝えればいいのか。
どうすれば魅力的と感じてもらえるのか。

1時間くらい考えてしまいました。何かコツがあるのでしょうか。

社会人5年目がこっそり教える、本当に使えるビジネスツールたち

目次

はじめに

こんにちは、oguriです。
今日は、社会人1年目になったら一番最初に教えておいて欲しかった、
ビジネスで利用するのにお勧めするツールを紹介します。

ビジネスツール一覧

シューズ

[テクシーリュクス] ビジネスシューズ

私は入社当初、「ビジネスシューズは何としても革靴!歩くときに、コツコツとかかとを鳴らしながら歩くのがカッコいい!」
と思っていました。
でも歩いていると想像以上につかれる。雨が続くとすぐにカビる。蒸れる。

といった感じで、2,3足革靴を利用しましたが、革靴は断念し、新しい靴をネットで探し、評価が高かったこちらの商品を購入しました。

まず履き心地がスニーカーチック。履きやすい。そして手入れがかなり楽。クリーム等もほぼ塗らなくていい。
雨も防水設計だからしみてこないし、カビも生えにくい。
。。。うん、これコスパ最強。
ってことで、ずっとこれを使ってます。
今はいている革靴がダメになったら、是非次はテクシーリュクスのビジネスシューズを検討してみてください。

靴下

www.muji.net

靴下はスーツを売っているところで一緒に買うか、3足~円みたいなところで購入していました。
それなりに手ごろで、ビジネスで利用できる感じのものならできる限り安ければいい、という基準で選んでいました。
ユニクロで買うことが多かったかな。。。)

ただ、実際に履いていて、夕方ぐらいになると、なんだか靴下の締め付けがキツい。
一日中座っている自分のようなシステムエンジニアは、どうしてもだんだんと足がむくんできて、夕方になると締め付けがきつくなってきます。

このままでは絶対に足に良くないと考え、ビジネスで使えて、ゆるく履ける靴下を探した結果が直角靴下でした。
実際に履いてみると、夕方に靴下の締め付けを感じることが皆無(!)になり、靴下をめくった時の靴下跡がほぼなくなりました。
緩すぎて脱げてくるのではないかと心配される方もいるかもしれませんが、全く脱げる心配はありませんのでご安心ください。
今の靴下を履いていて靴下跡がきついと感じていたり、穴が開いたら購入を検討してみてください。
あと、靴下はできるだけ同じものを購入したほうがいいです。穴が開いたときに他の靴下で補てんできます。

ワイシャツ

ワイシャツは普通、洗濯するとすぐシワになります。
社会人になりたての頃は、ワイシャツを毎日、または毎週アイロンするのが普通だと思っていました。
でも、アイシャツに出会ってからは、アイロンする必要が全くなくなりました。
ドライ運転の洗濯機にネットの中に入れたシャツを放り込み、ハンガーにかけて、終わり。
次の日にはそのまま着ていけます。

その他

ここからは、私もまだ「これだ!」と思える商品に出会えてないツールを紹介します。
参考程度に見てもらえればと思います。

スーツ

今まで買ったことがあるのが、
www.suit-select.com
スーツ・ビジネススーツ・紳士服のP.S.FA【公式通販】
などです。

スーツセレクトは歩いている姿はカッコいいですが、
座ると膝がキツかったりして、長時間座って作業する人はあまり向かないかもしれないです。

時計

私的にはスカーゲンをおすすめしておきます。
腕周りの小さい人に特におすすめです。

めがね

システムエンジニアなど、長時間仕事でパソコンを利用する人はブルーライトカットメガネをすると、めちゃ楽です。
ただ、メガネ自体の重さでメガネ跡ができたり、メガネ自体が鬱陶しく感じたりする人にはお勧めできません。

可能なら、ブルーライトカットを防止できる液晶保護フィルムを貼ったり、画面の明るさを落としたり等、
他の手立てを考えたほうがいいかもしれません。

おわりに

長々と書いてしまいましたが以上です。
新人の頃はとにかく安いものに目が行きがちですが、安いものをつくるには、何かを削る必要があります。
削られたものが許容できない場合、ある程度お金を払ってでも、良い商品を買えばいいと思います。
より良い仕事をする環境づくりの一環、投資だと思ってください。

皆さんのビジネスライフがより快適に、より効率的に送れるようになることを願っております。

また、こんないいものがあるよ!などがあればどんどん共有していきましょう。

ソース整形2

  • 目的:

ソースコードのインデントを変更し、見やすくする。

  • 実現方法:

ソースファイルのデータを一行ずつ取得し、
中かっこの有無でインデントを進めるか判断するようにした。

  • 成果物:
using System;
using System.IO;
using System.Linq;
using EnvDTE; //Add Reference to EnvDTE,EnvDTE80
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            string data = "";
            StringBuilder result = new StringBuilder();
            List<string> indexIncreaseData = new List<string> { "{", "if" };
            List<string> indexDecreaseData = new List<string> { "}"};
            int indentCount = 0;

            StreamReader sr = new StreamReader(@"C:\test\src.txt");
            while (!sr.EndOfStream)
            {
                data = sr.ReadLine();

                // 先頭の空白を除去
                data = Regex.Replace(data, "^ +", "");

                if (data.Split(new char[] { ' ' }).Where(n => indexDecreaseData.Contains(n)).Count() == 0)
                {
                    data = new String(' ', (indentCount * 4)) + data;
                }

                if (data.Split(new char[] { ' ' }).Where(n => indexIncreaseData.Contains(n)).Count() > 0)
                {
                    // indent proceed
                    indentCount++;
                }

                if (data.Split(new char[] { ' ' }).Where(n => indexDecreaseData.Contains(n)).Count() > 0)
                {
                    // indent back
                    data = new String(' ', (--indentCount * 4)) + data;
                }

                result.AppendLine(data);
            }

            StreamWriter sw = new StreamWriter(@"C:\test\src1.cs");

            sw.Write(result.ToString());

            sw.Close();

        }
    }
}
  • ナレッジ:
  1. using EnvDTE; //Add Reference to EnvDTE,EnvDTE80

 DTE:"Development Tools Extensibility" の略語
 →Visual Studioコアオートメーションのオブジェクトとメンバを含むアセンブリラップCOMライブラリです。
  →Visual Studioからアクティブなウインドウやアプリケーションを制御可能。

  1. COM:Component Object Modelの略語

 →特定のプログラミングに依存せず利用できる、バイナリコード単位のインターフェース。
 

  1. List indexIncreaseData = new List { "{", "if" };

 Listの初期化でいつも間違える。new Listの後に()は不要。

  1. 同じ文字列を指定回数繰り返した文字の作成方法

  一文字の場合:new String('a', 10)
 複数文字の場合:(new string('a', 10)).Replace("a", "hoge");

  • お世話になったサイト:
  1. DTEの意味

ttps://stackoverflow.com/questions/17239760/what-is-the-visual-studio-dte
ttps://docs.microsoft.com/en-us/dotnet/api/envdte.document?view=visualstudiosdk-2017

  1. 正規表現による置換

ttps://dobon.net/vb/dotnet/string/replace.html

  1. 同じ文字列を指定回数繰り返した文字の作成方法

ttps://dobon.net/vb/dotnet/string/repeat.html

ソース整形

using System;
using System.IO;
using EnvDTE; //Add Reference to EnvDTE,EnvDTE80

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            EnvDTE.Solution soln = System.Activator.CreateInstance(
                Type.GetTypeFromProgID("VisualStudio.Solution.14.0")) as EnvDTE.Solution;
            soln.DTE.MainWindow.Visible = true;
            FormatFile(@"C:\test\src.cs", soln);
            //Set ProgID of your VS
            //Visual Studio 2008 -> 10.0
            //Visual Studio 2010 -> 11.0
            //Visual Studio 2013 -> 12.0
            //Visual Studio 2015 -> 14.0
            //var files = Directory.GetFiles(@"C:\test", "*src.cs", SearchOption.AllDirectories).ToList();
            //files.ForEach(file => {
            //    FormatFile(file, soln);
            //    Console.WriteLine($"format {file}"); //C#6.0
            //});
        }

        static void FormatFile(string file, EnvDTE.Solution soln)
        {
            soln.DTE.ItemOperations.OpenFile(file);
            TextSelection selection = soln.DTE.ActiveDocument.Selection as TextSelection;
            selection.SelectAll();
            selection.SmartFormat();
            soln.DTE.ActiveDocument.Save();
            soln.DTE.ActiveWindow.Close();
        }
    }
}

Accessから抽出したCSVデータ処理用関数メモ

*まだ実際のCSVで作業してないので、作業後に更新する予定。

 

Accessから抽出したCSVデータを、フォルダ階層をきれいに抽出したいときに使える関数をメモしておきます。

 

やりたいこと:

・第三階層までのフォルダ一覧を抽出したい。

・重複フォルダは削除したい。

(C:\aaaのデータがあっても、以降にC:\aaa\bbbがあればC:\aaaは抽出しない)

・ファイル名までは今回抽出しない。

 

期待結果:

第一階層フォルダ,第二階層フォルダ,第三階層フォルダ

C,eee

,aaa

,bbb,ccc

 

Accessから抽出したCSVデータ:

フォルダパス,フォルダ名,ファイル名,拡張子,....

C:\,,hogehoge,txt,....

C:\,aaa,,,....

C:\,bbb,,,....

C:\,eee,,,....

C:\aaa\,,test,xlsx,....

C:\bbb\,,hoge,word,....

C:\bbb\,ccc,,,....

C:\bbb\ccc\,,data,dwg,....

※ちなみにファイル名欄にもフォルダ名欄にもデータがないことはあり得ない前提。

 

マクロ動作イメージ:

1.フォルダ名欄にデータが

 あるとき→2へ

 ないとき→3へ

2.以降のフォルダパス欄にファイルパス+フォルダ名が

 あるとき→重複する為不要なデータ

 ないとき→フォルダのみでファイルが入ってない状態。ファイルパス+フォルダ名の状態で取得。

3.ファイル名欄にデータが

 あるとき→4へ

 ないとき→ありえない

4.以降のファイルパス欄にさらに深い階層が

 あるとき→重複するので不要

 ないとき→取得。

 

実際の計算式:

=IF(E12<>"",IF(ISERROR(VLOOKUP(D12&E12&"\",D13:D19,1,FALSE))=FALSE,"",D12&E12&"\"),IF(F12<>"",IF(ISERROR(VLOOKUP(D12&"?*",D13:D19,1,FALSE))=FALSE,"",D12),"ありえない"))

※凡例:

D11:フォルダパス欄

E11:フォルダ名欄

F11:ファイル名欄

 

②重複データの削除

 データタブ-データツールの重複の削除

 

③円マークがあるごとにセルを区切り

 データタブ-区切り位置

 

④重複する項目(C:\eeeのあとにC:\aaaがきたときに、後者C:\部分の削除)

 ③の第一階層、第二階層に、それぞれ上と同じデータがあったら削除するマクロを実行する。

 Sub Sample2()
Dim c As Range, i As Long, d As String
For Each c In Selection
i = i + 1
If i = 1 Then
d = c.Value
Else
If d <> c.Value Then
d = c.Value
Else
c.Value = ""
End If
End If
Next c
End Sub

// list.add(new DbTransactionInitializer());
MockupFacade 
public final boolean mockupFlg = true;



TestformFormBeanーTestformFormBean
        this.M1.newRow();


info.M1.setDisplayRowCount(10);

// 大事な奴
// src/app
// src/skeleton
// WebContent/WEB-INF/classes