技術とか戦略とか

証券レガシーシステムを8年いじってから転職した普通の文系SEによるブログ。技術のみではなく趣味の戦略考察についても。

ExcelのVLOOKUP関数の高速化

何番煎じかわかりませんが、Excelの小技です。VLOOKUP関数を高速化についてです。 VLOOKUP関数は、第四引数にTRUEかFALSEかを設定します。通常はFALSEで使用すると思うのですが、TRUEを指定するとあいまい検索になります。「あいまい検索」と言われると部分…

ループ処理のテスト観点

ループ処理を単体テストする時の小ネタです。ループ処理を最初から最後まで全件チェックするのは大変なので、以下のように誤りが生じやすい箇所に絞ってテストを行うと効率良くテストを行うことができます。(ループはN回行うものとします) ・ループの1回目…

10000STEPのクラスを作ってしまった話

「1クラス1000STEPを超えたらクラス分割を考える」という話をどこかで見たり聞いたりした記憶がありますが、金融業界の実務では10000STEP越えのクラスを目にすることは少なくありません。そして、私も趣味(ゲームの戦闘部分の作成)で10000STEP越えのクラス…

情報処理技術者試験対策「定量的品質評価」

「定量的品質評価」とは、その名の通り品質を数値で評価です。そのことにより、品質の良し悪しを客観的に把握することが可能になり、有効な対策を打てるようになります。 今回の記事では、情報処理技術者試験に良く出てくる2つのモデル(信頼度成長モデル、…

7payの脆弱性残存の原因の考察(形式的チェックの問題点、集団浅慮の問題点)

(2019/07/13に一部表現を見直しました。内容は変えていません。) ニュースでも大々的に取り上げられていますが、7payがサービスイン直後にセキュリティ上の脆弱性を突かれて不正利用されてしまいました。第三者のログインを許し、クレジットカードから7payへ…

リーダーシップ状況論の実践

リーダーシップ状況論(組織の成熟度に適したリーダーシップの分類)については、以前に情報処理技術者試験対策として記事にしました。 情報処理技術者試験対策「リーダーシップ状況論」 https://akira2kun.hatenablog.com/entry/2018/07/10/234418 試験対策…

Excelへのテキストの貼り付け(ペースト)が途中で切れる時の対処法

原因は、貼り付けようとしているテキストにNUL文字(16進数の文字コードでx00)が含まれているからです。NUL文字が含まれていると、そこで貼りつけが終了してしまいます。(なお、メモ帳への貼り付け、サクラエディタへの貼り付け等でも同じようにNUL文字の箇…

unix/linux:改行コード無し固定長ファイルに改行を入れる

コマンド一つでできてしまうのですが、それらしき単語でググってもなかなか出てこないのでメモします。ファイルhogeに対して以下のコマンドを打つことで、改行(\n)が入った状態でファイルfugaとして出力されます。 #> fold -bレコード長 hoge > fuga 例えば…

unix/linux:メモを見ながら作業するのが面倒になった時の小技

unix/linuxで複雑なコマンドや長いパスを入力する必要がある場合、メモを用意しておいてそれを見ながら(若しくはメモをコピーして)作業することが多いと思います。しかし、毎度のようにメモを見に行くのは面倒なので、そんな時は以下のコマンドが役に立ち…

COBOL:S9項目の文字コード

COBOLの符号付きの数字項目について、文字コード(バイナリ)だとどのように値を保持しているのかの解説が英語しかなかったので、記事を書きます。 符号付きの数字項目は「PIC S9(03)」のように定義するのですが、符号を示す「S」が付いたからといってバイト…

java:他環境向けのファイルを出力する(文字コード・改行コード指定)

javaは実行環境に応じてデフォルトの文字コード・改行コードでファイルを出力するようにコーディングすることができます。そのことにより、実行環境毎でコーディングを変更せずとも、実行環境に合わせた文字コード・改行コードを採用することができます。 し…

viで開けない巨大なファイルを開く(改行コード無し固定長レコード編)

4GB以上の改行コード無し固定長レコードのファイルの中から一部のレコードを抜き出す機会があったのですが、viエディタでも開けず、Windowsに落としてもエディタ(サクラエディタ、Stirling)でも開けなかったので、以下のように対処しました。cutコマンドを…

データが多すぎてExcelが重い→ファイル分割、Excel以外のプログラムを使って対応

数十万件のデータをExcelで扱っていて、どうにも重い、メモリ不足で落ちる、といったことがありました。ググると「データを減らす」という対応法が載っていますが、数十万件のデータを一度に扱わないといけなかったのでこれは困難でした。また、データをただ…

ヘッダレコード・データレコード・トレーラレコードとは

企業間でやりとりするファイルでよく見かけるフォーマットとして、レコードが「ヘッダレコード」「データレコード」「トレーラレコード」に分かれているフォーマットがあります。このフォーマットについて覚えておくと、出向先のソースコードを読むのが楽に…

アンカリングを用いた交渉術

アンカリングとは、先に与えられる情報をベースに意思決定してしまうことを指す心理面の現象のことです。この現象は交渉の場面で役に立ちます。先に厳しめの要求を出すことで、その要求をベースに交渉を進めることができます。厳しめの要求を出した後、相手…

ジョブ管理システムとは

「ジョブ管理システム」とは、処理の実行タイミングや実行順を管理するシステムのことです。例えば、Windowsではbatファイルをダブルクリックすると処理が実行されますし、Linuxでは「sh hoge.sh」と入力すると処理が実行されます。実運用では、システムをま…

情報処理技術者試験対策「見積もり手法」

情報処理技術者試験で出題されることがある見積もり手法について、紹介していきます。今回紹介するのは、主に大規模なウォーターフォールのプロジェクトで使われる見積もり手法です。 なお、実態としては、直感的に決めてしまうこともあります。例えば、アジ…

java:インターフェースを用いることでクラス毎の重複した記述を無くす

javaにはインターフェースという機能があります。インターフェースとは、メソッドの仕様(メソッド名、戻り値、引数)のみを定義したものです。インターフェース単独では処理を実行できませんが、そのインターフェースを実装したクラスを定義することで処理…

java:プリミティブ型とラッパークラスの暗黙の型変換

最近知ったのですが、intやcharに代表されるプリミティブ型と、IntegerやCharacterに代用されるラッパークラスの間では暗黙の型変換が行われるそうです。プリミティブ型からラッパークラスへの暗黙の型変換をオートボクシング、ラッパークラスからプリミティ…

システム障害が起きた時に元請けSIerの中で起こること(体験談)

二次請けや三次請けで本当に開発しかしない職場だと、システム障害が起きた時にその対応がどれくらい大変なのかが伝わりにくいことがあります。今回の記事は、システム障害が起きた時に元請けSIerでどのような対応を行う必要があるのかを書きたいと思います…

「共通化の罠」を見た感想

数日前にTwitterで「共通化の罠」という動画がバズりました。 https://togetter.com/li/1354658 内容はリンク先の動画を見ての通りなのですが、一言でまとめると「複数のモジュールで同じロジックを使用していたので、そのロジックを共通モジュールとして外…

過去のコミット情報が見れない、直近のコミットをrevertしたら全てのファイルが消えた→深さ1でクローンしているのが原因かも

git

表題が全てを表しています。 グーグルで調べても出てこなかったので正直焦りました。深さ(depth)1でクローン(clone)して、直近のコミット履歴のみ取得したら、そりゃ過去のコミット情報も見れなければ、その直近のコミットをrevertしたら全てが消えますよね……

java:暗黙の型変換による意図しない小数点以下切り捨て

原因がわかるまでに手間取ってしまったので、記録として残しておきます。double型やBigDecimal型の変数の初期値を分数(例:2/3)で定義する際、小数点を入れないと「int型変数/int型変数」と判断されてしまい、小数点以下が切り捨てられた状態で変数に格納…

「数学は役に立たない」論について思うこと

定期的に話題になるテーマなのですが、ちょうど考える機会があったので記事にします。 かく言う私も、理系が向いていると言われながら、学んでいた数学が何の役に立つのか本気でわかりませんでした。高校時代に「数学=無味乾燥で難しいだけ」という印象を感…

java:Hashmapで1つのキーで複数の値を結びつける方法

HashMapとは、「キー、値」の組み合わせでデータを保持することができるクラスのことです。このクラスを用いれば、キーに紐づく値を検索することが可能になります。 しかし、キーに対応する値が複数の場合は、一工夫する必要があります。私が趣味で作ってい…

プログラミング言語のスキルチェンジのコツ

COBOLからJavaのスキルチェンジは苦労すると良く聞きます。サーバーサイドCOBOLからフロントエンドJavaへのスキルチェンジの場合は言語の違い以外にも色々覚え直さないといけないことがある(Webサーバの仕様やHTTP通信の仕様等)のでまた別の話になるのです…

「GitHub」と「GitLab」、「Bitbucket」と「GitBucket」は別物

git

Gitリポジトリを管理するツールとして、「GitHub」や「Bitbucket」というツール(サービス)があります。これらのツールでは、GitをCUIで操作することが可能で、チームのコミュニケーションを円滑にする機能(チケット管理等)も搭載されています。特に「Git…

Excelで縦持ちのリストを横持ちにする

例えば、 hoge foofuga foohoge bar という縦持ちのリストを fuga foohoge foo,bar という横持ちのリストにしたくなることがあります。1項目目(hoge,fuga)を一意にしたい場合にこのような需要が生まれます。 これは、Excelを用いることで簡単に実現可能で…

報連相が必要な理由

報告・連絡・相談は、組織で働く者には欠かせないスキルです。IT業界は内向的な人が多く、報告・連絡・相談が苦手な人が少なくない業界です。(私も正直あまり得意ではありません)それだけに、報告・連絡・相談ができる若手は、たとえ技術力に多少の不足が…

登竜門としてのITパスポート

IT企業に興味のある人、IT企業の内定者、IT企業に未経験で入社して間もない若手がITパスポートに興味を持ったり合格していたりしている姿を見て、改めてこの資格は良くできた資格だと思いました。 ITパスポートがどのような資格なのかはIPAのホームページの…