HHeLiBeXの日記 正道編

日々の記憶の記録とメモ‥

Eclipse(PDT)でPHPのコードを書く時の不便さを解消する

そもそも、静的型付けでない言語は好きではないのですが、好き嫌いを言っていると仕事が無くなってしまうので・・ そんなわけで、Eclipse(PDT)でPHPのコードを書くわけですが、時にあるクラスのインスタンスの配列を関数/メソッドに渡す形にしたい時があり…

identity column定義を削除する

DB2

大昔に、DB2でidentity columnを定義するという記事を書いた。 hhelibex.hatenablog.jp これを使って生成したテーブルがあるのだが、とある事情により、自動採番ではない形に変更する必要が生じた。 うーん‥どうやって削除するんだ、これ?‥と悩み探して20分…

DB2のトランザクションログ領域が足りない場合の対処

プライベートでデータを蓄積しているDB2サーバーで、巨大なインデックスを作ろうとしたら、トランザクションログがいっぱいというエラーが発生しました。 db2inst1@ubuntu14.04:~$ db2 "CREATE INDEX idx_hoge_hogehoge ON hoge(hogehoge)" DB21034E The com…

hostnameの変更

CentOSにおけるホスト名、永続的に変更しようと思うと、バージョンによってやり方が異なるので簡単にまとめておくメモ。 CentOS 5/6 ホスト名は「/etc/sysconfig/network」ファイルに書いてあるので、hostnameコマンドで変更しても永続的には変更されません…

logwatchをアンインストールせずにメール通知を止める

logwatchを使ってログの集計情報をメールで飛ばすということをやってきたけど、毎日毎日何通も来るのでだんだんウザくなって読まなくなってしまった。 そんなわけで、アンインストールするのもアレだったので、とりあえずメール通知を止めようということにな…

hostnamectlとsystemctlでの情報表示

今まで、パラメータを渡して実行することしかしなかったので、パラメータなしで実行すると情報が出てくるっていうのをつい最近になって知りました(汗)。 hostnamectlコマンドは、ホスト名やOS名等々が表示される。 [hhelibex@centos7 ~]$ hostnamectl Static…

findコマンドで特定のユーザ/グループのファイル/ディレクトリを探す

ある時、特定のユーザ/グループのファイル/ディレクトリをchownしたい要件が出てきた。 開発環境で、最初は「apache/apache」で動かしていたhttpd、だんだんとめんどくさくなって、httpdのUser/Groupを変えたいけど、ファイルの所有者が‥という感じ。 まぁ…

2020年の行動指針(努力目標)

今更感ですが、明けましておめでとうございます。 昨年どころか、ここ数年というもの、いろいろとあって、何も進展しておらずにただただ日々の諸々に追われるだけの毎日になっている気がしています。 この流れを断ち切るべく、また続々と現れる若い力に飲み…

【注:ネタ】Ruby言語における整数型の最大値と最小値の変遷(しません)

