技術とか戦略とか

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

javaでのスレッド制御(joinとsynchronized)

javaでは、スレッドを立てて処理を並列に行うことができます。しかし、並列に処理を行う際、処理順を制御しなければならないことがあります。 処理順の制御方法として基本的な方法として、joinを使う方法とsynchronizedを使う方法があります。joinを使うこと…

javaでのソケット通信の記事引用

javaでは、C言語と同じようにIPアドレスとポート番号を指定してのサーバ間ソケット通信が可能です。既に解説やサンプルプログラムが充実していたので、当記事では引用のみ行います。 ・解説(図解)ストリーム型通信 http://ecogis.sfc.keio.ac.jp/online/ja…

情報処理技術者試験対策「UML」

UMLは情報処理技術者試験でも実務でも頻出です。実務のことを考えると、特にクラス図とシーケンス図は使えるようになっておく必要があるでしょう。 しかし、シーケンス図はともかく、クラス図はオブジェクト指向を理解していないと理解できないと思います。…

プロポーショナルフォントと等幅フォントの違いと使い分け

コンピュータの文字表示で用いられるフォントは、大きく分けて「プロポーショナルフォント」と「等幅フォント」の2つに分けられます。 ・プロポーショナルフォント 文字毎に幅が異なるフォント。 「MS Pゴシック」が例として挙げられる。 ・等幅フォント…

singletonとstaticの違い

デザインパターンのsingletonパターンを学んだ時に「インスタンスを1個にすれば良いなら、クラス変数やメソッドをstaticにすれば良いのでは?」と思ったので、試しにテストコードを書いてみました。単純なstaticでは利用者側で好きにインスタンスを作成でき…

「不可視です」というエラーが出たらカプセル化された変数・メソッドを使用しようとしていないか疑う

タイトルの通りなのですが。 例えば、「int hoge = new java.util.Random().next(10)」というコードを書いた場合、「next(int)はRandomで不可視です」というエラーが出ます。 Randomクラスのnextメソッドはprotectedで定義されており、外部に提供されていな…

基本情報処理技術者試験のpythonのサンプル問題を解いてみた

2019年10月28日にIPAから基本情報処理技術者試験のpythonのサンプル問題が公表されたので、解いてみました。既に基本情報技術者試験.comから解説も出ています。 【2019年10月28日公開】基本情報技術者試験 Pythonサンプル問題|基本情報技術者試験.com https…

unix/linux:atコマンドの代替コマンド

特定の日時にコマンドが発行されるように登録するatコマンドですが、環境によってはこのコマンドが使用できないことがあります。特定のユーザでしか実行できないように制御することができたり、OSによってはatコマンドで登録できない仕様(バグ?)があった…

unix/linux:コマンドをファイルの代わりにする(プロセス置換)

Linuxのコマンドの中にはファイル名を指定するものがあります。ここで、ファイル名の代わりに、コマンドをファイルに見立てて指定することができます。(プロセス置換と呼びます) 例えば、決められた日時にコマンドが実行されるように登録するatコマンドが…

java:イミュータブルなクラスを作る方法

「イミュータブル」とは「不変」という意味で、オブジェクト指向の世界では「状態(クラス変数)がオブジェクト生成時から変更されないこと」を指します。有名所では、Stringがイミュータブルなクラスとして知られています。 イミュータブルなクラスを自作す…

マニュアル対応にならないようにするために心がけるべきこと

サービス提供者、特に接客業では、「マニュアル対応」が批判されることがあります。「マニュアル対応」が批判される理由としては、以下の二点の理由により顧客の期待通りのサービスを行えない可能性があるからだと思っています。 ・マニュアルはサービス提供…

サクラエディタ:範囲指定と否定範囲指定の併用

以下のように記述することで、範囲指定と否定範囲指定を併用できます。 ([範囲指定]|[^範囲指定]) 例えば、改行コードは明確に指定しないとヒットしないのですが、それを否定範囲指定と併用したい時に使えます。実際に使ってみた結果が以下の通りです。

上位者・担当者が行うべき判断の違いとエスカレーションの重要性

障害対応やクレーム対応において、担当者で対応方針を判断できない場合は、上位者の指示を仰ぎます。このことを「エスカレーション」と呼びます。 エスカレーションについて、なぜこれが重要なのかというのを、上位者が行うべき判断と担当者が行うべき判断の…

