並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 115件

新着順 人気順

java interface static classの検索結果1 - 40 件 / 115件

  • テキストエディタで使われがちなデータ構造 Piece Table の概要と実装 - A Memorandum

    テキストエディタのデータ構造 Gap method Piece Table method Piece Table の構造 Piece Table の実装 Piece Table のメソッド まとめ テキストエディタのデータ構造 テキストエディタで採用されているデータ構造にはいろいろあります。 こちらの論文 Data Structures for Text Sequences では各種データ構造について比較検討されています。 多くは、Gap method や Piece table method をベースにしたものが多いのではないでしょうか(図で言う最下部の中心の丸印に当たります)。最近では Rope なども有名ですね。 Gap method Gap method では、現在のカーソル位置で、テキストバッファを2つに分割し Gap を間に挟み、カーソル位置に対する編集(テキスト追加/削除)を

      テキストエディタで使われがちなデータ構造 Piece Table の概要と実装 - A Memorandum
    • 【C#】何故 C# を好むのか。~他の言語と比較しながら~ - ねののお庭。

      世の中には多くの C# に関する誤解が蔓延っています。 偏見にも満ちています。 そして技術的に正しい批判ではなく、根本的に技術的に誤った批判ばかりで正直悲しい。 技術的に正しい形の批判なら「お、そうだな。そしてそれの解決策はですねぇ...(ニヤニヤ)」となるのですが...。 そして C# 界隈から一歩出ると、「え、C# で作ってるの!?なんで??」とか言われる事が非常に多い始末。 C# 大好きマンとしては非常に嘆かわしい。 嘆かわしい限りなので、ここでなぜ C# を私が好むか、そして何故ソフトウェアの開発に向いているかを語りたいと思います。そして誤解が解けたら嬉しい。ついでに C# を書きたいと思ってくれたら嬉しい。 想定読者 前書きという名の予防線 事前知識: C# と .NET C# はパフォーマンスの高い言語 C# はビルドも高速 C# はオープンソースかつクロスプラットフォーム 言

        【C#】何故 C# を好むのか。~他の言語と比較しながら~ - ねののお庭。
      • プログラミング言語オタクとして改めてC#を語りたい

        皆さんはC#、使っていますか? 世界的には人気の言語であるC#ですが、残念ながら日本ではあまり流行っていないというのが現状です。というわけで色々なプログラミング言語をかじっている身としては、ちゃんとC#の良さを知ってもらいたい!ということで改めて筆を取った次第です。 C#だけでなくGoやRust、Swiftなどの様々な言語の話を盛り込んでいるので、普段からC#を使っているという方もそうでない方も、是非一度この記事に目を通してもらえると嬉しいです。 この記事を書いたきっかけ 私がこの記事を書き始めたのは、何縫ねの。さんによる下の記事がきっかけだったりします。 内容に関してはC#に関わるあらゆる良さが語られていて非常に良い記事なので、是非とも一読することをお勧めします。特に事前知識: C# と .NETあたりの項目はこの記事では前提知識として説明を省略しているため、.NETが何かをよく知らない

          プログラミング言語オタクとして改めてC#を語りたい
        • AWS 認定 ソリューションアーキテクト – プロフェッショナル(AWS Certified Solutions Architect – Professional)の学習方法 - NRIネットコムBlog

          小西秀和です。 この記事は「AWS認定全冠を維持し続ける理由と全取得までの学習方法・資格の難易度まとめ」で説明した学習方法を「AWS 認定 ソリューションアーキテクト – プロフェッショナル(AWS Certified Solutions Architect – Professional)」に特化した形で紹介するものです。 重複する内容については省略していますので、併せて元記事も御覧ください。 また、現在投稿済の各AWS認定に特化した記事へのリンクを以下に掲載しましたので興味のあるAWS認定があれば読んでみてください。 ALL SAP DOP SCS ANS MLS SAA DVA SOA DEA MLA AIF CLF 「AWS 認定 ソリューションアーキテクト – プロフェッショナル」とは 「AWS 認定 ソリューションアーキテクト – プロフェッショナル(AWS Certified

            AWS 認定 ソリューションアーキテクト – プロフェッショナル(AWS Certified Solutions Architect – Professional)の学習方法 - NRIネットコムBlog
          • 【2020年】CTF Web問題の攻撃手法まとめ - こんとろーるしーこんとろーるぶい

            はじめに 対象イベント 読み方、使い方 Remote Code Execution(RCE) 親ディレクトリ指定によるopen_basedirのバイパス PHP-FPMのTCPソケット接続によるopen_basedirとdisable_functionsのバイパス JavaのRuntime.execでシェルを実行 Cross-Site Scripting(XSS) nginx環境でHTTPステータスコードが操作できる場合にCSPヘッダーを無効化 GoogleのClosureLibraryサニタイザーのXSS脆弱性 WebのProxy機能を介したService Workerの登録 括弧を使わないXSS /記号を使用せずに遷移先URLを指定 SOME(Same Origin Method Execution)を利用してdocument.writeを順次実行 SQL Injection MySQ

              【2020年】CTF Web問題の攻撃手法まとめ - こんとろーるしーこんとろーるぶい
            • Javaエンジニアだった私が当時困ったRustのコンセプト - paild tech blog

              お手伝いの @helloyuki_ です。今回はポエムです。 今回は、Rust を始めた当時、プログラミング言語は Java しかまともに触ったことがない新米若手 Java エンジニアだった私[*1]が「見たことがなく、使いどころがわからなく理解が難しい」と感じたポイントについて紹介します。対象とするソフトウェアのレイヤーが低いか高いかを問わず、とにかく Rust をやってみて理解するまでに時間がかかり、難しいと感じたポイントについて紹介します。 Rust の「メモリ安全」って、結局何 所有権とライフタイム 参照 スマートポインタ 代数的データ型 関数が第一級である モジュールシステム self 型クラスという側面でのトレイト まとめ 私が Rust をある程度使いこなせるようになるまでの話 「難しい」って何?、の話 Rust の「メモリ安全」って、結局何 そもそも論ですが、Rust が取

                Javaエンジニアだった私が当時困ったRustのコンセプト - paild tech blog
              • 【ソフトウェア設計】モジュールをどう分割するのか?

                はじめに 前々回や、前回に引き続き、ソフトウェア設計の指針に関する話をしたいと思います。 関数やクラス、そしてサービスなどシステムの塊の単位をモジュールと呼び、モジュールを作る事で、認知負荷を下げ複雑性と戦うという話をしてきました。では、モジュールは「いつ」分割するのが良いでしょうか? また、他にも共通モジュールを不用意に作ってしまって苦労した人も多いのでは無いでしょうか? 今回はそのあたりの話をしていきます。 TL;DR 以下があればモジュール設計を見直す 単純な要件/普段の利用に対して、タイプ量や約束事が多い 共通モジュールが「使われ方」に依存する モジュールの役割を一言で説明できない コード管理や性能/データ整合性など利用に際してのペナルティが高い 分割 is NOT 正義 - FizzBuzz Enterprise Edition 複雑性を排除するためにモジュール分割をすることは重

                  【ソフトウェア設計】モジュールをどう分割するのか?
                • AI時代にORMなんて必要なんですかね?

                  新規で構築するシステムの設計を考えていて、 「今の時代にORMなんているんか???」 という思いに至ったので、これを書いてます。 ORMなしでAIにDBアクセスコードを生成する AIでコードを生成する前提として、 AIは生SQLを書くのが得意 オブジェクトマッピングみたいなボイラープレートをAIに生成させるコストは極小(人間が手で書くとめちゃくちゃ時間がかかる) という点が挙げられます。 そのため、AIを使う前提であれば、ORMなしで以下の作業を行っても、必要なコスト(特に時間)は極小です。 ドメイン要件を伝えてSQLを生成させる オブジェクトマッピング処理(いわゆるDAO)を生成させる 単体テストコードを生成させる というか、ドメインロジックを書いていく過程で上記のようなDBアクセスコードを、都度必要となった分だけ生成させていくのであれば、この部分の生成に時間がかかってると認識することは

                    AI時代にORMなんて必要なんですかね?
                  • 他言語経験者が知っておきたいTypeScriptのクラスの注意点 - KAKEHASHI Tech Blog

                    はじめに こんにちは、岩佐 幸翠(@kosui_me)です。カケハシで認証基盤・ライセンス基盤・組織階層基盤などのプラットフォームシステムを開発・運用する認証権限基盤チームのテックリードをしています。 TypeScriptのクラス構文は、一見するとJavaやC#などの言語と非常に似ていますが、その背景にあるJavaScriptの特性により、振る舞いに重要な違いが存在します。これらの違いを理解することは、これまでの経験を活かしつつ、TypeScriptで堅牢なアプリケーションを構築する上で非常に重要です。 本記事では、主にJavaやC#など、クラスベースの静的型付け言語に慣れ親しんだエンジニアの方々を対象に、TypeScriptでクラスを扱う際に特に留意すべきポイントを解説します。さらに、クラスを用いない関数型のアプローチについても触れ、TypeScriptにおけるドメインモデリングの多様な

                      他言語経験者が知っておきたいTypeScriptのクラスの注意点 - KAKEHASHI Tech Blog
                    • Go: A Documentary

                      The historical release notes may helpful for general information: doc/go1release Go Release History doc/go1prerelease Pre-Go 1 Release History doc/go0release Weekly Release History (Before Go 1) Language Design General design/go0initial Rob Pike, Robert Griesemer, Ken Thompson. The Go Annotated Specification. Mar 3, 2008. design/go0spec0 The Go Programming Language. Language Specification. Mar 7,

                      • JDK 21 の開発者向けの新機能(OpenJDK 21、Java 21) - 赤帽エンジニアブログ

                        Red Hat のソリューションアーキテクトの瀬戸です。 この記事はRed Hat Developerのブログ記事、What's new for developers in JDK 21 | Red Hat Developer を、許可をうけて翻訳したものです。 Java開発者にとってエキサイティングな情報として、今年 9 月 19 日に JDK 21 がリリースされました。 このリリースには、仮想スレッド(Virtual Thread)、レコードパターン(Record Patterns)、順序付コレクション(Sequenced Collections)など、Javaのエコシステムに利益をもたらす多くの新機能が含まれています。JDK 21 のプレビューには、文字列テンプレート(String Templates)、スコープ付値(Scoped Values)、構造化並列処理(Structure

                          JDK 21 の開発者向けの新機能(OpenJDK 21、Java 21) - 赤帽エンジニアブログ
                        • プログラミング言語 Ruby30 周年記念イベント レポート

                          プログラミング言語 Ruby30 周年記念イベント 2023 年 2 月 25 日、Ruby 誕生 30 年を記念したイベントが開催されました。 2020 年から流行した新型コロナウィルス感染症の影響で、一時期のイベントはすべてオンラインでの開催が主流となっていました。 本イベントも当初はオンライン形式で予定されていましたが、当日は松江オープンソースラボをメイン会場としてオフラインとオンラインのハイブリッドで開催されました。 開催日 2023-02-25 (土) 13:40 - 17:30 開催場所 松江オープンソースラボ / YouTube 配信 主催 一般財団法人 Ruby アソシエーション / 一般社団法人 日本 Ruby の会 公式ページ プログラミング言語 Ruby30 周年記念イベント 進行 :前田修吾 公式ハッシュタグ #ruby30th 動画 アーカイブ動画 オープニング

                          • MCPサーバーとMCPクライアントを作る | gihyo.jp

                            AIの活用では、MCPという言葉が注目を浴びています。連載の最後に、JavaでMCPサーバー/クライアントを実装してみて、MCPへの理解を深めます。 なお、この記事で取り扱ったコードはこちらからダウンロードできます。 MCPとは MCP(Model Context Protocol)は、Function Calling(Tool Use)をJSON-RCPに基づいてリモートで呼び出す仕組みです。 Function Callingの場合は機能の実装をチャットプログラムと一緒に行う必要がありました。MCPではチャットプログラムと機能の実装を分離できるため、チャットプログラムにあとから機能を追加できるようになります。つまり、LM StudioやChatGPTのチャットアプリケーションに様々な機能を登録して利用できるわけです。また、さまざまなアプリケーションやサービスがMCPの規格に対応したため、

                              MCPサーバーとMCPクライアントを作る | gihyo.jp
                            • Rustのトレイトは「高カインド多相のない型クラス」である - なんか考えてることとか

                              Rustのトレイト(以降Rustトレイトとつなげて呼ぶことにする)は一体何なのか、様々な他言語の概念を通して調べていたが、やっと(「やはり」でもあるのだが)結論が出たので書いていこうと思う。 また、Rustトレイトはインターフェースなのか、MixInなのか、はたまたトレイトなのかということについて書き直したかったのでそれもついでに書く。 Rustのトレイトにおける否定 前置き Rustのトレイトはインターフェースではない RustのトレイトはJavaのインターフェースではない RustのトレイトはC#のインターフェースではない RustのトレイトはMixInではない Rustのトレイトはトレイトではない Rustのトレイトは「高カインド多相のない型クラス」だった 根拠1: 型クラスと用法が同じである 根拠2: 重複する関数があった際の挙動も同じ Rustのトレイトでは高カインド多相ができな

                                Rustのトレイトは「高カインド多相のない型クラス」である - なんか考えてることとか
                              • GoFの次に覚えたいデザインパターン ~Specificationパターン~ - RAKUS Developers Blog | ラクス エンジニアブログ

                                ビジネスアプリケーションとビジネスルール 用語について パターン適用前 Specification パターン Hard Coded Specification Parameterized Specification Composite Specification 条件の再利用性が向上する テスト性が向上する ルールと条件を統一したインターフェースで扱える 動的にルールを構成できる まとめ 関連するデザインパターン Strategy パターン Composite パターン Interpreter パターン 参考文献 補足 ビジネスアプリケーションとビジネスルール 楽楽精算開発部の id:smdr3s です。主に Java を使ったサーバーサイドを担当しています。 弊社のサービスである楽楽精算は、その名のとおり経費精算のサービスです。主に企業にお勤めの方が、業務での移動時ににかかった交通費や業

                                  GoFの次に覚えたいデザインパターン ~Specificationパターン~ - RAKUS Developers Blog | ラクス エンジニアブログ
                                • GitHub - modelcontextprotocol/servers: Model Context Protocol Servers

                                  Official integrations are maintained by companies building production ready MCP servers for their platforms. 21st.dev Magic - Create crafted UI components inspired by the best 21st.dev design engineers. 2slides - An MCP server that provides tools to convert content into slides/PPT/presentation or generate slides/PPT/presentation with user intention. ActionKit by Paragon - Connect to 130+ SaaS inte

                                    GitHub - modelcontextprotocol/servers: Model Context Protocol Servers
                                  • neue cc - Claudia - Anthropic ClaudeのC# SDKと現代的なC#によるウェブAPIクライアントの作り方

                                    AI関連、競合は現れども、性能的にやはりOpenAI一強なのかなぁというところに現れたAnthropic Claude 3は、確かに明らかに性能がいい、GPT-4を凌駕している……!というわけで大いに気に入った(ついでに最近のOpenAIのムーブが気に入らない)ので、C#で使い倒していきたい!そこで、まずはSDKがないので非公式SDKを作りました。こないだまでプレビュー版を流していたのですが、今回v1.0.0として出します。ライブラリ名は、Claudeだから、Claudiaです!.NET全般で使えるのと、Unity(Runtime/Editor双方)でも動作確認をしているので、アイディア次第で色々活用できると思います。 GitHub - Cysharp/Claudia 今回のSDKを作るにあたっての設計指針の一番目は、公式のPython SDKやTypeScript SDKと限りなく似せる

                                    • OOP: the worst thing that happened to programming

                                      > BTC: bc1qs0sq7agz5j30qnqz9m60xj4tt8th6aazgw7kxr ETH: 0x1D834755b5e889703930AC9b784CB625B3cd833E USDT(Tron): TPrCq8LxGykQ4as3o1oB8V7x1w2YPU2o5n Ton: UQAtBuFWI3H_LpHfEToil4iYemtfmyzlaJpahM3tFSoxomYQ Doge: D7GMQdKhKC9ymbT9PtcetSFTQjyPRRfkwTdismiss OOP: the worst thing that happened to programming [2/24/2025] In this article, we will try to understand why OOP is the worst thing that happened to prog

                                        OOP: the worst thing that happened to programming
                                      • Rust の DI を考える — Part 1: DI とは何だったか - paild tech blog

                                        paild 社でお手伝いをしている yuki です。みなさんは Rust で DI をしようと思った際に困ったことはありませんか?この連載では、他のプログラミング言語で利用される DI パターンを参照しながら、Rust でそれを実装するためにはどのような工夫が必要かまでを検討します。中には Rust での実装が難しいパターンも出てくるかもしれません。その際は、なぜ難しいのかまでを検証します。 そこそこの規模のソフトウェアを実装するにあたって、ソフトウェアエンジニアが共通して利用する手法がいくつかあると思います。その中でも DI (Dependency Injection; 依存オブジェクト注入) は最もポピュラーな手法の一つであり、保守運用まできちんと耐えうるソフトウェアの設計をしたいとなったときに、まず真っ先に候補に上がる手法でしょう。 Rust ではこの DI をどのように行えばよいの

                                          Rust の DI を考える — Part 1: DI とは何だったか - paild tech blog
                                        • PythonでもできるJavaベースの設計原則:「良いコード/悪いコードで学ぶ設計入門」をPydanticで実装する - Insight Edge Tech Blog

                                          はじめに こんにちは。Insight Edgeでデータサイエンティストをしている善之です。 「Pythonで堅牢なコードを書きたいけど、どう設計すればいいんだろう…」 「バリデーション漏れや予期せぬバグに悩まされている…」 「Javaの設計原則は聞いたことあるけど、Pythonでも同じことができるの?」 こんな疑問や課題を持ったことはありませんか? 先日、名著「良いコード/悪いコードで学ぶ設計入門」を読んで、その設計原則に感銘を受けました。 しかし、この書籍はサンプルコードがJavaで書かれており、Pythonでどう実装すればいいか悩みました。 そこで実際のプロジェクトで、これらの原則をPydanticを使ってPythonで実装する工夫を行ったところ、非常に効果的だったため、そのノウハウをご紹介します。 本記事は、Pythonでより堅牢なコード設計を学びたいエンジニアや、Javaの設計原則

                                            PythonでもできるJavaベースの設計原則:「良いコード/悪いコードで学ぶ設計入門」をPydanticで実装する - Insight Edge Tech Blog
                                          • ZOZOマッチアプリのアーキテクチャと技術構成 - ZOZO TECH BLOG

                                            はじめに こんにちは、ZOZOの堀江(@Horie1024)です。2025年6月、新規事業として「ZOZOマッチ」をリリースしました。ZOZOマッチは、ZOZOとして初めてFlutterを採用したモバイルアプリです。これまでiOS/Androidそれぞれでの開発体制をとってきた中でFlutterでのクロスプラットフォーム開発に舵を切るのは、ZOZOにとって新しい挑戦でした。 本記事は、社外登壇イベント「ナレッジナイト」で使用した資料1をベースに、一部内容を加筆・整理してまとめたものです。私たちがFlutterを選定した背景と、実際のアーキテクチャ・技術構成について紹介します。ZOZOにおける新しい挑戦の記録であると同時に、これからFlutterを導入しようとするチームの参考になれば幸いです。 目次 はじめに 目次 ZOZOマッチとは Flutter採用の背景 ビジネス的背景 チーム的背景

                                              ZOZOマッチアプリのアーキテクチャと技術構成 - ZOZO TECH BLOG
                                            • How modern browsers work

                                              Note: For those eager to dive deep into how browsers work, an excellent resource is Browser Engineering by Pavel Panchekha and Chris Harrelson (available at browser.engineering). Please do check it out. This article is an overview of how browsers work. Web developers often treat the browser as a black box that magically transforms HTML, CSS, and JavaScript into interactive web applications. In tru

                                                How modern browsers work
                                              • LogLog Games

                                                The article is also available in Chinese. Disclaimer: This post is a very long collection of thoughts and problems I've had over the years, and also addresses some of the arguments I've been repeatedly told. This post expresses my opinion the has been formed over using Rust for gamedev for many thousands of hours over many years, and multiple finished games. This isn't meant to brag or indicate su

                                                • Claude Mythos Preview \ red.anthropic.com

                                                  Assessing Claude Mythos Preview’s cybersecurity capabilities April 7, 2026 Nicholas Carlini, Newton Cheng, Keane Lucas, Michael Moore, Milad Nasr, Vinay Prabhushankar, Winnie Xiao Hakeem Angulu, Evyatar Ben Asher, Jackie Bow, Keir Bradwell, Ben Buchanan, David Forsythe, Daniel Freeman, Alex Gaynor, Xinyang Ge, Logan Graham, Kyla Guru, Hasnain Lakhani, Matt McNiece, Mojtaba Mehrara, Renee Nichol, A

                                                  • JDK 21のswitch式でpattern match書いたら10倍以上遅い件 - xuwei-k's blog

                                                    switch式の結果javapしたらhttps://t.co/xMc0YEYsrg java.lang.runtime.SwitchBootstraps と tableswitch が使われることに気がついたが、これ巨大なswitch式をJDK 21以降で書いた場合、同等の巨大なmatch式をScalaで書くよりも速度が速い可能性があるのでは??? これScalaで活用できるか?というと— Kenji Yoshida (@xuwei_k) September 25, 2023 switch式の結果javapしたら https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/runtime/SwitchBootstraps.html java.lang.runtime.SwitchBootstraps と ta

                                                      JDK 21のswitch式でpattern match書いたら10倍以上遅い件 - xuwei-k's blog
                                                    • Understanding inheritance and other limitations in Rust - LogRocket Blog

                                                      Editor’s note: This Rust guide was updated on 3 Aug, 2022 to include information about doubly linked lists and borrowing things that aren’t static in async code. As a moderator of the Rust subreddit, I regularly happen upon posts about developers’ attempts to transpose their respective language paradigms to Rust, with mixed results and varying degrees of success. In this guide, I’ll describe some

                                                        Understanding inheritance and other limitations in Rust - LogRocket Blog
                                                      • クラスが増えても大丈夫!成長するソフトウェアを支えるリファクタリングの技術 - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」

                                                        開発部門(基盤本部)でエンジニアの育成を担当している高玉です。 基盤本部ではさまざまな勉強会を開催しています。先日も、BIGLOBE Styleでその様子をご紹介しました。 style.biglobe.co.jp 「クラスを増やすの、怖くないですか?」 オブジェクト指向プログラミング(OOP)を学んでいた時に聞かれたことです。業務ではJavaやドメイン駆動設計を活用しているので、クラスベースのOOPが題材になることが多いのです。OOPに慣れていない人からすると、クラスの数が増えることで全体を把握しづらくなったり、適切なクラスを見つけるのが大変になりそう、と感じるそうです。 「大丈夫!クラスを増やしたほうが楽になることがあるよ!」 と伝えたくて、この記事を書かせていただきました。何が楽になるのでしょう?それは、ソースコードを読むこと、です。「クラスを増やすと、ソースコードを読むのが楽になる?

                                                          クラスが増えても大丈夫!成長するソフトウェアを支えるリファクタリングの技術 - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」
                                                        • 7つのリニューアル!『改訂新版 良いコード/悪いコードで学ぶ設計入門』 : 新刊ピックアップ | 技術評論社

                                                          こんにちは、リファクタリング大好きなミノ駆動です。『⁠良いコード/悪いコードで学ぶ設計入門』の著者です。このたび2024年12月25日に、本書の改訂新版を出版します。 改訂新版 良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方 本書は、より成長させやすいコードの書き方と設計を学ぶ入門書です。筆者の経験をふまえ構成や解説内容を見直し、より実践的な一冊になりました。 システ... なるべくバグを発生させず、すばやく正確にコードを変更できる度合いを変更容易性といいます。変更容易性が低いコードは、バグを埋め込みやすく、正確にコードを変更できるまでに時間がかかってしまいます。 変更容易性の設計ノウハウに関する技術書は数多くありますが、レベルが高いものが多いです。そのため、初学者にとって手を出しにくく、どう学べばいいのかわからないといったハードルがあります。 そうした課

                                                            7つのリニューアル!『改訂新版 良いコード/悪いコードで学ぶ設計入門』 : 新刊ピックアップ | 技術評論社
                                                          • Announcing TypeScript 5.2 - TypeScript

                                                            Today we’re excited to announce the release of TypeScript 5.2! If you’re not familiar with TypeScript, it’s a language that builds on top of JavaScript by making it possible to declare and describe types. Writing types in our code allows us to explain intent and have other tools check our code to catch mistakes like typos, issues with null and undefined, and more. Types also power TypeScript’s edi

                                                              Announcing TypeScript 5.2 - TypeScript
                                                            • June 2022 (version 1.69)

                                                              Update 1.69.1: The update addresses these issues. Update 1.69.2: The update addresses these issues. Downloads: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap Welcome to the June 2022 release of Visual Studio Code. There are many updates in this version that we hope you'll like, some of the key highlights include: 3-way merge editor - Resolve merge conflicts wit

                                                                June 2022 (version 1.69)
                                                              • 代数的データ型をJavaで安全に使いこなす - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」

                                                                基盤本部(開発部門)の木下です。前回、Java 17 の新機能を使ってドメイン駆動設計(Domain Driven Design: DDD)のモデリングの表現力を高める例をご紹介しました。 style.biglobe.co.jp 代数的データ型(Algebraic Data Types)を導入するのがポイントなのですが、馴染みのないメンバーも多かったので、実例を使って詳しく解説してみました。関数型プログラミング由来のとても便利な道具です。ぜひ活用してみてください。 代数的データ型とは 直積型 直和型 直和型の Java での実装 ベタに class で表現してみる 2つのクラスと interface で実現 安全に利用できるメソッドを提供する おわりに 代数的データ型とは 代数的データ型とは、基本となる型を組み合わせて作られる型のことです。 代数的データ型は直和型と直積型の2つからなります

                                                                  代数的データ型をJavaで安全に使いこなす - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」
                                                                • Golang Mini Reference 2022: A Quick Guide to the Modern Go Programming Language (REVIEW COPY)

                                                                  Golang Mini Reference 2022 A Quick Guide to the Modern Go Programming Language (REVIEW COPY) Harry Yoon Version 0.9.0, 2022-08-24 REVIEW COPY This is review copy, not to be shared or distributed to others. Please forward any feedback or comments to the author. • feedback@codingbookspress.com The book is tentatively scheduled to be published on September 14th, 2022. We hope that when the release da

                                                                  • Announcing TypeScript 5.2 RC - TypeScript

                                                                    Today we’re excited to announce our Release Candidate of TypeScript 5.2! Between now and the stable release of TypeScript 5.2, we expect no further changes apart from critical bug fixes. To get started using the RC, you can get it through NuGet, or through npm with the following command: npm install -D typescript@rc Here’s a quick list of what’s new in TypeScript 5.2! using Declarations and Explic

                                                                      Announcing TypeScript 5.2 RC - TypeScript
                                                                    • GoFの次に覚えたいデザインパターン ~Null Objectパターン~ - RAKUS Developers Blog | ラクス エンジニアブログ

                                                                      楽楽精算開発部の id:smdr9p です。主に Java を使ったサーバーサイドを担当しています。 前置き GoF のデザインパターンはご存知でしょうか。 ご存知の方も多いかと思いますが簡単に説明すると、GoF のデザインパターンとは Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides の4人、通称 Gang of Four、略称 GoF によって書かれた書籍、Design Patterns: Elements of Reusable Object-Oriented Software(邦題:オブジェクト指向における再利用のためのデザインパターン)に掲載されている23のデザインパターンのことです。GoF パターンや単に GoF と呼ばれることもあります。(この記事では以降は GoF パターンと呼びます。) これらは本のタイトルに

                                                                        GoFの次に覚えたいデザインパターン ~Null Objectパターン~ - RAKUS Developers Blog | ラクス エンジニアブログ
                                                                      • Exploiting JNDI Injections in Java | Veracode

                                                                        Introduction Java Naming and Directory Interface (JNDI) is a Java API that allows clients to discover and look up data and objects via a name. These objects can be stored in different naming or directory services, such as Remote Method Invocation (RMI), Common Object Request Broker Architecture (CORBA), Lightweight Directory Access Protocol (LDAP), or Domain Name Service (DNS). In other words, JND

                                                                        • Inside the code: How the Log4Shell exploit works

                                                                          The critical vulnerability in Apache’s Log4j Java-based logging utility (CVE-2021-44228) has been called the “most critical vulnerability of the last decade.” Also known as Log4Shell, the flaw has forced the developers of many software products to push out updates or mitigations to customers. And Log4j’s maintainers have published two new versions since the bug was discovered—the second completely

                                                                            Inside the code: How the Log4Shell exploit works
                                                                          • us-16-MunozMirosh-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE

                                                                            A JOURNEY FROM JNDI/LDAP MANIPULATION TO REMOTE CODE EXECUTION DREAM LAND Alvaro Muñoz (@pwntester) Oleksandr Mirosh Who are we • Alvaro Muñoz (@pwntester) • Principal Security Researcher, HPE Fortify • Oleksandr Mirosh • Senior QA Engineer, HPE Fortify Agenda • Introduction to JNDI • JNDI Injection • RMI Vector • Demo: EclipseLink/TopLink • CORBA Vector • LDAP Vector • LDAP Entry Poisoning • Demo

                                                                            • neue cc - R3 - C#用のReactive Extensionsの新しい現代的再実装

                                                                              先日、新しいC#用のReactive Extensionsの実装としてR3を正式公開しました!R3はRx for .NETを第一世代、UniRxを第二世代とした場合の、第三世代のRxという意味で命名しています。Rxとしてのコア部分(ほぼdotnet/reactiveと同様)は.NET共通のライブラリとして提供し、各プラットフォーム特化のカスタムスケジューラーやオペレーターは別ライブラリに分けるという形により、全ての.NETプラットフォーム向けのコアライブラリと、各種フレームワーク Unity, Godot, Avalonia, WPF, WinForms, WinUI3, Stride, LogicLooper, MAUI, MonoGame 向けの拡張ライブラリを提供しています。 GitHub - Cysharp/R3 幾つかの破壊的変更を含むため、ドロップインリプレースメントではないで

                                                                              • 多言語横断開発の現場から「Python と static duck typing」 - KAKEHASHI Tech Blog

                                                                                長い前置き おはようございます。カケハシのPE新規サービス開発チームというところでソフトウェアエンジニアをやっているogijunこと荻野です。最近この技術ブログはAIの話題が多めなので、ここから言語オタク語りが始まってしまうのはいいのか?とか思いますが、かまわず書きたいと思います。 前置きとして、わたしたちのチームではその名の通り新規事業のプロトタイプをよくやってます。その際には、なるべくサクサク実装して仮説検証を短いサイクルで回すために、社内の既にあるいろいろなプロダクト基盤を間借りしながら機能追加をさせてもらって実験を繰り返しています。 なので、気がつくと多数あるカケハシプロダクトの統一されていない環境、たとえば TypeScript も Python も触るし、Python だけをとっても FastAPI / Django / Pyramid (!) などなど多岐にわたって触ることに

                                                                                  多言語横断開発の現場から「Python と static duck typing」 - KAKEHASHI Tech Blog
                                                                                • The many, many, many JavaScript runtimes of the last decade

                                                                                  This last decade has seen an inundation of new JavaScript runtimes (and engines in equal measure), enabling us to run JavaScript in all manner of contexts with precise fitness for task. Through these, we've seen the language spread to the Cloud, the edge, Smart TVs, mobile devices, and even microcontrollers. In this article, we'll explore what's driving this diversity, and why no one runtime or en

                                                                                    The many, many, many JavaScript runtimes of the last decade