Unknown Region

プログラムでハマったエラーとその解決方法についての備忘録メモ

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

【JavaScript】Infinityへの加算及び減算の挙動について

何遍Infinityについて書いているんだと言われたら、何も言えないのだけれど(白目) plugout.hateblo.jp plugout.hateblo.jp ゼロ除算自体が一般的にアンチパターンなので、意外と知らない事も多いなと。 今回はInfinityを使って加算及び減算した場合につい…

【Java】[java.sql.ResultSet]の落とし穴

実装的に当たり前といえば当たり前だけれど、知らないとハマりそうな話。 [java.sql.ResultSet]の[ResultSet.getLong()]や[ResultSet.getInt()]は、primitiveな値を返却するように実装されている。 なのでDB上でNULL許可されているようなカラムから情報を取…

【Java】JacksonでのInfinityの扱いについて

自分の備忘録がてら。 前回、JavaScriptのInfinityのJSONでの扱いについて書いた。 plugout.hateblo.jp 今回はJavaのJackson(com.fasterxml.jackson)だとどうなるのかなと思って試したのを残しておく。 github.com ちなみにInfinityはdoubleやfloatで0除算を…

【JavaScript】[JSON.stringify()]にInfinityを与えるとnullになる

自分の備忘録がてら。 [JSON.stringify()]はObjectからJSON文字列を生成する関数だが、結果で一部正確に反映されないものが存在する。 そのうちの一つがInfinityで∞(無限)という意味だ。 JSON文字列上、∞は表現できないためにnullになってしまう。 (尚、Infi…

【JavaScript】指定した文字数のランダムな英数字文字列を生成する

備忘録がてら。 以下のプログラムは200文字のランダムな英数字文字列を生成する。 例: test.js let length = 200; // わかりやすく代入しているが、直指定すればワンライナーで書ける。 let str = Array.from({"length": length}, (v, k) => k) .map(e => Ma…

【Java】[java.util.Optional]における匿名クラスの扱いに気をつけよう

Javaの話。 ※ Java8及びJava15にて事象を確認。 以下のプログラム(Test1.java)はコンパイルエラーが発生する。 例: Test1.java import java.util.Optional; public class Test1 { public static void main(String... args) { Object object = Optional.of(ne…

【JavaScript】ENUMの仕組みを用意する

JavaScriptでは[enum]という単語は予約語だけれど、一般的な[enum]、つまりは列挙型の仕組みは用意されていない。 ja.wikipedia.org [JavaScript enum]でGoogle検索をかけると、連想配列を使って擬似的に実現する方法が出てくるけれども、個人的には[定義時…

【Perl】便利なハッシュスライスを使いこなそう

ハッシュスライスを使うと、ハッシュから複数の値を一気に取得したり、一気に代入したりすることができて便利。 取得の場合の例: 例: demo1.pl #!/bin/bash my %data = ('hoge' => 'fuga', 'foo' => 'bar', 'piyo' => 'piyopiyo'); my @values = @data{'hoge…

【Perl】splitの際にエスケープされているものを含めないようにする

タイトルの通り。 例えば「,(カンマ)」の場合。 CSVファイルの1行なんかを簡易的に「,(カンマ)」でsplitしたい場合、バックスラッシュなどでエスケープされている物はsplitの対象としたくなかったりする。 その場合はsplitで正規表現を用いて、以下のように…

【Java】[Generics]はしっかり設定して[RawType]を防ごう

[Generics]はしっかり設定して[RawType]を防ごう(大事なことなので2回ry) 以下のプログラムはコンパイルエラーになる。 注: Java8にて確認。 例: Hoge.java import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.stre…

【Lua × JavaScript】Fengariのメモ

TypeScriptを弄っていたはずが、いつの間にか楽しくてFengariを弄っていた(?)ので……調べながら試したことのメモ。 fengari.io FengariはJavaScriptで実装されたLuaのVMとのこと。 ブラウザ上でLuaのスクリプトを動かすことができる。 以下は簡単なHello W…

【MATLAB】nchoosekによる[組み合わせ]の利用

今回は以前に記事を書いた記事の、MATLAB版。 plugout.hateblo.jp MATLABで[組み合わせ]の処理実装するためには[nchoosek]を利用するのが一番スマート。 jp.mathworks.com 例: Demo1.m data = ["A", "B", "C", "D", "E"]; patterns = nchoosek(data, 3); [m,…

【Lua × Java】LuaJのメモ

LuaJについて、軽く触ったのでメモ。 LuaJは、LuaをJava上で動かせるようにするJavaのライブラリ。 C系だと気軽に使えて重宝するLuaですが、Javaでも使えるとなるとアプリのパッチなどで活躍するかも。 www.luaj.org Javaのプロジェクト内に組み込むのが一番…

【Java】文字列のnullの連結にご注意を

Javaでのお話。 個人的に知らなかった、文字列の結合の仕様についてメモ。 ずっと以下のコードはNullPointerExceptionになると思い込んでいたのだが、どうやら違う様子。 例: Demo.java public class Demo { public static void main(String[] args) { Syste…

【Java】Auto-UnboxingでのNullPointerExceptionにご注意を

Nullに対してAuto-Unboxingが働くと、NullPointerExceptionが発生する。 なのでラッパークラスとプリミティブで比較を行う場合は、思いがけない場所で落とし穴にハマってしまう。 例:Demo1.java public class Demo1 { public static void main(String[] arg…

【Python】OpenCVのVideoWriterの落とし穴

動画の出力処理を作成していてハマったので備忘録としてメモ。 OpenCVのVideoWriter()を使って動画ファイルを吐き出した時、その動画がプレイヤーで再生できないというトラブルに陥った。 docs.opencv.org 原因としてはコーデックの問題などたくさん考えられ…

【Lua】tobooleanを実装する

Lua

Luaには[tonumber]という値を数値に変換してくれる関数や[tostring]という値を文字列に変換してくれる関数がデフォルトで存在する しかし[toboolean]の様な、値を[boolean]に変換してくれる関数はデフォルトでは存在しない。 [boolean]という真偽値を表す型…

【Python】カメラなどで撮影したノイズ混じりの線画を綺麗な白黒に加工する【OpenCV】

本当は別で動画加工をするためにプログラムを作成していたのだが、たまたま別の用途に使用できそうな副産物のプログラムが出来上がったので備忘録として残す。 カメラで撮影した様なノイズ混じりの線画を、パソコン上で彩色しやすい様にはっきりとした白黒に…

連絡先: plugout777★yahoo.co.jp (クローラー対策のため★を@に変更してください)