Excel・VBA:始めてのマクロの作り方(Hello World)

Excelのマクロ(VBA)の作り方の紹介です。マクロを使える設定にしてから、「Hello World」をポップアップで表示するボタンを作成し、保存する所まで紹介します。Excelのバージョンは Excel 2013 とします。 手順1:マクロを開発可能にするExcelの任意のファ…

NHK ニュース・防災アプリの勧め

使ってみて便利だったので紹介です。 防災情報を集めるために、テレビ・ラジオを使ったりネット・SNSを使ったりすることがあるかと思います。しかし、前者は自分とは関係のない地域の情報が混ざっているため目的の情報を聞き逃さないようにするのが難しいで…

Windowsバッチで「~として認識されていません。」と怒られる→改行コードがLFのせいかも

Windowsバッチにて、明らかに文法が合っているのに、 'hoge' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。と言われて怒られることがあります。 この場合、Windowsバッチの改行コードが誤って…

「コピー新規(修正新規)」とは

【背景】金融系SIerでは「コピー新規」という言葉を聞くことがあります。(「修正新規」と呼ばれることもあります)特定の現場だけではなく複数の現場で聞いたことがあるので、一種の業界用語だと思います。しかし、コピー新規という言葉でWeb検索をかけても…

新人研修での目標

未経験の新人がSIerでプログラマーとして働く際、事前に新人研修が行われるはずです。その新人研修では、下記の3つのことができるようになって欲しいと個人的に思っています。(プログラム言語はjavaを想定します) 1.変数、配列、if、ループといった基本…

Excel:VLOOKUP関数と代替関数の使い方まとめ

表題の通り、VLOOKUP関数とその代替関数の使い方のまとめました。 通常は、VLOOKUP関数(第四引数FALSE)で事足ります。記述量も少なく関数の内容もわかりやすいので、とりあえず検索したい時はVLOOKUP関数(第四引数FALSE)で良いと思います。 しかし、高速…

会社の同僚のライブに行ってきました!

同僚が大事なライブをやるということで誘いを受けたので、行ってきました。ちなみに、バンド名はFORです。 ライブに行くのは初めてでしたが、かっこよかったです!何より、音で会場全体が震える感覚がすごかったです。この感覚は実際に会場に行かないと伝…

Excel:漢字項目の昇順検索で失敗する場合の対応方法(文字コード順にソート)

前に「ExcelのVLOOKUP関数の高速化」という記事を執筆しました。検索のキー項目を昇順に並び替え、VLOOKUP関数のあいまい検索(二分検索)を使用することで、VLOOKUP関数を高速化できるという内容です。 以下では、漢字項目をキー項目として検索する場合の注…

ソースコードにおける一貫したポリシーの重要性

ソースコードを読みやすくし保守性を高めるために、「GOTOは使わない方が良い」「クラスは小さく分けた方が良い」といったポリシーを良く聞きます。しかし、これらのポリシーによりソースコードが読みやすくなるとは限りません。例えば、「GOTOは使わない方…

java8:関数型インターフェースの背景にある考え方

【前置き】Java8から関数型インターフェースが使用可能になりました。具体的に「ラムダ式」「Stream」「Optional」「Files」と言った方がわかりやすいでしょうか。 関数型インターフェースは関数型プログラミングをサポートするものであるため、従来からJava…

情報処理技術者試験対策「稼働率の計算」

今回は、「稼働率の計算」について書きます。情報処理技術者試験では頻出のテーマであり、また実務でもインフラ構成を考えるのに役に立つ考え方です。 いくつかの例を挙げて説明していきますが、便宜上、各機器の稼働率は0.9とします。(稼働率…機器やシステ…

情報処理技術者試験対策「磁気ディスクの構成とアクセス」

今回は、「磁気ディスクの構成とアクセス」について書きます。文章ではわかりづらいので図解します。 ITパスポートや基本情報処理技術者では頻出です。 また、フラグメンテーションとデフラグは普通にPCを使っていても知っておいた方が良いことです。それ以…

保守性の高いコードを作成するために心がけること

ソースコードは作って終わりではなく、その後何年、何十年にもわたって保守開発が行われます。また、保守開発を行う開発者もその間に入れ替わります。ソースコードを作る際は、このことを踏まえて高品質・低コストで保守開発ができるようにする必要がありま…

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

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

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

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

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

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

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

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