Red Hatは2020年1月13日(米国時間)、IBMと共同で米国連邦最高裁判所(連邦最高裁)に法廷助言書を提出したと発表した。OracleがGoogleに対して起こした訴訟で連邦巡回区控訴裁判所が下した決定を覆すよう連邦最高裁に求めている。 一連の裁判は10年前の2010年8月に始まった。このときOracleがJavaの特許権と著作権を侵害しているとしてGoogleを提訴している。その後2012年に連邦地裁の判決、2014年に控訴審の判決、2016年に連邦地裁の評決、2018年に控訴審の判決が出ている。2018年の判決ではGoogleがJavaのAPIなどの著作権を侵害していると認めている。 Red Hatは、連邦巡回区控訴裁は著作権保護をソフトウェアインタフェースに誤って拡張したとしている。「これが訂正されないと、連邦巡回区控訴裁の決定がソフトウェアの互換性や相互運用性を損ない、オー
インテリジェントなJava IDE IntelliJ IDEAはJava、Scala、Kotlin用のインテリジェントなIDEです。直感的にコーディング、デバッグ、リファクタリング、テストが可能です。高度な解析エンジンが支援してくれるため、IntelliJ IDEAはあたかももう一人のエキスパートがエディタに潜んでいるかのようです。例えばバグが潜んでいそうなコードを指摘してくれたり、よりパフォーマンスの高くなるコードを提案してくれたりします。JiraやRedmine、YouTrackといったプロジェクト管理ツール、並びにGitHubやBitbucketのようなリポジトリなど様々な外部ツールと連携出来ます。Eclipseを含む他のIDE、エディタと共存することもできます。 プラグインで多言語対応 プラグインをインストールすることでRuby、PHP、Python、Goも扱えます。UIが煩雑にな
golangでテストのためだけにinterfaceを書くのが死ぬほど嫌だったので編み出した技を紹介します。 TL;DR テスト(=mock)のためだけにinterfaceは切りたくない 型エイリアスとビルドタグを組み合わせるとinterfaceがなくてもモックが作れる この手法に必要なモックを自動生成するプログラムを作った interfaceは本当に必要なシーンで使うべき Background 現在モックを使った単体テストは一般的です。 Javaでの例を挙げると、モックしたいコンポーネントについて予めinterfaceを定義しておき、モックではそのインターフェースを実装するのが定石です。 しかしgolangのinterfaceはJavaなどのそれとは若干性質が異なるため、テスト=モックのためだけにinterfaceを書くのはオーバーワーク気味です。 そうテストのためだけにinterface
#翻訳 https://www.scalyr.com/blog/the-10-commandments-of-logging/ CC BY 4.0 @Brice Figureau 1.自分でログの書き出しをしない printfをつかったり、ログエントリを自分でファイルに書き出したり、ログローテションを自分でやったりしてはいけない。運用担当者にお願いして、標準ライブラリやシステムAPIコールを使うようにしよう。そうすれば、実行中のアプリケーションが他のシステムコンポーネントと適切に連携して、特別なシステム設定なしに適切な場所またはネットワークサービスにログを記録できるようになる。 ロギングライブラリを使いたければ、特にJavaの世界にはLog4j, JCL, slf4j, logbackなど多くのものが存在する。私はslf4jとlogbackを組み合わせて使うのが好きだ。とてもパワフルで、設
toyokeizai.net satoru-takeuchi.hatenablog.com 全然レイヤーが違うが、自分が何に悩んで、どういう風に理解したか、思い出しながら書き出してみる。 プログラミング歴 20歳からなので、現時点で10年ぐらいだが、中学生の時ちょっと触ったことがあった。 14 歳: 病気で入院したときに暇すぎて、2 週間ほど VBA を触った 大学 1 年: 大学の選択科目で Java, 夏休みに Python と Ubuntu の独習 大学 3 年: Python で自然言語処理のバイト 大学 4 年: Android アプリを作るバイト、就活ポートフォリオとして node/Websocket で MMO 一社目: Unity, ActionScript, Haskell, JavaScript 以降~: JavaScript/CoffeeScript/TypeScri
Mirrativ Androidエンジニアのmorizoooです。 Mirrativのエンジニアは週4日をプロダクト開発に、週1日を開発体験の向上に時間を割いおり、CTOによる旗振りのもと、エンジニア主導で技術的負債の返済に取り組んでます。 今回は、Androidチームで取り組んだ技術的負債の返済のために行った取り組みについて紹介します。 背景 以前、2019/04に 突撃!!隣のアーキテクチャ - connpass でもお話したのですが、Androidアプリが主に以下の理由でつらい状態なっておりました。 ロジックが散在 今ではあまり使われないライブラリへの依存 JavaとKotlinの共存 speakerdeck.com これに対してAndroidチームで以下の取組みを行いました。 ActivityとCustomViewの再設計 ライブラリの最新化 Kotlin化の推進 それぞれのトピッ
先日Linusが盛大にZFSを非難したことがインターネット・カーネル界隈の噂を駆け巡った。これをタイトルだけみたり本文をちょっと読んだら「ああ、LinusはZFSが嫌いなんだ」とか「LinuxでZFSを使うべきではない」といった理解をする人が非常に多いだろうと思う。Linusは当然Linuxユーザーにとって大きな影響力を持つ人物であり、多くのLinuxユーザーがこの理解のままでいることになりかねない。公私ともにZFSに頼りっきりになっている私は特にそういう状況は非常に困るし、Canonicalは19.10からUbuntu LinuxでのZFS rootを標準にしようとしているくらいだからもっと困るだろう。複雑な状況になっていると思うので、このニュースの深層を探ってみよう。 まず元スレ 元になったLinusのレスによると、そもそも最近カーネルにドライバのインターフェース変更があってZFSがこ
一般的な取得方法 private static final Logger logger = LoggerFactory.getLogger(TestSub1.class); この場合、クラスファイル毎に記述が異なり、コピーする場合注意する必要がある。 package test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestSample1 { private static final Logger logger = LoggerFactory.getLogger(TestSub1.class); public void exec() { logger.debug("Exec method was executed."); } } thisを使って取得 private final Logge
private static String escapeJsonString(CharSequence cs) { final byte BACKSLASH = 0x5C; final byte[] BS = new byte[]{BACKSLASH, 0x62}; /* \\b */ final byte[] HT = new byte[]{BACKSLASH, 0x74}; /* \\t */ final byte[] LF = new byte[]{BACKSLASH, 0x6E}; /* \\n */ final byte[] FF = new byte[]{BACKSLASH, 0x66}; /* \\f */ final byte[] CR = new byte[]{BACKSLASH, 0x72}; /* \\r */ try ( ByteArrayOutputStream
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事の目的 「Javaの環境構築」で絶対にハマったり、錯綜する情報にいつも惑わされる人に向けた記事です。 2017年以降のJavaは、移り変わりが激しい世界になりました。このことを認識し、「軸となる考え方」や「重要な動向」を把握できるように、調べた情報をまとめました。 **「5年ぶりに(Java|JVM言語)触るんだけど環境周りが全然わからん」とか、「CorrettoとかAdoptOpenJDKとか、みんな何を言っているんだ」**という人(つまりちょっと前の筆者)が、「今後に渡って2度とハマらないための基礎知識を得られること」を目的
経緯 shiracamus様からのアドバイスを元に、DDD(ドメイン駆動)的に書き直しました。 その際、ロジックの見直しも一部行い、よりシンプルになるように致しました。 処理フロー ・インスタンス生成 ・商品リスト初期化(在庫補充) ・商品一覧表示(陳列商品の表示) ・商品選択(ユーザによる入力) ・入金(ユーザによる入力) ・販売(課金処理) ・おつり(返金処理) 動作イメージ ソースコード package vm; import java.util.Scanner; public class Main { public static void main(String[] args) { // インスタンス生成 Store venderMachine = new Store(); @SuppressWarnings("resource") Scanner scanner = new Sca
遠い夜明け [DVD] 出版社/メーカー: ジェネオン・ユニバーサル発売日: 2012/05/09メディア: DVD 若い人はしらないだろうが,昔こんな映画がありました. 1970年代のアパルトヘイト下の南アフリカ共和国における実話に基づいた作品で、撮影は隣国のジンバブエで行われた。 ビコの次は、ビコと懇意だったウッズの番だった。警察は十分な証拠も無いままウッズを危険人物と認定、自宅に軟禁して生前のビコと同じように自由な行動を制限した。このまま南アフリカ共和国にいたのでは、アパルトヘイト問題を放置することになると考えたウッズは警察からの監視下でビコの死とアパルトヘイトの現状を本に書き、家族と共に密かに亡命についての計画を練った。ウッズに提案された方法は、まず最初に神父に変装し、最も近い隣国のレソト王国まで逃げ込み、そしてそこから飛行機でボツワナまで亡命する計画だった。 https://ja
tl;dr GoogleはDataflowのテンプレートを提供しているよ コードはGitHubで見られるよ いくつかのテンプレートはJavaScriptで変換の処理を書けるよ JavaScriptの処理はNashornを使っているよ Google提供のDataflowテンプレートとは 名前の通り、Googleが提供していてるDataflowのテンプレートです。 これを使うことで、コードを(あまり)書かずに一定の処理が行えます。 提供されているテンプレートは、GCPのストレージ(GCS・Pub/Sub・Datastore・BigQuery・Spanner)間の移動を行うものが多く、例えば、 Pub/SubからBigQuery(ストリーミング) GCSからBigQuery(バッチ・ストリーミング両方) などがあります。 ちなみに、GCPのストレージ間移動以外のテンプレートとしては、Datast
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く