タグ

*programとobject*に関するsh19910711のブックマーク (240)

  • 何故Elasticsearchに32GB以上メモリ割り振るのはNGなのか - 動かざることバグの如し

    その理由を探るべく、我々はアマゾンの奥地へと向かった。 環境 少なくともElasticsearch 2以上はこの記事該当 概要 古事記にも書かれていたんじゃないかってレベルで、「Elasticsearchには32GB以上のメモリを割り当てるべきではない」とよく言われる。ESのオプション設定記事とか見てるとよく書かれている。 が、なぜ32GBなのか、Elasticsearchのヒープサイズに32GB以上を設定するとどうなってしまうのか。 そもそも当なのか 2020年11月15日現在の最新は7系だが、公式ドキュメントを確認してみる。 Important Elasticsearch configuration | Elasticsearch Reference [7.x] | Elastic Set Xmx and Xms to no more than the threshold that

    何故Elasticsearchに32GB以上メモリ割り振るのはNGなのか - 動かざることバグの如し
    sh19910711
    sh19910711 2024/04/25
    "「Elasticsearchには32GB以上のメモリを割り当てるべきではない」とよく言われる / その理由を探るべく、我々はアマゾンの奥地へと向かった / Javaには 圧縮オブジェクトポインター機能 + ヒープサイズが32GB未満が条件" 2020
  • JUnitで学ぶTest smells撃退法 / How to resolve Test smells using JUnit5

    スクラムフェス新潟2023で発表した際に使用した資料です! https://confengine.com/conferences/scrum-fest-niigata-2023/proposal/18389/junittest-smells

    JUnitで学ぶTest smells撃退法 / How to resolve Test smells using JUnit5
    sh19910711
    sh19910711 2024/04/20
    "Test Smells: ”Refactoring Test Code”(論文)が初手 + 「xUnit Test Patterns」で体系的に整理 / Test Smellsが埋め込まれる背景の一つには最新版のTesting Frameworkを使用していないことが挙げられ" 2023
  • [WASM] CheerpJ 3.0を使ってブラウザでJavaアプリを動かす [アプレット] | DevelopersIO

    Introduction つい先日、CheerpjJ 3.0というブラウザでJavaアプリを実行可能にする コンパイラ/ランタイムがリリースされました。 これを使えば古のアプレットやSwingで作ったJavaアプリケーションが 最新ブラウザでpluginなしで動きます。 また、ライブラリ用のjarファイルもそのまま動かすことができるので、 稿ではJavaライブラリをブラウザ上で使ってみます。 CheerpjJ 3.0? こことかで紹介されてますが、CheerpjJ 3.0について簡単に解説します。 CheerpJ 3.0は、Leaning Technologiesによって開発された、 ブラウザで動作するWASMベースのJavaランタイムです。 JavaバイトコードをJavascriptにJIT compileして実行できます。 何かを追加でインストールしたりする必要はありません。 現在は

    [WASM] CheerpJ 3.0を使ってブラウザでJavaアプリを動かす [アプレット] | DevelopersIO
    sh19910711
    sh19910711 2024/02/09
    便利そう👀 / "CheerpjJ 3.0: ブラウザで動作するWASMベースのJavaランタイム / 昔のJavaコードがそのままブラウザで動く / Java8が動くので昔つくったアプレットも動く / ライブラリ用のjarファイルもそのまま動かすことができる"
  • 「ニュアンス」と「エンジニアの心得」という新卒研修のお仕事 - jfluteの日記

    昨年、2017年に、とっても意外で、とっても嬉しかったことと言えば、jfluteとしては、こちらですね。 「”価値あるサービスを生み出すエンジニア”になるために」新卒エンジニア研修を全公開! | REACH ONE ビズリーチのイマとこれから 新卒が成長して新卒研修を 入ってくる新卒のスキルの前提や、会社としての状況の変化から、新卒研修自体の形が変わってきて、講義形式から実践形式に変わってきました。 というか、もともとそういうのもやりたいね、でもフォローできる体制がなかなか整わない、というところでしたが... 新卒研修を受けた新卒が成長して、自主的に新卒研修の運用をしていく これが年々しっかりと積み重ねられて、jfluteも驚くくらい自己組織化されていました。(素晴らしい...) ということで、「そろそろ俺もあまり出番ないかな」と感慨と寂しさの狭間にいたのですが... 「jfluteさんの

    「ニュアンス」と「エンジニアの心得」という新卒研修のお仕事 - jfluteの日記
    sh19910711
    sh19910711 2023/03/20
    2018 / "ソースコードを読む意識が付くような説明 / 何かと「ctrl+クリック」して奥のコードを読んで「だからこうなっているんだよ」的な感じ / JavaのAPIだろうがライブラリだろうが、ちょこっとコードを覗いて確認をする"
  • Javaのパッケージ名の命名には2019年でも所持ドメインの逆順を使うべきなのか調べた - Qiita

    発端 Java6までは言語仕様の中に命名規約の章があったけどJava7からはなくなった。あとパッケージ名もドメイン名逆順にしろというのが、ローカルでの利用を意図してるなら単一の識別子だけでいいということになった。そのころからlombokみたいにプロダクト名だけのパッケージ名を見るようになった気がする — きしだൠ (@kis) 2019年1月22日 今までjavaパッケージの命名はドメイン名の逆順というのが通例だと思っていたが、たしかにそれに沿わないライブラリも特にScala系のライブラリで見ることが増えてきた。 そもそもこの命名規則は確かに衝突を避けるためには合理的ではあるもののコード中の記述量が増えるため後発の言語でもまったく真似されていない。 最近のJavaでより短いパッケージの命名が許容されるならとても嬉しいと思い、当にJavaのFQDN逆順命名規約は無視していいのか調べた。 調

    Javaのパッケージ名の命名には2019年でも所持ドメインの逆順を使うべきなのか調べた - Qiita
    sh19910711
    sh19910711 2023/03/07
    2019 / "javaパッケージの命名はドメイン名の逆順というのが通例だと思っていた / 衝突を避けるためには合理的ではあるもののコード中の記述量が増えるため後発の言語でもまったく真似されていない"
  • うるう秒補正バグでHBaseクラスタがダウンしたお話 / HBase cluster goes down by leap second bug of Linux kernel

    6月30日(土)から7月1日(日)にかけて行われたうるう秒補正により HBase クラスタが全滅したというお話。 7月1日の出来事 この日は日曜日だったが昼頃から Java のうるう秒バグで CPU 使用率が 100% になったという話題が海外からちょいちょい流れてきて...

    うるう秒補正バグでHBaseクラスタがダウンしたお話 / HBase cluster goes down by leap second bug of Linux kernel
    sh19910711
    sh19910711 2023/03/07
    2012 / "この日は日曜日だったが昼頃からJavaのうるう秒バグでCPU使用率が100%になったという話題が海外からちょいちょい流れてきていた / 夜中にMacBookの前に座りSkypeを見たらHBaseクラスタがダウンしていると騒ぎに"
  • 「リアクティブ・バックエンドにはScala」、または、プログラミング言語はターゲットとする新プラットフォームの普及とともに普及するものだ、という話 - たなかこういちの開発ノート

    2015年現在、関数型言語が勃興しつつあります。エンタープライズ分野で関数型言語が次世代のプログラミング言語マーケットの覇権を握ることとなるのだとしたら、いつどのように握るのか、それはどの関数型言語なのか、その動向が大いに気になるところです。 ・ 関数型言語の行く末を見定めるにおいて、過去のプログラミング言語興隆の歴史はどうだったのか、エンタープライズにおける主たるプラットフォーム・アーキテクチャーの変遷に絡めつつ振り返ってみます。 今から40〜50年程前のメインフレームの時代、そのメインフレームをターゲットとしたプログラミング言語、COBOLが覇権を握っていました。 時代を下って20数年前程になるとWindowsを始めとするGUIそしてクライアント/サーバー・システム開発用として、次にはC++が覇権を握ることとなります。そしてJavaが登場しました。Javaは当初Microsoft社のW

    「リアクティブ・バックエンドにはScala」、または、プログラミング言語はターゲットとする新プラットフォームの普及とともに普及するものだ、という話 - たなかこういちの開発ノート
    sh19910711
    sh19910711 2023/03/06
    2015 / "エンタープライズ分野では、新しいプログラミング言語の普及は常に新しいプラットフォーム・アーキテクチャーの普及に伴う、という見方ができる"
  • 利き手のようにJava使うのやめたいなって

    sh19910711
    sh19910711 2023/02/26
    2017 / "もしかしたらPythonの方が良いかもしれないし、JavaScriptの方が良いかもしれない / それでも案外Javaで出来てしまったりするからタチが悪いというか。極端な話Semicolonless Javaみたいなことになる"
  • これだから世の中にはiso-8859-1しかないと思ってる奴らは... - 川口耕介のブログ

    NetBeansの中の人経由でこれを発見した。 Without default value for source encoding, platform encoding is used, which is bad for build reproducibility. Then setting a default value consistently across every Maven plugin will improve build reproducibility. Proposed default value: ISO-8859-1, which must be supported by every JVM (see java.nio.Charset) and is already the default value for some plugins (the majority of

    これだから世の中にはiso-8859-1しかないと思ってる奴らは... - 川口耕介のブログ
    sh19910711
    sh19910711 2023/02/08
    2008 / "「ソースファイルをiso-8859-1以外で書いているプロジェクトは無視できるくらい少数」っていう風に書いてある / 元々英語圏の人はエンコーディングとか文字セットとかそういうのが今ひとつわかってない"
  • JREが単体で配布されなくなった理由

    2018 年 9 月、 Java 11 がリリースされました。Java 10 までは開発用の JDK と実行環境の JRE、 2 つのパッケージが提供されていたのですが、 Java 11 から JDK のみとなり Java 実行環境 (JRE) は単体配布されなくなりました。 オラクルが配布している Oracle JDK、 Oracle OpenJDK だけでなく、 ほかの OpenJDK ビルド Zulu OpenJDK でも JRE は配布されていません。 2019-04-26 訂正AdoptOpenJDK では JRE も配布していました。どうして、 JRE が配布されなくなってしまったのでしょうか? 新たなアプリケーション配布方法の提案オラクルが JDK の新しいリリース ・ モデルおよび提供ライセンスについて発表しています。 前半はリリース ・ サイクルの変更や商用利用の有償化な

    JREが単体で配布されなくなった理由
    sh19910711
    sh19910711 2023/01/13
    2018 / "Java 10 までは開発用の JDK と実行環境の JRE、 2つのパッケージが提供 / Java 11 から JDK のみ / Java 9 で導入されたモジュール機構 (Project Jigsaw) によって、アプリケーションが必要とする小さな JRE を構成できるように"
  • 最初のシステムを作った時の思い出 - 水まんじゅう2

    自分のシステム開発の仕方はよくも悪くも社会人になって最初のシステムの作り方の影響を受けている気がするので、思い出しながら書いてみる。 学生時代、ずっとデータの打ち込み作業をやっていました。フリーソフトウェアを公開代行するサービスを行っている会社でアルバイトをしつつ、なんとなくツールぐらいだったら作りつつも、自分自身は自分で作るよりもすでにあるツールを組み合わせてフロー作ったりするのが好き程度で、ほとんどプログラムらしいプログラムは書いたことがありませんでした。 学生時代は数学科だったものの、そこまで優秀ではなかったので、当時流行りだったシステムインテグレーターに就職し、これからはJavaの時代だということで、新人教育ではJavaを学びました。 周りにはプログラムを書いたことのある人が居なかったのもあり、まあ、周りよりかは新人研修の進みもよく、javamailのライブラリを使って勝手にメール

    最初のシステムを作った時の思い出 - 水まんじゅう2
    sh19910711
    sh19910711 2022/12/30
    2015 / "当時はStruts全盛期でこれからシステムはすべてStrutsで作るんだ!というぐらいにStrutsSturtsしていた / これからはStrutsだ!と言ったものの、誰もStrutsを使ったことがある人はおらず"
  • DRYについてのよくある誤解 - ひがやすを技術ブログ

    WEB+DB PRESS vol.49で、「現場で役立つDRYの基礎知識」が特集されています。とても、良い記事だと思うので、ぜひみなさん、読んでください。 ただ、ちょっと補足をしておきます。 記事の中で、DRYは、「達人プログラマー」の中で、とりあげられ、Railsによって広まったとされています。確かに、Rubyの世界ではそうかもしれないけど、DRY原則というのは、ERモデリング(DOA)の世界では、ずっと「One Fact In One Place」という言葉で知られてきました。 ERモデリングにおける正規化は、「One Fact In One Place」を具体的に実現するための手段です。 DRYという言葉そのものを広めたのは、間違いなくRailsです。しかし、DRYの考え方そのものは、昔からあったし、「One Fact In One Place」という言葉も、昔から有名だったというこ

    DRYについてのよくある誤解 - ひがやすを技術ブログ
    sh19910711
    sh19910711 2022/10/09
    2009 / "DRYという言葉そのものを広めたのは、間違いなくRails / DRYの考え方そのものは、昔からあったし、「One Fact In One Place」という言葉も、昔から有名だった / 広めるというのは、考え付くよりも難しい"
  • 昔のコードをまさぐったら - satosystemsの日記

    コードを探している。昔自分で書いたコードだ。 そんなに大きな実装ではない(おそらく数百ステップ)んだけど、また書くのは面倒な規模でもあり、バックアップのハードディスクを覗いてみた。 検索した条件が *.java を対象に "extends (J)?Applet" なんだけど、すっかり忘れていたいろいろが出てきた。 日酒データベース:ニフティの日酒フォーラムかどこかから入手したテキストのデータベースを加工して、Java 製の RDBMS にデータが突っ込まれている割と格的なデータベースアプリ。 サイト内全文検索システム:Applet のライフサイクルと Java のシリアライズを駆使した全文検索エンジン。Namazu のようなインデックス生成型で、分かち書きはなし。 リバーシーとかマインスイーパーとか:簡単なゲーム。Visual Cafe に依存しているので動かなかった。アホか!当時の

    昔のコードをまさぐったら - satosystemsの日記
    sh19910711
    sh19910711 2022/09/29
    2011 / "ケータイ Java をやりたくて、ケータイをまだ持っていなかった僕は Java の仕様がまともな J-Phone に決め、J-SH51 というケータイで初めてのケータイアプリを開発していた"
  • PHP で JVM を実装して Hello World を出力するまで

    at builderscon tokyo 2019 English Title: How to implement JVM by the PHP, and until output HelloWorld.

    PHP で JVM を実装して Hello World を出力するまで
    sh19910711
    sh19910711 2022/09/19
    2019 / "JPHPと呼ばれるJavaでPHPを実行するものならある + 逆はない / PHPで実装する上での制約: PHPではObjectというキーワードを使用できない + なんならStringやVoidというキーワードを使用できない / まずはjavapで見る"
  • おそらくはそれさえも平凡な日々: たとえばgetを避ける

    プログラムでは複数の意味を持ちうる単語は避けるというのがある。noとかrightとかが良い例だ。個人的に最近はgetも気をつけたほうが良いと思っていて、メソッド名にgetを使いたくなったときは大体間違えている。 Javaなんかのgetter/setter的なやつは、オブジェクト指向以前のパラダイムの名残でしかないと思ってる。手続きの内容をメソッド名にしているという、手続き型のパラダイムを引きずっている感。 例えば、 user.get_money みたいなコードがあった場合に、ユーザーがお金を獲得するのか、ユーザーの所持金額を取り出したいのかが分からない。オブジェクト指向的には前者が正しいのだけど、歴史的経緯から後者の意味合いで使わえる事が多い。プロパティの値を取り出すことが期待されてしまう。それが気持ち悪いので、getは極力使わないようにしている。 オブジェクト志向では、メソッド名はオブジ

    sh19910711
    sh19910711 2022/06/10
    2012 / "Javaとかだとプロパティとメソッドがはっきり分かれていて ~ だからproduct.priceに金額を代入しておくけどそれは直接使わずに、product.getPrice()で税込金額を返すみたいな処理が書かれてしまう"
  • FOSDEM 2020 & Jfokus 2020に参加しました - Fight the Future

    fosdem.org www.jfokus.se FOSDEMはブリュッセル(ベルギー)、Jfokusはストックホルム(スウェーデン)です。Jfokusは、2年前2018年にも参加しました。 www.sakatakoichi.com この2つのカンファレンスは、(あえて)日程がつながるようになっており、Javaを開発しているエンジニアがそれなりの割合で続けて参加します。 2/1 Sat. - 2/2 Sun. FOSDEM 2/3 Mon. - 2/5 Wed. Jfokus FOSDEMでは、Javaのトラックは1日目だけであり、2日目(2/2)を途中で切り上げてベルギーからスウェーデンに移動するか、Jfokusの1日目(2/3)はワークショップデイでオプション選択のため、FOSDEMを2日間聞いて、Jfokusの1日目に同じく移動するという方法が取れます。私は前者で移動しました。なぜな

    FOSDEM 2020 & Jfokus 2020に参加しました - Fight the Future
    sh19910711
    sh19910711 2022/05/21
    "FOSDEMではJavaのトラックは1日目 / 切り上げてベルギーからスウェーデンに移動するか / FOSDEMを2日間聞いてJfokusの1日目に同じく移動する方法 / この2つのカンファレンスは(あえて)日程がつながるようになっており"
  • 広告配信プログラム PerlからScalaへの軌跡 - MicroAd Developers Blog

    MicroAdの京都研究所でソフトウェアエンジニアとして勤務している池田です。主に広告配信やReal Time Bidding(以下RTB)のプログラムの開発に携わってきました。 日はアドネットワークと呼ばれていた時代から現在主流となったRTBに至るまで、MicroAdの広告配信プログラムで採用したプログラミング言語の経緯についてご紹介します。 MicroAd 配信プログラムと採用言語の変遷 サービスの開発年次と採用言語 年 サービス 概要 開発言語 2004 BlogClick ブログに特化したコンテンツマッチ型広告配信 Perl 2006 MicroAd リターゲティング/行動ターゲティング広告配信 Perl 2009 MicroAd配信改修 アーキテクチャ変更 Perl 2009 MicroAd VASCO 媒体向け無償アドサーバ PHP *1 2011 BLADE Demand-

    広告配信プログラム PerlからScalaへの軌跡 - MicroAd Developers Blog
    sh19910711
    sh19910711 2022/04/26
    "2004年にサイバーエージェントの1事業としてBlogClickというブログに特化したコンテンツマッチ型の広告配信サービスがリリース / その後サービス名をMicroAdに変更し、ブログ特化ではなく幅広いメディアへ"
  • 困らない程度のJDK入門

    14. TieredCompilation JDK6 まで インタプリタ実行時にプロファイリングをして、選択したコ ンパイラで最適化する どっちのコンパイラが良いか考える余地がある JDK7 から インタプリタ、C1、C2 を動的に使い分けられるようになった C1でもプロファイリングできるようになった 4階層の最適化レベルをいったりきたりする →更に考えることが減った コンパイルのしきい値とかもうかつにいじらないほうが良か ったり… 14 15. JDKのオプションに関する余談 ON/OFF にするような設定の場合、以下のような書式になってい ます。 有効にするとき ‐XX:+<フラグ名> 無効にするとき ‐XX:‐<フラグ名> また、バージョンや環境によってオプションのデフォルト設定が 変わることがあるので、その環境で何が設定されているかを確認 したい時があります。 ‐XX:+Print

    困らない程度のJDK入門
    sh19910711
    sh19910711 2022/03/25
    2017 / "オブジェクトが増えるとヤングGCは遅くなる / パラレルGCは停止時間が長くなるが効率は良い / CMSは並行性が高いが断片化するしチューニングが難しい / G1は並行性ではなくソフトリアルタイム性を重視"
  • IT業界の00年代を振り返る - プログラマーの脳みそ

    00年代のIT業界というと、2000年問題に始まった。西暦を数字2桁で管理していたがために桁あふれするだなんて、今になって思えばなんとメモリをケチッていた時代だろうと思うところだが、当時のマシンスペックを思えば仕方無くもある。 2000年初頭のマシンスペック 2000年2月17日に発売されたWindows2000の要求スペックは、Pentium 133MHz以上、メモリ 32MB以上、ハードディスク 850 MB以上の空き容量であった。 1996年にリリースされたJavaは2000年5月8日をもってJ2SE 1.3がリリースされ、かなりこなれてきていたし、Java VMのパフォーマンスもほどほどだった。当時の19200kbpsほどのモデムではJavaAppletのダウンロードには時間がかかったし、当時のJREの起動の遅さもあってJavaといえば遅い、というステレオタイプが根づいていたが、ビ

    IT業界の00年代を振り返る - プログラマーの脳みそ
    sh19910711
    sh19910711 2022/01/09
    2010 / "00年代前半から次第に低レベルのWebアプリ開発から、フレームワークを用いた開発へと移行が進んでゆく。Apache Struts は 2001年 6月のリリース。MVCモデルでのWebアプリ開発が盛んに叫ばれたのは00年代前半"
  • あなたとジャバハウス

    「ジャバハウス」とは何か…? その歴史の闇に埋もれた真実を探し求めて、オカモト特派員はツイッターランドへと足を踏み入れた。

    あなたとジャバハウス