Unknown Region

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

【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】PowerMockの落とし穴

自分のための備忘録。 JUnitでPowerMock( + Mockito)を使うと、staticメソッドのモック化が可能。 例えば[java.time.LocalDateTime.now()]の値は、テストが実行される度に変化するので正確な予測は難しい。 以下に[execute()]が実行されるたびに[java.time.L…

【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】

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

【Java】Optional.orElse()の落とし穴

またしょーもない所で詰まったので備忘録がてらにメモ。 以下のプログラムで[hoge]内の[fuga]には何が代入されているかという問題。 例: Sample1.java package test; import java.util.Optional; public class Sample1 { public static void main(String[] a…

【Java】StreamやOptionalにおけるfilter()でのメソッド参照で、スマートに否定の条件式を指定する

※ 2019/12/23追記 コードの表記が崩れているご指摘を頂き、該当箇所を修正致しました。 ありがとうございます。 備忘録がてらメモ。 概ね実現したいのはタイトルの通り。 Java8から登場したStreamAPIの[Stream.filter()]は、条件に一致する要素だけをフィル…

【Python】itertools.combinations()による[組み合わせ]の実装

今回も個人的な備忘録。 良く数学の問題で出てくる「AとBとCとDとEから3個取り出す組み合わせを求めよ」というような問題をPythonで計算するには、[itertools.combinations()]を使うのがとても手っ取り早くて良い。 例: demo1.py #!/usr/bin/python import i…

【JavaScript】Object.defineProperty()の落とし穴

備忘録がてらにメモ。 公式ドキュメントを読まないばかりに実装に無駄に時間をかけてしまった自分への戒めとして残しておく。 JavaScriptの[Object.defineProperty()]という関数は、対象のオブジェクトに対して指定したプロパティを定義するという関数となっ…

【MySQL】JSON型のカラムを操作する場合の落とし穴

備忘録がてらメモ。 MySQL 5.7から利用できるようになった「JSON型」について、色々と落とし穴がある。 ここから先は、とあるDatabase(スキーマ)に「hoge」というテーブルを作成したものとして説明する。 例: table.sql CREATE TABLE hoge ( fuga json DEFAU…

Twitterのシェアボタン設置の落とし穴

Twitterのシェアボタン設置に関して、ハマってしまったので備忘録がてらにメモ。 Googleで「Twitter シェアボタン」なんて検索すると出てくる通り、以下のTwitterの公式サイトから「シェアボタン」のコードを生成して、自分のウェブサイトなどに埋め込むこと…

jqの落とし穴にご注意を

JSONデータをコマンドライン上で扱う上で、とても便利な「jq」というツールをご存知ですか? stedolan.github.io 例えば以下のコマンドを実行すると、ものすごく手軽にJSONデータを整形して表示してくれるので便利。 コマンド実行例: 1 $ echo '{"hoge":"fug…

【Ruby】RandomBellで正規乱数を扱う

Rubyで正規乱数を使いたい場面が場面があったので備忘録がてらにメモ。 正規乱数とは、正規分布に従う形の乱数のこと。 簡単に説明すれば通常の乱数は範囲内の数値が完全にランダムで取得できますが、こちらでは正規分布に従って、値によって取得できる確率…

【Java】java.util.Map.containsKey(key)の落とし穴

Javaの[java.util.Map]において、あるキーにnullを代入する場合と、そのキーに何も代入しない場合では振る舞いが異なるようなケースがある その中でも最も身近な存在なのが[Map.containsKey(key)]だと思う。 プログラム例: Snippet.java public class Snippe…

【Perl】PerlのJSONモジュールでbool値を扱う

PerlでJSONを扱う場合は、cpanでよく知られたJSONモジュールを使用することが多い。 https://metacpan.org/pod/JSON この時に値としてbool値を扱う場合には [true]の場合には[\1] [false]の場合には[\0] を代入することで実現することができる。 例: demo1.p…

【Java】親に持つGenerics(総称型)<T>のClassを取得する

備忘録がてらに、こちらへメモ。 以下の様なクラス構成に於ける「Generics(総称型)<T>」のクラスの取得方法について。 Hoge.java /** * Hogeクラス */ public class Hoge { } BaseController.java /** * ベースクラスでGenerics(総称型<T>)を持つ */ public ab</t></t>…

JavaScriptのヒアドキュメントについて

JavaScriptでヒアドキュメントを実現したい場合、ES6以降をサポートしていれば「`」で囲むことで実現することができる。 var str = ` hoge fuga `; ただしES6以前の場合は利用できないので、以下のチートを利用することでそれっぽいことを実現できる。 var s…

JSONのObjectとArrayの違いにご注意

まず、JSONについては以下のページが参考になるかと思います。 ja.wikipedia.org JSONは基本的に以下のようなフォーマットで提供されます。 例: サンプルJSON(Object) { "hoge": "fuga" } このJSONの場合、JavaScriptのJSON.parse(string)などで解釈させると…

【Java】プリミティブのMax値とMin値にご注意を

以下のようなプログラムがあったとして、Step1、Step2、Step3でvalueとして何が出力されるかという問題。 大抵のエンジニアは、何がしたいかピンと来ると思います。 例: Demo.java public class Demo { public static void main(String... args) { long valu…

【Perl】FindBinを使う

以下はファイルの一覧を出力するプログラムです。 用途としては、このプログラムと同階層にあるファイルの一覧を出力したいとします。 プログラム例1(/tmp/example/hoge.pl) : #/usr/bin/perl use strict; use warnings; use utf8; my @files = glob("./*");…

【Java】Mapへの初期代入について

JavaでMapを作成して最初に何か値を代入したい場合、通常は以下のようにすると思います。 Java8でのHashMapの生成と代入例: Map<String, String> map = new HashMap<>(); map.put("hoge", "fuga"); map.put("foo", "bar"); ただ、他の言語を触っている人だと、Mapの作成と同</string,>…

【Ruby】RMagickで画像を一括リサイズ

大量の画像を一気に同一サイズにリサイズしたいときってありますよね。 僕も前にある大量のサムネイル画像をブログに掲載する際にそれが必要になり、いろんなツールを試した記憶があります。 今回はRubyでRMagickを使った一括リサイズ処理を書いたのでこちら…

【Android】TextView.getTextSize()の落とし穴

AndroidのTextViewでsetTextSize(size)をした後にgetTextView()を実行すると値が違うという罠にハマる。 どういうことかというと、以下のコードで説明すると……。 例: (Java) TextView textView = new TextView(context); textView.setTextSize(14.0f); // 14…

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