楽落人の備忘録

楽して生きていきたい。知識とか覚えておきたくない。

int型の表現範囲

intの表現範囲が複数種類あった気がしたので整理

 

VBA

int -32,768 ~ 32,767

参考:

Integer型とLong型はどちらを使うべき? | VBA性能徹底検証 | VBA性能向上委員会

 

JAVA,C,postgres等

int -2,147,483,648 ~ 2,147,483,647

参考:

Javaのint型で扱える最大の値とは? | Javaコラム

 

表現範囲の理屈は二進数で表現してるから

参考:

2進数

intで定義された変数には整数値-32768から32767まで表現... - Yahoo!知恵袋

 

この辺は昔の常識が環境により変化している模様

昔はint範囲はint型で扱うが正しかったようだが、VBAでは32bit型に一度変換してからintを利用しているため、処理速度がlongと比較すると若干落ちるとのこと

現状では64bitマシンが主流になっているためこの常識もいつか変わるのかもしれない

centos7 httpsが遅い

ローカル検証用に構築したcenos7(virtualBoxで構築)のHTTPSのリクエストがクッソ遅くて大変だった

その時のことを備忘録として記載

【結論】

ipv6設定を無効にする

コマンド:

vi /etc/sysctl.conf

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

shutdown -r

参考:

CentOS 7のインストール後におこなうLinuxの基本設定 13ポイント - レムシステム エンジニアブログ

 

【現象】

ローカルに検証用としてVirtualBoxで構築したCentOS7にもろもろ必要なものインストールしていたら、composerのインストールのためのリポジトリ登録でエラーがが発生。

内容はtimeout

【検証】

なんでタイムアウトしているのか原因不明だったためHTTPリクエストとHTTPSリクエストをcurlで投げてみた

HTTPリクエスト:

curl --location --request GET 'https://httpbin.org/'

HTTPSリクエスト:

curl --location --request GET 'https://www.google.com/'

 

すると、HTTPリクエストは即時レスポンスを取得できているのに、HTTPSリクエストは5分以上かかってレスポンスを取得していた。遅いけどレスポンス取得はできていた。

【原因】

よくわからんがHTTPSのレスポンス取得がめちゃくちゃ遅いために、timeout値こえて待てなくてエラー(タイムアウト)が発生している。

これだととても都合がわるい。環境構築のためのもろもろがインストールできない。

【調査】

centos HTTPS 遅い とかでググってもなかなかいい記事に行き当たらない。

そのためそもそもLINUX環境構築時に行うことに立ち戻っている記事を見つけたので、そちらを参考にもろもろ試してみることにした。

参考記事:

CentOS 7のインストール後におこなうLinuxの基本設定 13ポイント - レムシステム エンジニアブログ

【結果】

 ipv6設定を無効にする を対応したらHTTPSリクエストのレスポンスが即時取得可能になった。

【推測】

ipv6設定が有効だとそっちでHTTPSリクエスト飛ばしているのかな?それでだめだったからipv4でリクエスト飛ばしなおしてレスポンスを取得。この一連の流れの最初と最後だけ見た場合5分レスポンス取得までかかるという現象が発生するのではないか?

別の可能性だと、そもそもipv6でのHTTPSリクエストのレスポンス取得がクソほど遅い可能性。
どっちでしょうか。。。追及はしないが、取り急ぎ解決策をここに記載。

【補足】

wgetが遅い場合の対処法 - [Linux [Red Hat/CentOSなど]/サーバー] ぺんたん info

上記サイトと同様の現象が発生している場合、推測の前者が当たってる

A5Mk2 主キーのないテーブルの更新

トピック: 【バグ】ユニークでないテーブルの編集時の挙動 |

 

主キーがなく複数のカラムで一意のレコードを作成している場合、

a5mk2のデータ表示状態(表みたいにレコード表示している状態のこと)で、

レコードの値の更新ができない。


内部の作りが、自動で主キー指定してupdateするんでしょうね。主キーないテーブルだと複数レコードupdateしてしまうからエラーにして禁止にしていると。

うむ。主キーつけろよって話っすよね
そっちのほうが正論だと思います。

なお複数でも単数でも主キーがあればよい模様。主キーの指定のないテーブルがエラーになる。

尚手動でのupdate文からのupdateは問題なくできます。

openjdkとは

JDK、Oracle JDK、OpenJDK、Java SEってなに? - Qiita

上記のサイトがすっごくわかりやすく解説している。
感謝が絶えない。
昔のJAVAとまた時代がかわったなぁ。複雑で覚えきれない。
ダウンロードは

Archive | AdoptOpenJDK - Open source, prebuilt OpenJDK binaries

からがいいかな。

java8のラムダについて

そういえばjava8のラムダについて調べたことなかった。

以下の記事がすごく丁寧に解説していてわかりやすかった。

 

参考:

Java8のラムダ式を理解する - Qiita

 

【Java】ラムダ式の省略方法まとめ - Qiita

 

省略パターンを記載してくれているのはありがたい。

たまにナニコレ?ってハマるから。。

 

【追記】

ラムダ式のソース眺めての感想

つまりは省略の書き方の新しいやつがラムダ式だ。

今までもフレームワークのメソッド利用したいけど引数の型が合わないから引数の箇所にメソッド処理を書いて無理やり?引数の型に合うように記載していたりした。

それの新しい書き方がラムダ式ってことだと思う。

いい例がすぐに出てこないので具体例はまた今度。。。

 

徹底解説! Javaのラムダ式はどういうもので、どう使えばいいのか!

このサイトのほうが詳しく解説しているので、ここ見て勉強かな。

maven install jar

maven installコマンド実行時にjarを自動生成してくれるが

junitのテストケースでfailureが発生すると、jar作成しない。

単体テストケース書き直すのも面倒なのでとりあえずテストスキップで実行。jar生成された。不要なjunitのソースも含まれてないのでこっちのほうがイイかも。

maven pom.xml buildタグ

maven pom.xmlのbuildタグについていまいちわからなかったので調べてみた。

 

参考サイト:

Maven基礎(プロジェクト生成とpom.xmlの読み解き) | 若手エンジニアのブログ

 

ところによると、どうもビルドした際にjarの出力や配置(デプロイかな?)についての定義をできるところの模様。

pluginタグで必要な情報を記載・設定する模様。

 

プラグインの一覧は以下のほうが詳細に記載されている。

参考サイト:

Maven – Available Plugins