諸事情でかくかくしかじか、とにかく飲み込んでくれ、という状況なので、まぁ今のうちに2019年を振り返っておきますか、ということで。 (※先に断っておきますと、「子どもじゃあるまいし・・」という突っ込みをしたいと思いますが、『心は永遠の幼児』です…

Apache httpd 2.4用mod_cidr_lookupパッチ

ものすごく今更感はありますが。 CentOS 6⇒7で、Apache httpdが2.2.15⇒2.4.6に変わっています。 そんなわけで、とりあえず、CentOS 7でApache httpd用に作られたmod_cidr_lookupをインストールするためのパッチを投げておきますね。 curl -O -L http://downl…

複数の環境でExcelからPDFファイルを出力するとズレが生じる

ものすごく久しぶりになってしまい、気付けば2019年もあと2か月を切ってしまいました。 まぁ、とりあえず生きています。 さて、ある時からずーっと、Excelファイルで帳票を作ってPDFファイルに変換(「名前を付けて保存」でPDFを選択)すると、環境によってズ…

C++版の文字列split実装の罠

C++

「C++ 文字列 カンマ区切り」とかで検索するとヒットする記事等には、以下のようなコードがよく書かれている。(main関数は動作確認のために自分で付け足したもの) #include <iostream> #include <string> #include <vector> #include <sstream> using namespace std; vector<string> split(string str, c</string></sstream></vector></string></iostream>…

sortの比較関数の実装ではまった

C++

最初、以下のような実装をしていた。 #include <algorithm> #include <iostream> using namespace std; class ValList { public: vector<int> valList; ValList(vector<int> &valList) { this->valList = valList; } }; class Comp { public: bool operator()(const ValList *v1, const ValL</int></int></iostream></algorithm>…

Nを表すのに必要な最低限のビット数

Javaのあるプログラムで非負整数Nに対する以下のような式を見かけた。 int n = (int)(Math.log10(N) / Math.log10(2) + 1.0); 最初、何を求めているのかしばらく分からなかったのでメモ。 ちなみに以下のように書いても同じ(はず)である。 int n = (int)Math…

Range同士の関係を判定する述語についてまとめてみる

非常につまらないミスをやらかして凹んでいるので、反省の意味を込めて、Rangeに対して実装できる述語を整理してみるテスト。 ちなみに、Rangeとは開始と終了(begin & end、from & to、left & right、etc.)の範囲を表現することができる何か。 Javaでクラ…

CentOS 7環境にMonoを導入してみる

ふと思い立って、C#のプログラムをCentOS 7上で動かせないかと考え、導入からコンパイル、実行までをやってみたメモ。 参考サイト CentOS7 Monoをインストールしてコンソールアプリを動かしてみる - 1.21 jigowatts LinuxでMonoを使ってC#をコンパイル・実行…

大量の座標値を読む場合の効率的な読み方

ふと、AtCoderなどのコンテストでよくある「大量の座標値を読んで何かを求める」という場合に、どういう処理を書いたら一番効率がいいのかと疑問に思ったので試してみたメモ。 テストケース データ生成 実行スクリプト 実行結果 テストケース 実際に試したケ…

mapのoperator[]の罠

C++

mapを使ったあるプログラムを書いていて、やたらとメモリを食うので、何だろうといろいろ試行錯誤しながら調べてみたら、どうもmapの使い方に問題があるのではないかということが分かってきた。 mapのリファレンスを探して読んでみると、以下のようなことが…

json_encode関数のJSON_UNESCAPED_UNICODEオプションの指定方法

json_encode関数はデフォルトではUnicode文字列がエスケープされるのだが、PHP 5.4より以前ではエスケープを避ける手段がないので、以下のようなコードを書くと、出力を人がパッと見ても読めない。 index.php

Javaでの和暦対応の罠

ふと、Javaで和暦対応してたよなぁと思い出し、検索して見つけた以下のサイトのプログラムを元に、とあることを検証してみた。 Javaで和暦→西暦、西暦→和暦に変換する - Qiita それは、「Calendar#setで西暦年をセットして和暦でフォーマットして出力したら…

サーバー名の末尾にドットを付けたリクエストを送ると予期せぬ応答が返ってくる問題

前置き 事前準備 サーバープログラム 接続テスト(サーバー:OpenJDK 1.7.0) 接続テスト(サーバー:OpenJDK 1.8.0) 検証 参考 前置き 以下の2つの環境での挙動が違うことに悩んでいた。 CentOS 6.9+OpenJDK 1.8.0+Apache Tomcat 6.0 CentOS 5.11+OpenJ…

mb_encode_mimeheader/mb_decode_mimeheaderする際には内部文字エンコーディングに注意

PHP

マニュアルをちゃんと読むと書いてあるのだが。 PHP: mb_encode_mimeheader - Manual PHP: mb_decode_mimeheader - Manual 前者のmb_encode_mimeheader()は、以下のように書いてある。 パラメータ str エンコードする文字列。 mb_internal_encoding() と同じ…

各言語で正規表現「^」「$」「\A」「\z」を試してみる

徳丸浩の日記: 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう https://t.co/Lc20UYnwMT— HHeLiBeX (@hhelibex) 2017年12月11日 ということで、あちこちから突っ込みが来ないことを祈りつつ(謎)、手元にある各言語でテストプログラム…

各言語で部分文字列を取得してみる

各言語で入力された文字列の部分文字列を取得するプログラムを書いてみたメモ。 要件は以下の通り。 標準入力から、1行の文字列が与えられる 文字エンコーディングはUTF-8 サロゲートペアも含まれることがある 文字数は3文字以上であることが保証される 入力…

各言語で指定したディレクトリ内のファイル一覧を取得してみる

各言語で指定したディレクトリ直下のファイル一覧を取得するプログラムを書いてみたメモ。 要件は以下の通り。 コマンドライン引数には、ディレクトリ名が1つ指定される 指定されたディレクトリから直下にあるファイルのファイル名一覧を読む ファイルの個数…

各言語での整数型の最大値と最小値

唐突に、各言語での整数型の最大値と最小値をまとめてみようと思ったメモ。 環境 手元にあるものということで、環境は以下のものに限定する。なお、32ビット環境は、このために急きょ作った。 CentOS 6 (32ビット) Java (openjdk version "1.8.0_151") C (gc…

各言語でUTF-8バイト列を文字列置換および文字列分割してみる

各言語でUTF-8のバイト列を読み込み、文字列置換と文字列分割をしてみたメモ。 要件は以下の通り。 標準入力から、文字列が1行だけ入力される。 文字エンコーディングはUTF-8 入力文字数は高々10文字とする 標準出力に、以下の2つを改行区切りで出力する。 …

各言語でUTF-8バイト列からバイト数と文字数を取ってみる

各言語でUTF-8のバイト列を読み込み、バイト数とUnicodeでの文字数を取得してみたメモ。 要件は以下の通り。 標準入力から、文字列が1行だけ入力される。 文字エンコーディングはUTF-8 入力文字数は高々10文字とする 標準出力に、以下の3つを改行区切りで出…

各言語でファイル入出力+文字エンコーディング変換

各言語でファイル入出力と文字エンコーディング変換を書いてみたメモ。 やってる途中で、別々のエントリに分けた方が良かったかもと思ったりもしたが、例えばJavaなんかは内部的には「文字」はUTF-8だったりして入出力と文字エンコーディング変換が深くかか…

各言語の標準エラー出力

そういえば今まで意識しなかったな、ということで、各言語の標準エラー出力を使ってみたメモ。 環境 手元にあるものということで、環境は以下のものに限定する。 CentOS 7 Java (openjdk version "1.8.0_151") C (gcc (GCC) 4.8.5) -std=gnu11でコンパイル C…