HHeLiBeXの日記 正道編

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

各言語で日時文字列の解析

手元にある各言語で、標準入力から日時文字列を読み込んで、標準出力にUNIX TIME値を吐き出すプログラムを書いてみようと思ったメモ。 要件は以下の通り。 入力される日時文字列は1つのみ 不正入力のチェックは不要とする OS等のタイムゾーンはJST 対応するU…

各言語でdate format

手元にある各言語で、標準入力からUNIX TIME値を読み込んで、標準出力にフォーマットされた日時文字列を吐き出すプログラムを書いてみようと思ったメモ。 要件は以下の通り。 入力されるUNIX TIME値は1つのみ 不正入力のチェックは不要とする タイムゾーンは…

各言語でQueue

手元にある各言語で、標準入力からの数値列をQueueに放り込んで、入力と同順になるように標準出力に吐き出すプログラムを書いてみようと思ったメモ。 標準入力から入力される数値列の要件は以下の通り。 1行に1つの数値が書かれている 不正入力のチェックは…

各言語でStack

手元にある各言語で、標準入力からの数値列をStackに放り込んで、入力とは逆順になるように標準出力に吐き出すプログラムを書いてみようと思ったメモ。 標準入力から入力される数値列の要件は以下の通り。 1行に1つの数値が書かれている 不正入力のチェック…

Go言語のパッケージ名と変数名の罠

Go

