今回はJavaScriptで以下のJavaの記事を同じ様なケース。 plugout.hateblo.jp JavaScriptでクラスを利用せず、次の様にオブジェクト(連想配列)を生成した場合の話。 例: string1.js let data = {"key": "value"}; console.log(data); // {key: 'value'}と出力…
いつも気をつけているのだが、割とうっかりやらかすので割と戒めのためにメモ。 JSONは元々JavaScriptの記法を元にしたフォーマットだが、実はJavaScript上では許されているがJSONとしては許されていないものがある。 その代表例の一つが末尾のカンマだ。 例…
気軽にRStudioを使ってグラフを吐き出そうと思ったら、思わぬところで引っかかったのでメモ。 R言語でCSVファイルを読み込む際にはread.csv()を利用するのが便利だ。 例: demo1.R data <- read.csv('demo.csv', header=TRUE, row.names=1, encoding="UTF-8")…
先日LTSであるJava21がリリースされたJavaについて。 xtech.nikkei.com メジャーバージョンがかなり早い頻度でリリースされるようになってきた一方で、開発者にとってはこんなメッセージで苦しまされることも多いのでは。 例: エラーメッセージ java.lang.Il…
備忘録がてらメモ。 HTML上で画像の表示には主に [imgタグ] を使用するが、その画像の説明を追加する方法がいくつかある。 それぞれどのような場面で使用すべきかをまとめる。 alt属性 この [alt属性] には [画像が表示されない場合に何が表示されるべきか説…
何回も躓くので備忘録がてらにメモ。 割と理屈は分かっていても、いざ問題に遭遇すると原因だとパッと分からないのが辛いところ。 Gitではデフォルトだと[ファイル名の大文字小文字を無視する設定]になっている。 現在の設定を確認するには、リポジトリ上で…
備忘録がてらメモ。 最近、ビッグデータを扱うプロジェクトでは「Parquet」という列指向フォーマット(カラムナフォーマット)が好まれるようになってきた。 parquet.apache.org Parquetの利点は、なんといってもデータの読み込みの速さとストレージ容量の節…
備忘録がてら記載。 まず[snappy-java]はJavaでSnappy圧縮を容易に行うためのモジュール。 github.com この[snappy-java]を利用して生成したファイルを別システムに食わせるプログラムを作っていたのだが、受け取るプログラム側で以下のようなエラーに直面し…
僕の雑記ブログ[DIGITAL COFFEE]の以下の記事で、遊びで実施した手法についてのメモ。 plugout.hatenablog.com はてなブログの投稿記事の中から、最長のタイトルを探す方法。 最初は[はてなブログのAPI]を利用しようと思ったが、ページングが面倒なのと、も…
備忘録がてらメモ。 コンパイルしたJavaのバージョンを知りたい場合は、以下のようにするとスマート。 例: javap -v Demo.class | grep "major version" | awk '{ print $3 - 44 }' ※ Demo.classは対象のclassファイル
結構ハマっている人がいるので、整理がてらメモ。 JavaScriptでは変数は型を持たないが、値がデータ型を持つ。 例えば以下のプログラムでは、数値(number)が文字列(string)としてキャストされて文字列結合が行われる。 例1: demo1.js let hoge = 128; // num…
備忘録がてらにメモ。 「はてなブログ」で記事に画像をアップロードして使用する場合の話。 僕もよくスマートフォンの「はてなブログ」のアプリを利用するのだが、「はてなフォトライフ」がメンテナンス中だとアップロード処理が延々と終わらない事象になる…
備忘録がてら。 ブラウザ上で[document.getElementsByClassName()]等を実行した場合に返却される[HTMLCollections]はArrayのような動きをするが、最低限の機能しか備わっていない。 もし[Array.prototype.forEach()]等を実行したいのであれば、[Array.protot…
備忘録がてら。 Javaの[java.math.BigInteger]はlongでも扱えない様な大きな範囲の数値を扱うことができるクラス。 例えばコンストラクタに数値が格納された文字列を渡し、計算させることもできる。 Longの最大値を文字列に変換して与え、1足してみるサンプ…
ちょっとハマったのでメモ。 java.util.Functionやjava.util.ConsumerなどのFunctionalInterfaceなクラスのインスタンスを引数に取るメソッドに対して、Lambda式を与えると「ambiguous(あいまい)」としてコンパイルエラーになるケースが存在する。 例えば…
備忘録がてらメモ。 pythonにおいて文字列→数値へパースする際、使用できる文字はちょっと特殊で全角の「1」なども含まれる。 ただ当たり前だが、それを更に文字列に変換すると半角数字になるので注意。 例: demo.py raw_value = "1" # 全角の「1」を与え…
ちょっと作ったのでここに記載。 日付関連のパースは、いつもちょっと面倒なのでExtensionを作ってしまった方が楽かなと。 実運用時にはフォーマットを外から与えるのではなく、別に専用のメソッドを作って中で固定して持ってしまった方が楽かもしれない。 …
個人的メモ。 あるライブラリを弄っていて、アクセス修飾子がついていないEnumのインスタンスを引数に要求するメソッドに出くわしたのでこの方法を使った。 (そのメソッド自体はpublicなので、恐らくアクセス修飾子の考慮漏れか修正ミスだとは思う) 例: De…
Lombokを拡張する方法を探していたのだが、想定していたよりも情報量が少なかったので備忘録がてらここへ記録。 projectlombok.org 結果として、日本語、英語、中国語の技術記事をかき集めることになった。 カスタマイズはjavacのtools.jarを扱うことになる…
何遍Infinityについて書いているんだと言われたら、何も言えないのだけれど(白目) plugout.hateblo.jp plugout.hateblo.jp ゼロ除算自体が一般的にアンチパターンなので、意外と知らない事も多いなと。 今回はInfinityを使って加算及び減算した場合につい…
実装的に当たり前といえば当たり前だけれど、知らないとハマりそうな話。 [java.sql.ResultSet]の[ResultSet.getLong()]や[ResultSet.getInt()]は、primitiveな値を返却するように実装されている。 なのでDB上でNULL許可されているようなカラムから情報を取…
自分の備忘録がてら。 前回、JavaScriptのInfinityのJSONでの扱いについて書いた。 plugout.hateblo.jp 今回はJavaのJackson(com.fasterxml.jackson)だとどうなるのかなと思って試したのを残しておく。 github.com ちなみにInfinityはdoubleやfloatで0除算を…
自分の備忘録がてら。 [JSON.stringify()]はObjectからJSON文字列を生成する関数だが、結果で一部正確に反映されないものが存在する。 そのうちの一つがInfinityで∞(無限)という意味だ。 JSON文字列上、∞は表現できないためにnullになってしまう。 (尚、Infi…
備忘録がてら。 以下のプログラムは200文字のランダムな英数字文字列を生成する。 例: test.js let length = 200; // わかりやすく代入しているが、直指定すればワンライナーで書ける。 let str = Array.from({"length": length}, (v, k) => k) .map(e => Ma…
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]という単語は予約語だけれど、一般的な[enum]、つまりは列挙型の仕組みは用意されていない。 ja.wikipedia.org [JavaScript enum]でGoogle検索をかけると、連想配列を使って擬似的に実現する方法が出てくるけれども、個人的には[定義時…
ハッシュスライスを使うと、ハッシュから複数の値を一気に取得したり、一気に代入したりすることができて便利。 取得の場合の例: 例: demo1.pl #!/bin/bash my %data = ('hoge' => 'fuga', 'foo' => 'bar', 'piyo' => 'piyopiyo'); my @values = @data{'hoge…
タイトルの通り。 例えば「,(カンマ)」の場合。 CSVファイルの1行なんかを簡易的に「,(カンマ)」でsplitしたい場合、バックスラッシュなどでエスケープされている物はsplitの対象としたくなかったりする。 その場合はsplitで正規表現を用いて、以下のように…
[Generics]はしっかり設定して[RawType]を防ごう(大事なことなので2回ry) 以下のプログラムはコンパイルエラーになる。 注: Java8にて確認。 例: Hoge.java import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.stre…
TypeScriptを弄っていたはずが、いつの間にか楽しくてFengariを弄っていた(?)ので……調べながら試したことのメモ。 fengari.io FengariはJavaScriptで実装されたLuaのVMとのこと。 ブラウザ上でLuaのスクリプトを動かすことができる。 以下は簡単なHello W…