プログラムのデータ形式・実行形式のひとつ。プログラムを実行するランタイム(インタープリタ)での実行速度を向上するために、数値や命令のバイナリ化を行ったもの。バイトコードにすることで、1つのバイナリ(ファイル)でアーキテクチャの異なるコンピュータでも実行できる、個人がスクリプト言語を作る際に、インタープリタと比べ高速な実行が可能で、機械語コンパイラほどの手間をかけずに済むという利点がある。
概要 KubeCon + CloudNativeCon EU が 2022年5月16日から20日の日程で行われた。 16日と17日には co-located event があり、本体のイベントは18日からの3日間であった。 トラック毎のセッション数の比較を下に示す。 増減がはっきりしないものがほとんどであるが、"Security + Identity + Policy" と Observability と "Customizing + Extending kubernetes" は増えているように見える。 セッション数 前回に引き続き、会場とネット配信のハイブリッド開催で、co-located…
Bitcoin Coreでは、User-space Statically Defined Tracing(USDT、※Tetherではない)ベースのトレースポイントが提供されており、Linux環境で動作するBitcoin Coreでは、このトレースポイントを使って、内部のデータにアクセスできるようになっている。 Bitcoin Coreのトレースポイント Bitcoin Coreには、v23.0の時点で以下のトレースポイントが組み込まれている。 参考:https://github.com/bitcoin/bitcoin/blob/master/doc/tracing.md トレースポイント 内…
※こちらの記事は2020年11月9日公開note版「ラック・セキュリティごった煮ブログ」と同じ内容です デジタルペンテストサービス部のkjです。(自分担当の)ブログネタに困っていたのですが、むかーしXDPを少し触っていたことを思い出し、半ば無理やりeBPFとセキュリティを絡めてみました。 eBPFとは もともと、「BPF」と呼ばれる仕組みがUnix系OSには存在します。広い意味ではネットワークパケットを高速処理する仕組みを指すことが多いと思います。パケットのフィルタリングなどは裏でBPFを利用しています。狭い意味では、その実装、仮想マシンのことを指します。BPFはカーネル空間で動作する仮想マシ…
JJUG CCC 2022 Spring に参加しました! いつも以上におもしろいセッション盛りだくさんで、参加してとても楽しかったです。 LINEのトラブルシューティングのような現場での経験をもとにした話から、バイトコードのようなJavaのコアな話まで、とてもバランスよくセッションが採択されていたからかなと思います。 特に前者はなかなか普段の JJUG ナイトセミナーなどでは聞けないので、いつもとても楽しみにしています。 あと、動画セッションならではですが、今回は休憩時間中に時間がかぶって見れなかったセッションを2倍速で追っかけて見るということをやってみて、より密度の高い時間になりました。 …
EVM、仮想マシン、EVMチェーンを理解する Pontem Network Pontem Networkの各リンクをフォローしてご参加ください🤝 EVMは、全てのEthereumスマートコントラクトが実行されるサンドボックスを表します。AvalancheやPolygonなど多くのブロックチェーンがEVMをサポートしており、これによってEthereumのdAppsの移行が容易になります。NEAR、Solana、CosmosといったEVM対応をしていないエコシステムも、AuroraやEvmosといったEVM実装を手に入れつつあります。しかし、これらはMove VMやWASMのようなより安全で効率的…
こんばんは、エンジニアの黒岩(@kro96_xr)です。 バックエンドを中心にフロントエンドやらインフラやら色々担当しています。 突然ですが、最近NFTやらWeb3やら良くも悪くも盛り上がっていますね。 個人的に色々思うところはありつつ、技術としてはキャッチアップしてかねばならない…と言うわけでまずは完全に理解した状態を目指しつつ検証した内容をブログに認めていこうと思います。 なお、本記事の内容は個人的に触ったものであり弊社開発物と一切関係がありませんのでご承知おきください。(一応ね) 前置き NFTって結局なんなのよ 言葉の定義は色々あるかと思いますが、技術的には「ERC721等の規格を満た…
開発部 R&D ユニットの村田です。OSSの開発をしております。本記事では、Ruby で書かれたマンデルブロ集合を計算するメソッドを実行時に Julia に変換して実行するとめっちゃ速くなる (場合がある)、という話をします。 はじめに Ruby 3.1 では YJIT がマージされ、Rails アプリケーションが速くなりました。今後のバージョンアップがとても楽しみですね。ただし、Ruby のデータ処理対応を進めている身としては、データ処理や数値計算がより高速になって欲しいと思っています。 データ処理や数値計算を高速化する試みとして、Python では NUMBA というライブラリが開発されて…
渦中のEthereumネタ。 はじめに Etherscanでコントラクトのアドレスを開くと、コードが表示されることがある。例 Contractのコード コントラクトのユーザーたちは、このコードを見ることで中の実装を把握でき、安心してコントラクトを利用することができる。 実はEthereum自体にはデプロイされたスマートコントラクトのコードを取得する機能はなく、これはEtherscanがオフチェインで提供している機能である。 この機能を使うためには、コントラクトをデプロイした後、Etherscanにコンパイルの構成情報とソースコードをEtherscanに教えれば良い。これによりEtherscan…
イーサリアムはECIES暗号とかいうのが使われとる独自プロトコルなんだな。 これかぁ、冬の時代に築いた基礎の差ってのは。。 RSA同様の楕円曲線暗号ということだが、楕円(上)の曲線がなんで暗号になるの?(゜ρ゜) 代数的閉体💂$\hat{K}$ の種数1の代数曲線を楕円曲線というそうだ。(;´Д`) つまり、もうじき天心との天下分け目の決戦を控えた、あのK-1(ケイイチ)である。(ง・ิω・ิ)ง たしかに曲がってますねw てか、まだ消さんのかいっっっ! この腕に天$P$と$Q$が与えられたとき、$\log_{P}Q$を求める問題を離散対数問題(ECDLP)いうそうな。 要は、これを解くのが困…
概要 ネットでPythonの記事を読んでいると、以下のような1行で複数の変数に同時に値を代入する方法が速いという記事を見かけました。 a, b, c = 1, 2, 3 こちらについてちょっと怪しいなと思い、速度の比較、及び速度差の原因について調査してみました。 結論としては、1行で複数の変数に値を代入するのは遅いことがわかりました。(ただし、複数の変数に同じ値を代入する場合は、さほど遅くない) 以降調べた内容についてメモを残しています。 何か間違い等ございましたら、コメントにてご指摘いただけると幸いです。
Graydon Hoareが2019年にカナダのブリティッシュ・コロンビア大学でコンパイラ関連のゲスト講義した時の資料21 compilers and 3 orders of magnitude in 60 minutes - a wander through a weird landscape to the heart of compilationを読んだら大変面白かったのでメモ。 作者 Graydon HoareはMozillaでRustを開発したことで有名。その後Rustの開発もMozillaも離れて(というかRustの開発からは2013年に離れたようだ)、一時期AppleでSwift開…
Java はじめに どうやったら可視化できるのか? Javaが実行されるまでの流れ バイトコードとクラスファイル javapコマンド コマンドの説明 「暗黙的」な処理を可視化してみる ①デフォルトコンストラクタは生成されているのか デフォルトコンストラクタとは ②スーパークラスのコンストラクタは先に呼ばれているのか invokespecialとは Constant poolとは ③int型とInteger型を比較したときになぜtrueになるのか valueOfメソッドとは invokevirtualとは intValueメソッドとは 等式演算子(==)の挙動 ④ストリングコンスタントプールはど…
つい最近まで、C# 開発者がブラウザー向けコードを記述したいとなった場合、JavaScript を使う必要がありました。しかし、Web 開発の世界は急速に変化していて、今や開発者はハイエンドの Web アプリ開発のために JavaScript に依存する必要はなくなりました。もしあなたがサーバーに接続せずに (アドオンやプラグインなしで) ブラウザーで .NET を実行することを考えたことがある場合、Blazor は WebAssembly と呼ばれるテクノロジーのおかげでそれを実現しています。 このブログでは、Blazor WebAssembly と、なぜそれが多くの話題を呼んでいるのかを詳…
プログラミング言語「Move」の仕組み Pontem Network Moveエコシステムを世界にもたらす、Pontem Networkのトークンリリースに向けたホワイトリスト登録はこちらから! Diemを支えるソフトウェアを理解する 先月、MetaはDiemステーブルコインを暗号通貨分野に深く関与しながら銀行業を営むSilvergateに売却することを発表しました。Silvergateは、多くのトップクラスの暗号取引所によって使用される24/7資産移転システムであるSilvergate Exchange Network (SEN)を運営しています。Silvergateは、買収したDiemのイ…
また「プロになるJava」の宣伝か、と思われるので、今回は「プロになるJava」の宣伝は自粛します。 Java力をあげるためには最適な「プロになるJava」がオススメなんですが、そうするとこのエントリもこのあたりで終わってしまうので、今回は自重します。 ということで、よく「Java力をあげるにはどうしたらいいか」という質問をみかけます。どうしましょうね、という話。 ここで、「Java力をあげたい」と言ってるときの大半はプログラミング力をあげたいという話です。 もちろん「プロになるJava」もプログラミング力をあげるのにとても役に立つのですが、今回は「プロになるJava」以外で攻めてみましょう。…