Go言語で以下のようなコードを書いて一瞬ハマったのでメモ。 package main import ( "fmt" "container/list" ) func main() { list := list.New() list.PushBack(1) list.PushBack(2) list.PushBack(3) for elem := list.Front(); elem != nil; elem = elem.…

標準入力から数値列を読み込んで、逆順に標準出力に吐き出す

手元にある各言語で、標準入力から数値列を読み込んで、逆順にしたうえで標準出力に吐き出すプログラムを書いてみようと思ったメモ。 標準入力から入力される数値列の要件は以下の通り。 1行に1つの数値が書かれている 不正入力のチェックは不要とする いく…

標準入力から数値列を読み込んで、降順にソートして標準出力に吐き出す

手元にある各言語で、標準入力から数値列を読み込んで、降順にソートしたうえで標準出力に吐き出すプログラムを書いてみようと思ったメモ。 プログラム言語にもよるが、昇順は簡単なのに降順となったとたんに苦労するケースがあったりする。 標準入力から入…

標準入力から数値列を読み込んで、昇順にソートして標準出力に吐き出す

手元にある各言語で、標準入力から数値列を読み込んで、昇順にソートしたうえで標準出力に吐き出すプログラムを書いてみようと思ったメモ。 標準入力から入力される数値列の要件は以下の通り。 1行に1つの数値が書かれている 不正入力のチェックは不要とする…

入力文字列をparseIntで解析する場合とScannerを使用する場合との速度の違い

プログラミングコンテストとかでjava.util.Scannerを使って入力の数値を取得しようとすると、どうしてもInteger.parseIntした場合より実行速度が遅くなってしまうということで、どの程度のものなのかを簡単に調べてみたメモ。 検証環境 CentOS 7のVM(Virtual…

JDKのバージョンによる文字列連結処理の速度の違い

過去にもなんか調べた気がしないでもないが、Java 9リリース記念ということで、Sun/Oracle JDK限定だが、JDKのバージョンを変えたときの「+」連結/StringBuffer/StringBuilderの速度の違いをざっと調べてみた。 平均値とか出すのが面倒だったので、測定は一…

C++の標準入出力についてのメモ

C++

プログラミングコンテストなどでよく見かける以下のコード断片を「おまじない」で片づけるのが嫌だったので調べてみたメモ。 ios_base::sync_with_stdio(false); cin.tie(NULL); 答えは以下のサイトで解説されているのだが‥ c++ - Significance of ios_base:…

標準入力から1行ずつ読み込んで数値解析して標準出力に吐き出す

唐突に、手元にある各言語で標準入力から1行ずつ読み込んで、行の先頭の数値として解析できる部分を数値に変換して標準出力に吐き出すプログラムを書いてみようと思ったメモ。 例えば、「+123i456」という行があったら、「+123」までが数値として解析できる(…

標準入力から1バイトずつ読み込んで、大文字小文字変換をして標準出力に吐き出すプログラムを書いてみる

唐突に、手元にある各言語で標準入力から1バイトずつ読み込んで、大文字小文字変換をしたうえで標準出力に吐き出すプログラムを書いてみようと思ったメモ。 大文字小文字判定等を行う関数をまじめに使った言語もあれば、正規表現に頼った言語もあったり、果…

各言語で標準入力から1バイトずつ読み込んで標準出力に吐き出すプログラムを書いてみる

唐突に、手元にある各言語で標準入力から1バイトずつ読み込んで標準出力にそのまま吐き出すプログラムを書いてみようと思ったメモ。 普段は使わない言語も混じっているが、まぁ気にしない。 環境 手元にあるものということで、環境は以下のものに限定する。 …

PHPでのファイルアップロードの処理

PHP

ファイルアップロードのファイルサイズチェック - Qiitaを読んでて非常にもやっとしたので、PHPプログラム側のエラー処理を自分なりに整理してみたメモ。 ちなみに検証環境は訳あって以下だが、CentOS 7でも同様だと思う。 CentOS 6 PHP 5.3.3 php.iniの設定…

ARRAY_TO_STRINGの結果に対してLIKE検索している部分が遅い問題の一つの解決案

割と複雑なクエリで4秒とか掛かるものにぶち当たり、explainを取ってみたところ、表題の通りARRAY_TO_STRINGした結果得られる文字列に対するLIKE検索をしている部分でコストが増大していることが分かり、軽く検証してみたメモ。 細かいところは追い追い書い…

IntStreamで遊んでみた

暇だったので、Java 8から追加されたjava.util.stream.IntStreamでちょっと遊んでみた。 ちなみに、IntStreamはinterfaceであるが、ソースを見るとstaticメソッドの実装が書いてある。IntStream#ofとか。まぁそれは余談。 以下のようなソースで出力を見てい…

PHPの三項演算子の注意すべき挙動

PHPで以下のようなコードを書いていてしばらくはまっていたのでメモ。

Apache TikaのPDFファイルテキスト抽出で遊んでみる

今更ながらに「Apache Tika」というものの存在を知る‥PDFとかその他諸々のファイルのメタデータやテキストを抽出してくれる‥|Apache Tika https://t.co/CsCBY74ekK— HHeLiBeX (@hhelibex) 2017年2月27日 ということで、サイトのParser APIを追いかけてコー…

シフト演算とMath.pow(2, n)と(+Math.pow(2, n)の怪)

自分が時々やらかしてしまうのでメモ。 環境は、CentOS 7(VM)上のOpenJDK 1.8.0_111。 2のべき乗(整数値)が欲しい場合はシフト演算 2のべき乗(整数値)が欲しいときに時々やらかしてしまうのが、以下のようなコードを書いてしまうこと。 for (int i = 0; i < …

rangeによるrangeの違い

Pythonのコードをちゃんと書いたことはないのだけど、ある理由でPythonのコードを読んでいて、ふと気になって調べたメモ。 結論から言うと、rangeで範囲を指定したときに列挙される値が、プログラム言語や、同じ言語でも書き方によって違うのだな、と。 実行…

QueueやStackとして使うなら‥LinkedList vs ArrayDeque

頭がJava 1.4で止まっているプログラマの呟き(謎)‥ LinkedListをQueueとして使ったあるプログラム(何)を書いていて、QueueやStackとして使うならLinkedListよりArrayDequeがお勧めとアドバイスをもらったので、軽く検証してみた。 事前準備 ソースコードは以…

文字列連結のパフォーマンス比較

PHP

そういえば計ったことなかったなぁ‥と思い立って、いくつかのパターンで計ってみたメモ。 実行環境は、自宅のXenServer上に載せた以下のVM環境。 CentOS 6.8+PHP 5.3.3 ケース1:文字列連結演算子とダブルクォーテーションと プログラムの全体は以下のような…

PHPの識別子にアスキーコード0x7Fが使えることの検証

PHP

マニュアルにもしっかり書いてあるんだけどPHPの識別子にはアスキーコード0x7Fが使えるが、これは制御文字DELなので変じゃないかという指摘。試したところ確かに使える / “PHP :: Bug #71897 :: ASCII …” https://t.co/9CkFL2aziD— 徳丸 浩 (@ockeghem) 2016…

is_aとis_subclass_ofの違い

PHP

クラス名の文字列を渡して使用しようとしたときに罠にはまったのでメモ。 is_a PHP: is_a - Manual is_subclass_of PHP: is_subclass_of - Manual はまったのは、v5.3.9から追加されたというallow_stringパラメータのデフォルト値に関連するものだが、他にも…

PostgreSQLサーバー用ディレクトリを暗号化ファイルシステムに置き換えてみる~論理ボリューム作成編

前置き やりたいことは、前に書いた PostgreSQLサーバー用ディレクトリを暗号化ファイルシステムに置き換えてみる - HHeLiBeXの日記 正道編 と同じなのだが、 HDDを追加せずに、論理ボリュームlv_rootを分割して、片方を論理ボリュームlv_pgsqlとして暗号化…

文字とASCII値の変換

PHP

いつも関数名まで忘れて苦労するので、メモついでにおもちゃを作ってみた(謎)。 関係する関数は以下 PHP: ord - Manual PHP: chr - Manual おもちゃコードとして、文字列の独自エンコード/デコードする関数を作ってみた。 エンコード 各文字のASCII値のビッ…

PostgreSQLサーバー用ディレクトリを暗号化ファイルシステムに置き換えてみる

前置き とりあえず、以下の環境を前提としている。 OSはCentOS 6 (VirtualBoxのVMとして作成) PostgreSQL 8.4をパッケージインストールしている データディレクトリは「/var/lib/pgsql/data」 PostgreSQLのデータディレクトリも含めて1つのパーティションに…

Zend_Dateクラスを効率よく使うチャレンジ

PHP

序 Zend Frameworkに含まれているZend_Dateクラスは、インスタンス生成コストがとにかく高い。 どれくらい高いかというと、以下の2つのプログラムで比較してみるとなんとなく分かる。 test0-1.php: Zend_Dateをn回インスタンス生成 = 2) { $n = (int)$argv[1…

HTML5のinputタグにおけるtype属性のサポート状況

ブラウザ標準の機能でカレンダーコンポーネントを使ったコードを書きたくて、ついでに単純なHTMLを書いて検証してみた。 試したのは以下のブラウザ。 Windows 7 Professional SP1 Firefox 39.0 Google Chrome 44.0.2403.107 m (64-bit) Opera 30.0.1835.125 …