int型の表現範囲
intの表現範囲が複数種類あった気がしたので整理
int -32,768 ~ 32,767
参考:
Integer型とLong型はどちらを使うべき? | VBA性能徹底検証 | VBA性能向上委員会
JAVA,C,postgres等
int -2,147,483,648 ~ 2,147,483,647
参考:
Javaのint型で扱える最大の値とは? | Javaコラム
表現範囲の理屈は二進数で表現してるから
コンピュータの中では、データを「二進数」で格納
コンピュータは二進法の0と1を、大量のスイッチのON/OFFで覚えている
このスイッチが16個あったら、二進数での16桁分の数を覚えられる
そのスイッチの内一つはプラスマイナスに使うので、数字に使うのは15個
二進数での15桁の最大値、111111111111111を十進数に直すと、32767となる
このスイッチの数を「ビット」と表現している
参考:
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/'
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のラムダについて調べたことなかった。
以下の記事がすごく丁寧に解説していてわかりやすかった。
参考:
省略パターンを記載してくれているのはありがたい。
たまにナニコレ?ってハマるから。。
【追記】
ラムダ式のソース眺めての感想
つまりは省略の書き方の新しいやつがラムダ式だ。
今までもフレームワークのメソッド利用したいけど引数の型が合わないから引数の箇所にメソッド処理を書いて無理やり?引数の型に合うように記載していたりした。
それの新しい書き方がラムダ式ってことだと思う。
いい例がすぐに出てこないので具体例はまた今度。。。
徹底解説! Javaのラムダ式はどういうもので、どう使えばいいのか!
このサイトのほうが詳しく解説しているので、ここ見て勉強かな。
maven pom.xml buildタグ
maven pom.xmlのbuildタグについていまいちわからなかったので調べてみた。
参考サイト:
Maven基礎(プロジェクト生成とpom.xmlの読み解き) | 若手エンジニアのブログ
ところによると、どうもビルドした際にjarの出力や配置(デプロイかな?)についての定義をできるところの模様。
pluginタグで必要な情報を記載・設定する模様。
プラグインの一覧は以下のほうが詳細に記載されている。
参考サイト: