技術とか戦略とか

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

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

net use によるネットワークドライブ割り当てで「このコマンドの構文は~」と言われる→ダブルクォーテーションで囲っていないのが原因かも

同じエラーで手が止まっている方向けに記事を起こします。 #> net use :z \\hoge\fuga(important)\piyo のようにしてZドライブにネットワーク割り当てを行おうと思った所、「このコマンドの構文は次のとおりです:」という要は「使い方間違ってるよ!」という…

javaでのFactory Methodパターン

Factory MethodパターンはTemplate Methodパターンをオブジェクト生成の場面に適用したもので、オブジェクト生成の処理を共通化することができます。 今回は、RPGのキャラクター作成を模したサンプルコードを作成してみました。キャラクターの職業毎にクラス…

javaでのTemplate Methodパターン

Template Methodパターンは、処理(メソッド)の中で共通している箇所を抽象クラスとして抜き出すことで、重複した記述を排除し、更に処理の流れも規定する手法のことを指します。手続き型言語でも共通する箇所を子メソッドとして抜き出すことをしますが、子…

javaでのFacadeパターン

Facadeクラスとは、使い方が複雑になっているクラス群をまとめ、使いやすい形のインターフェースとして外部に提供するクラスのことを指します。デザインパターンでは、このFacadeクラスを利用するパターンをFacadeパターンと呼びます。(ちなみに、Facadeは…

Excelで文字の一括置換を行う方法(テキストエディタ利用)

Excelファイルは複数のxmlファイルを圧縮して構成されています。解凍することでxmlファイルの形式として開けるようになり、通常のテキストエディタで編集することが可能になります。これを利用することで、全てのシートに対して、オブジェクト内の文字も含め…

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

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

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

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

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

コンピュータの文字表示で用いられるフォントは、大きく分けて「プロポーショナルフォント」と「等幅フォント」の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を使っていても知っておいた方が良いことです。それ以…

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

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