技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

2019-01-01から1年間の記事一覧

モチベーションを高める目標を作るのに必要な三者に対する視点

あくまでも私の経験に基づく持論ですが、モチベーションを高める目標を作るには、「自分」と「身近な人」と「社会」の三者に目を向ける必要があると思っています。巷では目標管理制度や三年目研修のようなものが流行っていますが、この三者に目を向けようと…

実務で良く見かけるループ処理

実務で使われるプログラム、特にバッチ処理では、ループ処理は頻出です。ループ処理には、良く使われるパターンがいくつかあります。そのパターンを覚えておけば、既存のソースコードの理解がスムーズになります。 今回の記事では、実務で良く使われるループ…

unix/linux:perlの複数命令を1行のコマンドで実行する(例:文字列のバイト位置走査)

表題の通り、unix/linuxでは、perlの複数命令を1行のコマンドで実行することができます。-eオプションによりコマンドライン上で実行可能となり、1つ1つの命令を ; で区切ることで複数命令を記述可能となります。 perlはファイル操作や正規表現に優れてい…

情報処理技術者試験対策「RDBMSのインデックス」

RDBMSの性能分析を依頼された、という個人的な理由で、RDBMSのインデックスについて記事にしていきたいと思います。 今回の記事では、情報処理技術者試験の出題範囲内で、要点を箇条書きで書きたいと思います。実務で使うには+αの知識(主にRDBMS固有の知識…

プログラムによる小数点以下の計算で誤差が生じる原因&対処法2選

プログラムで小数点以下の計算を行う際、誤差が生じることがあります。金額計算を行う時はこの誤差が即障害に繋がるので、誤差が生じないように実装する必要があります。 今回の記事では、誤差が生じる原因とその対処法を2つ挙げていきたいと思います。 1…

システム開発現場の間違い探し

システム開発現場の間違い探しを表現するとこんな感じです。 問:左右の絵に違いはありません。 ペーパーの試験や既にバグが顕在化したシステムとは異なり、システム開発現場では間違いがあることが明らかではありません。むしろ、「○○さんのレビューを通し…

エラー解消系記事の必要性について

このブログでは、出てくるエラーとその解消法を、エラー解消系の記事として記事化することがあります。(マニュアルのエラーメッセージ一覧の一項目をそのまま記事にするような形です)直近では、TeraTermの文字化けやjspのforEachについて記事化しました。 …

jsp:foreachが上手く動かない(表示できない)時の対処法→ライブラリ定義忘れかも

jsp

ググってもそのままズバリの答えが出てこなかったので、記事にします。--------------------------JSTLのcoreタグライブラリを使用している時に、 <tr> <th> </th> <c:forEach var="obj1" items="${time}"> <th><c:out value="${obj1.time}"/></th> </c:forEach></tr> こんな感じでforEach文を使っても何も表示されないことがありました。 理由は単純で、jspの先頭に<%@ t…

TeraTerm:バイナリファイルを開いた後の文字化けの直し方

TeraTermでは、文字コードの設定を正しく合わせた後でも、バイナリファイルを開いた時に文字化けが発生し、その後の作業に支障をきたすことがあります。その場合は、「メニューバー→コントロール→端末リセット」で元に戻せます。 なお、この直し方は、公式マ…

情報処理技術者試験対策「スコープコントロール」

「スコープ」とは、直訳すると「範囲」という意味です。プロジェクトマネジメントにおいては、「スコープコントロール」という言葉が「現在のプロジェクトで対応する範囲をコントロールする」という意味で使われます。スコープコントロールについては、情報…

java:ミュータブルな参照型変数の初期化の注意点

ミュータブルな参照型変数を初期化する場合、初期化の方法を間違えると他の変数も一緒に初期化してしまいます。この記事では、ミュータブルな参照型変数の初期化方法を解説します。 【基本データ型変数と参照型変数】変数は大きく分けて、基本データ型変数(…

ExcelのVLOOKUP関数の高速化

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

ループ処理のテスト観点

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

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

「定量的品質評価」とは、その名の通り品質を数値で評価です。そのことにより、品質の良し悪しを客観的に把握することが可能になり、有効な対策を打てるようになります。 今回の記事では、情報処理技術者試験に良く出てくる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でどのような対応を行う必要があるのかを書きたいと思います…