技術とか戦略とか

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

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

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

数日前に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のホームページの…

障害事例は宝物

金融システムのようなミッションクリティカルなシステムの開発では、ミスは許されません。自分が起こしたミスから学ぶのはもちろんなのですが、他者が起こしたミスから学ぶというのも大切な姿勢になります。 どのようなミスが障害につながるのかは障害事例を…

機械学習を始めるきっかけになる(かもしれない)プレゼン資料

AI(機械学習)には興味があるけど何から始めたら良いのかわからない、という方向けに、AIプログラミングを始めるきっかけになればと思って作ったプレゼン資料です。「用意されているライブラリを使えば、統計的な分析を簡単に始められる」ということが伝わ…

石の上にも三年

最先端の技術を取り扱うイケてるIT企業のことはわかりませんが、少なくとも普通のSIer(業務システムを作っているITゼネコン)に関してはタイトルのことわざ通りだと思っています。そろそろプログラミングでついていけなくて悩む新人が増え出す季節なので、…

仕事や趣味で2進数・16進数を使っている身として伝えたい図

気まぐれで基数計算を解説している画像を検索していたのですが、公式めいた画像は見つかっても本質的な所を説明している画像は何故か見つけられませんでした。公式だけではなく本質を知ることも重要だと思うので、この記事を書きます。 基数計算を本質的に表…

サクラエディタのマクロが動かない場合→マクロの文字コードを確認

ある人が作っていたサクラエディタのマクロが動かない(全角文字の置換ができない)ので、うまく動くサクラエディタのマクロと見比べた結果、マクロの文字コードに原因があったので、メモ代わりに残します。上手く動いたマクロはSJISで保存されていたのに対…

あるあるバグ事例:幅を持たせた条件指定の狭間に落ちるケース

コーディングをしていて表題のようなケースでバグになったことがあるのを思い出したので、注意喚起ということで紹介します。有効桁数の考慮不足等で境界値の条件指定が完全にカバーされていないと、境界値付近のデータが来た時にどの条件にも当てはまらずに…

java:Windowsバッチからの呼び出しで対話式で実行できることの確認

まあできますよね、という確認です。これができるなら、ちょっとしたツールを作成する時に幅が広がります。 【ソース】javaソースとWindowsバッチは同一フォルダに配置する。 ・javaソース(IOTest.java)import java.util.Scanner; public class IOTest { p…

オブジェクト指向とは現実世界を正しく捉えることである

と書くと色々物議を醸すことが多いのですが、本当にそう思う出来事があったのでメモ代わりに記事にします。 私の趣味であるゲーム攻略での出来事なのですが、既存のツールをベースに新たなツールを作ろうと思い、ツールの開発者の方にソースを見せてもらいま…

テスト環境を使用する時の心構え

始めての現場でテスト環境に触れる時、テスト環境がどのような環境か良く分かっていないと知らず知らずの内にテスト環境を壊してしまいがちです。このあたりのことは情報処理技術者試験の勉強をしても身に付かなかったりするので、あえて文章にしてみます。 …

セキュリティルームでの共連れのリスクと防止法

IT業界だと機密情報を取り扱うことが多いので、それに関連しての記事です。 機密情報を取り扱う部屋(セキュリティルーム)では、入退室時にカードキーや暗証番号等を使用した認証が必要になります。この認証について、リスクになるのが「共連れ」と呼ばれる…

unix/linux:ファイルを読み取り専用で開きたい時はviewコマンドで開く

unix/linuxでは、viコマンドを発行するとファイルをviエディタを開いて読み取り・書き込みが可能になります。しかし、読み取りのみを行いたいのであれば、viコマンドではなくviewコマンドで開くべきです。 というのは、viコマンドで開くと、誤ってファイル…

改めてDevOpsとは

「DevOps」という単語はセミナーで良く耳にしていたのですが、「ツールを導入し、開発部門と運用部門の連携を密にし、リリースの速度を上げる」というざっくりとした印象しか記憶にありませんでした。他社のエンジニアと話したら「DevOpsはWeb画面のテストを…

2019年の自社の社員旅行に行ってきました

楽しそうな写真とかはFacebookを見てもらうとして 社員旅行に行って、同じ現場で働く仲間たちだけでなく、違う現場で働く仲間たちとも親しく話せるようになりました。現場作業の他に、社内全体を見る必要がある仕事もしているので、これは大きなプラスでした…

サクラエディタのマクロに大量(500以上)のコマンドを記述すると一部コマンドが実行されなくなる(推測)

スペックの高いPC(詳細は後述)の場合、サクラエディタのマクロに大量(500以上)のコマンドを記述し実行した時に一部コマンドが実行されなくなる現象を確認しました。現象が発生するPCの場合、コマンド数が600程度の時に発生したり発生しなかったりし、700を…

サクラエディタのマクロ(置換処理記述)をバッチから並列実行すると処理が競合する

サクラエディタの Ver2.2.0.1 にて表題の挙動を確認したので、記録に残しておきます。 【再現手順】1.大量(確認時は1000個)の置換処理をマクロに記載する。例S_ReplaceAll('hoge1000', 'fuga1000', 62); // すべて置換S_ReplaceAll('hoge999', 'fuga999'…

ガチではない人向けのゲーム制作の始め方

ゲーム制作の始め方について調べていたのですが、ゲームシステムの話や売り出しの話が検索結果の上位に挙がり、どうも私のような「そこまで考えていない人」向けの記事ではなかったので、この記事を書きます。 私が大事だと思うのは、「ゲームを作ろうと思っ…

戦略を学ぶ上でのゲームの有用性

戦略の考察が私の趣味なのですが、戦略的思考の有用性を他の人に伝えるにはどうすれば良いのか、ということを最近考えています。座学も既存のゲームから学ぶのも限界がある、戦略的思考を伝えるためのゲームを制作するのが一番良いのではないか、というのが…

java:javaからのOSコマンド呼び出しと注意点

javaのプログラムからOSのコマンドを実行したい場合は、Runtimeクラスのexecメソッドで実現できます。 しかし、OSのコマンドは別プロセスで立ち上がるので注意が必要です。ProcessクラスのwaitForメソッドでプロセスの終了を待たないと、処理が前後してしま…

Windowsバッチのfindstr実行と結果判定は1行でまとめられないので代替案提示

言いたいことをまとめると、「WindowsバッチをExcelから生成するため、findstrの実行と結果判定(ERRORLEVELの判定)を1行でやりたかったができなかった。仕方ないのでfindstrと結果判定の間に特殊な記号を入れ、その記号をまとめて改行コードに置換するこ…

情報処理技術者試験対策「httpとhttpsの違い」

普通にWebシステムを使う分には「httpsはhttpを暗号化したプロトコルで、盗聴・なりすまし・中間者攻撃の対策になる。認証等の機密性の高いやりとりをWeb上で行う時に使用する。」というレベルの認識で十分なのですが、応用情報技術者ではもう少し正確な理解…