並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 939件

新着順 人気順

LLVMの検索結果1 - 40 件 / 939件

  • 働きながらアメリカの大学院でCS修士号を取った - k0kubun's blog

    4年前に会社の福利厚生を使ってスタンフォードの授業を取ってみたら面白く、 働きながらでも続けられそうだなという実感を得たので、 2年後、受験を経てジョージア工科大学にリモートで通い始めた。 そして先日、ジョージア工科大学からコンピュータサイエンス修士号をいただくことができた。 画像の学位記は卒業式イベント用の非公式のもので、1~2か月すると Masterとちゃんと書いてある本物が来るらしい *1 。 After 1 year and 9 months, I graduated from Georgia Tech and got a master's degree in computer science. It was intense to be a student while working full-time, but I learned a lot. pic.twitter.com/J

      働きながらアメリカの大学院でCS修士号を取った - k0kubun's blog
    • XMLHttpRequest とはなんだったのか | blog.jxck.io

      Intro Fetch API の実装が広まり、 IE もリタイアを迎えたことで、今後忘れ去られていくことになるだろう XMLHttpRequest について。 どのように始まり、どのように広まり、どのように使われなくなっていくのか。その間に残した多大な功績を残す。 XMLHttpRequest の始まり この名前は非常に長いため、通常 XHR と略される。 この API は、現在の Web API のように W3C/WHATWG による標準化を経て策定された API ではない。 Microsoft によるいわゆる独自実装の API として始まり、後追いで標準化される。 したがって、 Web API の中でもかなり異質な命名である XHR が、 XmlHttpRequest でも XMLHTTPRequest でもなく XMLHttpRequest である理由も、 Microsoft の命

        XMLHttpRequest とはなんだったのか | blog.jxck.io
      • オープンソースビジネスの挑戦と現実|Rui Ueyama

        いい感じのオープンソース・ソフトウェアを書いて、それを元に起業することを考えてみたことがある人は結構いるようだ。実際に僕はここ1年半ほど、自作のオープンソース・ソフトウェアを元にビジネスを立ち上げようと試行錯誤してきた。その経験についてここでシェアしてみようと思う。 あらすじ薄々予期していたことではあったけれど、結論から言うと、そんなにはうまくいかなかった話ということになる。要点をまとめると次の通りだ。 「moldリンカ」というオープンソースのツールを開発して、それを元にビジネスを行おうとしていた そこそこ稼ぐことはできたものの、大きなリターンを得るのは難しかった ほとんどの企業はオープンソースを大々的に活用していても「無料のソフトウェア」にはお金を払うつもりはないし、払いたくても社内制度上できない 大きなリターンを得たいのならば、自作のオープンソース・ソフトウェアを元にサービスを立ち上げ

          オープンソースビジネスの挑戦と現実|Rui Ueyama
        • VSCodeの拡張機能、なに使ってますか? はてなエンジニア世論調査 #2 - Hatena Developer Blog

          こんにちは、Webアプリケーションエンジニアのid:hogashiです。 半年ほど前に公開した「開発環境のフォントなに使ってますか?」に続く、はてなエンジニア世論調査の第2回「VSCodeの拡張機能、なに使ってますか?」です。 ソースコードエディタであるVisual Studio Code(以下、VSCode)は多くのエンジニアに利用されています。VSCodeにはソースコードのシンタックスハイライトやデバッグなど、さまざまな拡張機能をインストールして使うことができますが、公開されている拡張機能は膨大にあります。 その中から、はてなのエンジニアはどんな拡張機能をインストールして、日頃の開発に使っているのでしょうか? 前回と同様にアンケート調査してみました。 アンケート方法 アンケート結果から見える人気の機能拡張 6割の拡張機能は1人だけが使用 人によってかなり異なるインストール数 興味深いコ

            VSCodeの拡張機能、なに使ってますか? はてなエンジニア世論調査 #2 - Hatena Developer Blog
          • コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み

            Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。植山氏は、制作中のリンカである「mold」について発表しました。全2回。前半は、リンカの概要について話しました。 LLVMのリンカ「lld」オリジナルの作者 植山類氏:植山類です。今僕が作っているmoldというリンカについて発表します。 今回の発表の概要です。リンカが何かを知っている人はそんなにたくさんいないと思うので、まず説明します。次に、「mold」のポイントは速いことなのですが、速いと何がうれしいのかを説明します。そのあと、どれくらい速いのかを説明した上で、どう実現されているのか、概要を紹介します。詳細になると何時間あっても終わらないので、かなりハイレベルな話をします。 自己紹介のスライドを入れていませんが、僕はリンカを何度か作ったことがあって、LLVMのlld

              コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み
            • スクリプト言語を舐めてはいけない|shi3z|note

              おれはハッカーだ。 なので、ハッカーではない人種と呑むのが苦手である。 たとえば「ITエンジニア」と自称するような人たちだ。 当然だが、ITエンジニアと自称する人はハッカーではない。 ITエンジニアと言う言葉はスコープが広すぎていちいち細かい説明を聞かなければならない。 これが厄介なところである。 あるとき、友達の家で飲み会をすると言われ、誰が来るの?と聞いたら知らないIT関連会社のエンジニアたちだという。 エンジニアと呑むと喧嘩しちゃうので断ったのだが、いろいろあっていくことになってしまった。 するとやっぱりこんなはなしをしていた。 「やっぱ私もRubyみたいなスクリプト言語なんか卒業してコンパイル言語やんなきゃ。処理速度がね…」 「コンパイル言語って?」 「TypeScriptとかJavaとかC#とか」 「それ、中間コード言語じゃねえか。なんの意味があるんだ。YARV知らないのか」 ま

                スクリプト言語を舐めてはいけない|shi3z|note
              • WASMとRustはVue.js/React.jsを打倒するのか? - JSへの侵略の歴史

                はじめに 「Typescriptの次はRustかもしれない」という記事がバズってるのを見かけました。 なかなか面白くて、PAとしてのWASMとRustを比較している記事です。ちょうど最近「レガシーおじさん、SPAを始めてみた。そして限界を知る」でも書いた通り最近SPAに手を出してみたのですが、いろいろやろうとするとSSRのためのBackend for Frontend (BFF)等が必要になるとわかり「これJSでやる必要なくない?」とも感じていたのでちょうど良かったです。 こういうのを見るとRIAやGWTのように似たアプローチで廃れた技術や、登場が早すぎたMeteor、今も頑張ってるMSのBlazorなど色々頭をよぎります。といわけで歴史を俯瞰する意味でHTML + JavaScriptとそれ以外の技術のせめぎ合いの歴史やMSのBlazorやRustのyewなどWebassemblyを使う

                  WASMとRustはVue.js/React.jsを打倒するのか? - JSへの侵略の歴史
                • Mojoは「C言語のように速いPython」なのか - k0kubun's blog

                  LLVMやSwiftを作ったChris LattnerがCEOをやっている会社が、Pythonの使用感とC言語並の性能を併せ持つ言語としてMojoをアナウンスした。 まだ手元で試せる状態でリリースされてはいないが、最大35000倍Pythonより速いという。 Mojo🔥 combines the usability of Python with the performance of C, unlocking unparalleled programmability of AI hardware and extensibility of AI models. Also, it's up to 35000x faster than Python 🤯 and … deploys 🏎 pic.twitter.com/tjT09U4F80— Modular (@Modular_AI) May

                    Mojoは「C言語のように速いPython」なのか - k0kubun's blog
                  • フルスクラッチから作って理解するQEMU (Rust編) - FPGA開発日記

                    モチベーション なぜRustを選んだか? 私はQEMUは「アーキテクチャエミュレーション界のLLVM」だと思っている QEMUが高速な理由:TCG Binary Translation ゲスト命令(RISC-V) → TCG → ホスト命令(x86)の処理をRustで作ろう RISC-Vの命令をフェッチしてデコードする RISC-Vの命令をTCGに変換する TCGをx86に変換する 実装結果 Binary Translation実行を高速化するための様々なテクニック BasicBlock分まで複数命令をまとめて変換 TCG Block Chainingの実装 評価結果 TB Lookup and Jumpの実装 評価結果 まだ完成していないところ 一部の最適化はまだ未実装となっている ゲストアーキテクチャがx86のみとなっている。TCGによる複数プラットフォーム対応として、まずは環境のそろ

                      フルスクラッチから作って理解するQEMU (Rust編) - FPGA開発日記
                    • Go コンパイラのコードを読んでみよう - kosui

                      はじめに 本記事は、 DeNA Advent Calendar 2020 の 11 日目の記事です。 突然ですが、「コンパイラのコードを読んでみよう」なんて言われても、「どうせ巨大で難解で複雑なロジックを理解しないと読めないんでしょ?」と思いませんか。 コンパイラの構造を理解しようとしても聞いたことのないような専門用語がずらりと並び、コードを読もうとしたらそれらをすべて完全に理解してないと一行も理解できないんじゃないか...。Go のコンパイラ gc のソースコードを読むまでは、私もそう思っていました。 しかし、あまりにも暇な休日のある日、思い立って gc のコードを読んでみました。すると、「コンパイル」という難解な響きの処理も、一つひとつを小さなタスクに分解することで、少しずつ読み進めることができると分かったのです! 何よりも感動したことは、 gc そのものが全て Go で書かれていて、

                        Go コンパイラのコードを読んでみよう - kosui
                      • Metaに転職して感じたPFNとの違い - joeの日記

                        Metaに転職して1か月近くが経ちました。カナダのトロントオフィス勤務で、今月は渡航に始まり、社会保険番号取得、口座開設、家探し(インターネット等の契約も)、州の健康保険、会社の福利厚生に含まれる保険や積み立て口座の開設、など手続き関連でかなり疲れましたが、アメリカメンローパークでの本社のオンボーディングも終了していよいよ業務が開始した、といったところです。 Metaはオンボーディング中にチームと会うまで自分が何の仕事をするか詳細は全然把握していなかったのですが、Metaが開発し運用もされている社内用の深層学習アクセラレータのコンパイラを開発する職となっています。レイヤごとに細かなチームがあり、上の方のレイヤではPyTorchとの繋ぎこみを担当しているようですが、自分が所属しているところはレイヤの最下層のところに位置しており、カーネルのコードをLLVMを介してコンパイルしアクセラレータに乗

                          Metaに転職して感じたPFNとの違い - joeの日記
                        • WebAssemblyの歴史について

                          はじめに 最近、Node.jsとDenoの開発者であるRyan DahlさんがJavaScript Containersという記事を書いていることを知った。 Webとの親和性の高さがサーバーサイドで求められる中、JavaScriptがユニバーサルスクリプトとして活躍するだろう。そして、コンテナランタイムがLinuxコンテナの抽象レイヤーとしてあるように、JavaScript界隈では既存のWebAPIそのものが抽象化の手助けとなるであろう、みたいな趣旨の内容だった。 彼がChromeのV8 JavaScript Engineを使ってNode.jsを誕生させた同じ頃、JavaScriptの可能性を信じて方法を模索した人がいる。Alon Zakaiさんだ。 Alon(以降、敬称略)はWebAssemblyやその考えの元になった asm.js 、 JavaScriptコンパイラ Emscripte

                            WebAssemblyの歴史について
                          • めくるめくLinuxカーネルじゃないLinux実装の世界 - Qiita

                            EDIT^7: blink と box86、FEX。 EDIT^6: Unikraft 。 EDIT^5: Tilck 。 EDIT^4: コメント。gVisor はすっかり忘れていました!Linuxを拡張するためにLinuxを実装した良い例だと思います。LINE有りましたね。。 SF.netのCVSはもう死んでしまったので除外にしました。。 OSvのバイナリ互換 はPIEであることが要求なので。。といっても世間的にはもうLinux = Debian/Ubuntu で良いですかね。。表現を調整しました。 EDIT^3: Noah忘れてた! EDIT^2: Cygwinは 下書き段階で削ってしまった 。。 qemuを移植したとき に互換性がイマイチだったので。。特殊fdやprocfsの充実ぶりとかを考えると "かなりLinux" と言って良いとは思うけど、 mmap 等でLinuxとWind

                              めくるめくLinuxカーネルじゃないLinux実装の世界 - Qiita
                            • 11種類のオペレーティング・システムについてまとめてみた - Qiita

                              TL;DR 「オペレーティングシステム?知ってるよ。WindowsとかMacのことだよね」というぐらいの知識だった私が、二週間ほどひたすらWikipediaでインプットしまくったクソ浅い情報を共有します。 最初の動機 「Go言語が対応しているアーキテクチャってなんだろ?」 Go言語には環境変数をコンパイラに渡すことで、出力されるバイナリの対応するOSとアーキテクチャを変えることができます。 GOOS がオペレーティングシステム(OS)、 GOARCH がアーキテクチャです。 こんな感じにビルドすると、 linux というオペレーティングシステムで、 ppc64 というアーキテクチャに対応したバイナリが出力されます。 なるほど。 じゃあ、 Go言語が対応しているOSとアーキテクチャって何があるの? と疑問が湧いてきますね。 その疑問に応えるコマンドが go tool dist list です

                                11種類のオペレーティング・システムについてまとめてみた - Qiita
                              • Go言語でゲームボーイアドバンスのエミュレータを作った話

                                CPUはなんとARMのCPUを採用しています。(そのおかげでLLVMのターゲットに指定できる) ゲームボーイとの違い CPU 最大の違いはCPUです。ゲームボーイ(以降、GB)ではZ80を独自カスタムしたLR35902というCPUを使っていますが、このCPUは8bitで動作するCPUです。つまり命令のサイズが8bit(1byte)しかありません! しかも、LR35902は掛け算命令など現代のCPUでサポートしている基本的な命令をサポートしていません。 これに比べてGBAに搭載されているARM7TDMIは32bit CPUです。つまり命令のサイズが4byteとGBの命令の4倍の大きさになります! このおかげでCPUの命令セットがさまざまな命令をサポートできるようになりました。(まあ後述の理由で実質16bit CPUですが...) またクロック数もGBの4MHzから16MHzに伸びました。 B

                                  Go言語でゲームボーイアドバンスのエミュレータを作った話
                                • 元Google植山 類の“実装力”の源をSakana AI・秋葉拓哉が探る「集団開発のしがらみに、個人開発で殴りこむ」 - エンジニアtype | 転職type

                                  moldを作ったのは「大学院の単位を取るため」だった 秋葉:植山さんと最初に接点を持ったのは、僕がマウンテンビューのMicrosoft Researchでインターンをしていた時だったと記憶しています。エンジニアならば誰が見ても驚くような開発を成し遂げ続けているので、ぜひ詳しくお話を聞きたいと思い対談のリクエストをさせていただきました。 植山:ありがとうございます。初めてお会いした当時から、秋葉さんはプログラミングコンテストの上位ランカーで実力があって、おまけに話も上手かった。なかなか直接関わる機会はなかったけど、時流に乗ってディープラーニングに着手して活躍しているという話はよく耳にしていました。 秋葉:確かに、植山さんと知り合った頃はまだディープラーニングには手を出していなかったですね。今ではAIへと専門領域を移して久しいので、振り返ると長い時間が経ちました。 今回は、個人の力で優れたプロ

                                    元Google植山 類の“実装力”の源をSakana AI・秋葉拓哉が探る「集団開発のしがらみに、個人開発で殴りこむ」 - エンジニアtype | 転職type
                                  • やっぱりコンパイラが書きたい。渡米後にRuby JIT開発を趣味から仕事に変えた私のキャリア戦略 - Findy Engineer Lab

                                    国分崇志(@k0kubun)と申します。プログラミング言語Rubyのコミッターとして活動しています。2019年からシリコンバレーで働いており、2022年からShopifyという会社でRubyのJust-In-Time(以下、JIT)コンパイラをフルタイムで開発しています。 長い間趣味でやっていたコンパイラの開発を仕事にしたのは、現職が初めてでした。この記事では、趣味を仕事に変えた経緯や、どのようにして業務経験のない分野にキャリアチェンジしたのかを紹介します。 仕事で分散システム、趣味でコンパイラを書くキャリア 楽しく稼げる仕事を求めてたどり着いたRubyエンジニア 研究で分散システムと言語処理系の両方に興味を持つ 分散ミドルウェアを仕事で、JITコンパイラを趣味のOSS活動で やっぱりコンパイラを仕事にした複合的なきっかけ 働きながら大学院に通い、コンパイラが一番好きなことに気付いた コン

                                      やっぱりコンパイラが書きたい。渡米後にRuby JIT開発を趣味から仕事に変えた私のキャリア戦略 - Findy Engineer Lab
                                    • Linux eBPFトレーシング技術の概論とツール実装 - ゆううきブログ

                                      eBPF(extended Berkley Packet Filter)という用語を著者が初めてみかけたのは、2015年ごろだった。最初は、eBPFをその字面のとおり、パケットキャプチャやパケットフィルタリングを担うだけの、Linuxの新しいサブシステムであろうと認識していた。しかし、実際にはそうではなかった。 システム性能の分析のための方法論をまとめた書籍Systems Performance 1 の著者で有名なBrendan Greggが、Linuxのネットワークサブシステムとは特に関係ない文脈で、古典的なシステム性能計測ツールでは計測できないことを計測するツールを作っていた。その計測ツールがeBPFという技術によって実装されていることを知ったときに、eBPFに興味をもったのだった。また、eBPFは、システム性能を調べる用途以外にXDP(eXpress Data Path)と呼ばれるプ

                                        Linux eBPFトレーシング技術の概論とツール実装 - ゆううきブログ
                                      • Pythonの高速なスーパーセットをうたう新言語「Mojo」、コンパイラなど公開、ローカル環境で利用可能に

                                        Pythonの高速なスーパーセットをうたう新言語「Mojo」、コンパイラなど公開、ローカル環境で利用可能に Modular社はPythonの高速なスーパーセットだと同社が位置づける新言語「Mojo」をローカル環境で実行可能にする、コンパイラなどのツール群を公開しました。 Mojo is now available for download locally to your machine! Beyond a compiler, the Mojo SDK includes a full set of developer and IDE tools that make it easy to build and iterate on Mojo applications. Let’s build the future together!https://t.co/KxmLvsxx5e — Modula

                                          Pythonの高速なスーパーセットをうたう新言語「Mojo」、コンパイラなど公開、ローカル環境で利用可能に
                                        • 高速なPython互換言語「Mojo」のMac版登場、Appleシリコンにネイティブ対応。Pythonの9万倍、C言語に比肩する高速性

                                          高速なPython互換言語「Mojo」のMac版登場、Appleシリコンにネイティブ対応。Pythonの9万倍、C言語に比肩する高速性 Modular社はPythonの高速なスーパーセットと同社が位置づける開発中の新言語「Mojo」の、Appleシリコンにネイティブ対応したMac版をリリースしました。 Today is the day! Mojo for Mac is live! Download it right now! Read our launch blogpost on how to get startedhttps://t.co/XSMkqUmHKt — Modular (@Modular_AI) October 19, 2023 Mojoは9月に初めてローカル環境でコンパイルなどを実行可能なLinux対応のツール群を公開しています。今回のAppleシリコンにネイティブ対応した

                                            高速なPython互換言語「Mojo」のMac版登場、Appleシリコンにネイティブ対応。Pythonの9万倍、C言語に比肩する高速性
                                          • WebAssemblyをWin/Mac/Linuxで実行可能なランタイム「Wasmer 1.0」正式リリース。事前コンパイルによる高速起動やクロスコンパイルなどにも対応

                                            WebAssemblyをWin/Mac/Linuxで実行可能なランタイム「Wasmer 1.0」正式リリース。事前コンパイルによる高速起動やクロスコンパイルなどにも対応 米Wasmer社はオープンソースのWebAssemblyランタイム「Wasmer 1.0」の正式リリースを発表しました。 Windows、Mac、Linux、FreeBSDに対応。Apple M1チップのMacにも対応します。 Wasmer v1.0.0 released!https://t.co/95zx1K7QAu — Wasmer (@wasmerio) January 5, 2021 WebAssemblyはもともとWebブラウザ上でネイティブコードに近い実行速度で高速に実行できるバイナリフォーマットとして開発され、2019年10月にW3Cの勧告に到達しました。 その後、WebAssemblyをWebブラウザだけで

                                              WebAssemblyをWin/Mac/Linuxで実行可能なランタイム「Wasmer 1.0」正式リリース。事前コンパイルによる高速起動やクロスコンパイルなどにも対応
                                            • アメリカ博士課程留学 − 立志編 - 旅する情報系大学院生

                                              はじめまして、00_です。私は現在東京大学の学部4年生で、2020/2/13現在、10校出願したコンピューターサイエンスの博士課程プログラムのうち8校(MIT, Stanford, CMU, UW, Harvard, Brown, Princeton, UMD)から合格を頂いており、第一志望のMITに進学する予定です。残りの2校(UCSD, UCB)については結果待ちです。 全ての大学の結果が出揃ってから留学についてのブログを書こうと思っていましたが、合格を頂くにつれ出願までの辛い記憶が徐々に薄れつつあり、臨場感が伴った文章を書けなくなるのではと思いこのタイミングで立志編を書くことにしました。また、合格してから沢山の方にフォローされ、「天才ですね」というコメントを沢山頂くのですが、そんなことはなく、秀才が努力した結果が出ただけなんだということを伝えられればなと思います。この記事では、学部生

                                                アメリカ博士課程留学 − 立志編 - 旅する情報系大学院生
                                              • トーバルズ氏が考える、LinuxにおけるRustの居場所とは

                                                Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 村上雅章 野崎裕子 2021-03-31 07:30 Linuxはプログラミング言語Cの申し子のような存在だ。しかし時は流れ、状況は変わった。RustをLinuxのシステム記述言語として採用しようという動きが少しずつ支持を集めてきている。例を挙げると、Linuxカーネル開発者のための年次カンファレンス「Linux Plumbers Conference(LPC)2020」において、開発者らはLinuxのインラインコード部分でのRustの採用を真剣に議論していた。その議論は現在どうなっているのだろうか?筆者はLinuxの父と目されるLinus Torvalds氏と、Linuxの安定版カーネルのメンテナーであるGreg Kroah-Hartman氏から考えを聞いた。 これはRustに魅

                                                  トーバルズ氏が考える、LinuxにおけるRustの居場所とは
                                                • [速報]マイクロソフト、ArmネイティブなVSCode、.NET、WSLなど投入へ。Python、Node.jsなどのArm対応も進行中。Microsoft Build 2022

                                                  [速報]マイクロソフト、ArmネイティブなVSCode、.NET、WSLなど投入へ。Python、Node.jsなどのArm対応も進行中。Microsoft Build 2022 マイクロソフトは現在開催中の開発者向けイベント「Microsoft Build 2022」で、Arm64ネイティブなVisual Studio Codeや.NET、Windows Subsystem for Linuxなどを投入することを明らかにしました。 投入予定として発表されたのは以下のソフトウェアです。 フル機能のVisual Studio 2022 Visual Studio Code Visual C++ .NET 6 旧.NET Framework Windows Terminal Windows Subsystem for Linux Windows Subsystem for Android 以下

                                                    [速報]マイクロソフト、ArmネイティブなVSCode、.NET、WSLなど投入へ。Python、Node.jsなどのArm対応も進行中。Microsoft Build 2022
                                                  • Rust で SQLite を再実装している - kawasin73のブログ

                                                    セキュリティを盾に一点突破。どうもかわしんです。最近 Rust で SQLite を実装してます。 以前の記事で HTTP Parser を Rust で実装しようとしたものの、すでに実装されていたので断念しましたが、いい題材を見つけました。SQLite です。開発中のリポジトリはこれです。 github.com 今の時点では、Read Only で1つの WHERE 句を持った SELECT 文しか処理できないですが、以下の機能を実装しています。 sqlite3 で生成された database ファイルの読み取り (cursor.rs, btree.rs, record.rs) SQL 文の解析 (token.rs, parser.rs) テーブルとインデックスのメタデータのパース (schema.rs) 動的なファイルの読み込み (pager.rs) SQL クエリとスキーマ情報を元に

                                                      Rust で SQLite を再実装している - kawasin73のブログ
                                                    • C言語から0番地へアクセスする方法についての個人的まとめ - /var/log/hikalium

                                                      発端はuchan_nos氏によるこのツイートでした。 C言語で、本当にメモリの0番地にデータを書きたいときはどうすりゃええの?— うー@技術書典8 Day1う31 BitNOS (@uchan_nos) 2020年2月12日 それに対する私のリプライ: uint8_t *p = 1; p--; *p = v;— hikalium (@hikalium) 2020年2月12日 私はこれで話が終わると思っていたのだが、どうやらそうではなかったらしく、色々な視点からの意見が加わりながら、話は混沌を極めたのでした…。 ということで、ここに私のこのツイートに対しての見解とか、わかったことをまとめておこうと思います。 私のリプライの背景について uchanさんが求める「0番地にデータを書きたい」という課題設定を、私はこのように解釈しました。 C言語において、整数0をポインタに変換すると、それはNULL

                                                        C言語から0番地へアクセスする方法についての個人的まとめ - /var/log/hikalium
                                                      • プログラマーがソースコード内に書いた「アスキーアート」図2000点以上を収集 使われ方を分析しデータベース化【研究紹介】 レバテックラボ(レバテックLAB)

                                                        米カリフォルニア大学サンディエゴ校に所属する研究者らが発表した論文「Taking ASCII Drawings Seriously: How Programmers Diagram Code」は、ソースコード内で使用するアスキーアート(ASCII art)を収集し分析した研究報告である。 ▲ソースコード内で活用されたアスキーアートの一例 keyboard_arrow_down 研究背景 keyboard_arrow_down 研究内容 オープンソースのソフトウェア開発では、プログラマーがコードの中にアスキーアートを使って図を描き、アイデアを視覚的に表現することがよくある。アスキーアートはコードや自然言語では表現しにくい概念を視覚的に明快に説明でき、またコードよりも詳細度は低いものの、コードを理解するうえで「サムネイル」のような役割を果たす。 こうしたアスキーアートは、実際のソフトウェア開発

                                                          プログラマーがソースコード内に書いた「アスキーアート」図2000点以上を収集 使われ方を分析しデータベース化【研究紹介】 レバテックラボ(レバテックLAB)
                                                        • macOSのツールチェーンの仕組み

                                                          macOSにはシステムにインストールされた複数のバージョンのツールチェーンを切り替えて使うための仕組みが備わっています。しかし、そのメカニズムについて記述された文書は少なく、雰囲気で xcode-select コマンドを使っている方も多いと思います。 この記事では、macOSにおけるツールチェーンの役割と仕組みについて紹介します。 ツールチェーンとは 一般的にツールチェーンとはコマンドやライブラリ、ヘッダなどをひと纏めにしたツール群のことを指すことが多いです。 例えばC言語のソースコードから実行可能なバイナリへビルドするためには、 clangやgccなどのコンパイラでオブジェクトファイルへ変換 ld64やlldなどのリンカでオブジェクトファイルとlibcを実行可能バイナリとしてリンク という操作が必要になります。 ここで登場した、コンパイラやリンカ、標準ライブラリなどのツール郡はバラバラに

                                                            macOSのツールチェーンの仕組み
                                                          • WindowsがまたLinuxを取り込む。マイクロソフト、Linuxカーネルが備える拡張機能「eBPF」互換機能をWindowsにもオープンソースで実装へ

                                                            マイクロソフトは、Linuxカーネルが備えている拡張機能である「eBPF」の互換機能を、Windows 10とWindows Server 2016以降で実現するオープンソース「eBPF for Windows」を発表しました。 カーネルのコードを書き換えずに機能を拡張できるeBPF eBPFとは、Linuxカーネルを変更することなく、カーネルの持つさまざまな機能をフックすることにより、カーネルに対してある種の機能拡張を実現するものです。下記は、eBPFのWebサイトにある説明を引用したもの。 eBPF is a revolutionary technology that can run sandboxed programs in the Linux kernel without changing kernel source code or loading kernel modules.

                                                              WindowsがまたLinuxを取り込む。マイクロソフト、Linuxカーネルが備える拡張機能「eBPF」互換機能をWindowsにもオープンソースで実装へ
                                                            • Swiftがこの先生きのこるには - laiso

                                                              Apple系デベロッパーの人たちがSwift普及のいかんともしがたい現状について話していたので考えてみた。 サーバーサイド用途 サーバーサイドSwiftは現状あまり利用したいケースが見当たらず、モバイルアプリ開発組織のマイクロサービス開発の共通化においてはJVMが枯れているのでKotlinの方に傾きがち。 WindowsやVSCodeやIntelliJ系の非Xcode系開発環境のサポートのハードルも越えるぐらいモチベーションが必要である。 ただユーザー規模はそこそこあり、DenoやDartやHaskellが有効な程度にはWeb開発用途には使えると思われる。苦労しそうだけど。 Wasm化 Wasmにしてブラウザサイドでコードを動かそうという向きもある。拡張用途では周辺ツールの多いRustやCのライブラリ資産のポートもありレッドオーシャンであることは変わりないが、Swiftに限らずWasmアプ

                                                                Swiftがこの先生きのこるには - laiso
                                                              • Python普及しろ協会に入会したい

                                                                この記事はタナイ氏によるPython滅ぼす協会に入会したいを読んでから執筆したものです。 この記事の趣旨はPython滅ぼす協会に入会したいに対する反論という形をとりながら、タナイ氏により「バカの言語」と揶揄され、「使ってエンジニアを名乗るというのは」「滑稽」とまで言われたPythonの立場を再考することです。 追記 本記事は「Pythonはこれだけ優れた言語だからみんな使おう!」というものではなく「言うほど酷くないと思うよ」程度のものです。 型アノテーションがあるからと言って静的型付けを軽視しているわけでもなければ、map関数をもってmapメソッドを不要だと言っているわけでもありません。 この記法は嫌い〜この記法が好き〜と表明することは個人の自由ですが、同様に「この記法は実はこういう意味があって〜」という意見があればそれを聞いた上で、物事を判断して欲しいです。もちろん、聞いても意見が変わ

                                                                  Python普及しろ協会に入会したい
                                                                • 達人出版会

                                                                  探検! Python Flask Robert Picard, 濱野 司(訳) BareMetalで遊ぶ Raspberry Pi 西永俊文 なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 Jesse Storimer, 島田浩二(翻訳), 角谷信太郎(翻訳) 知る、読む、使う! オープンソースライセンス 可知豊 きつねさんでもわかるLLVM 柏木餅子, 風薬 徹底攻略 AWS認定 クラウドプラクティショナー教科書 第2版[CLF-C02]対応 トレノケート株式会社 高山裕司 超楕円関数への招待 楕円関数の一般化とその応用 松谷 茂樹 手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発 Tom Hombergs(著), 須田智之(訳) 詳解 AWS CloudFormation 潮村 哲 その決定に根拠はありますか? 確率思

                                                                    達人出版会
                                                                  • WebAssemblyはJVMやeBPFのリバイバルではない WasmがWeb以外でもアツい理由

                                                                    Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。佐伯氏は、WebAssemblyのWebの外の応用について発表しました。全2回。前半は、Wasmがアツい理由とデザインゴールについて。 今回のテーマは「Kernel/VM的WebAssembly入門」 佐伯学哉氏(以下、佐伯):佐伯が『WebAssemblyのWeb以外のこと全部話す』というタイトルで発表します。 まず、WebAssemblyとは何ぞや? という一般的な話なのですが、「Wikipedia」からの引用によれば、「Webブラウザーのクライアントサイドスクリプトとして動作する低水準言語である。ブラウザー上でバイナリフォーマットのかたちで実行可能であることを特徴とする」とあります。 実際の応用例としては、WebでGoogle Meetの背景ぼかしに使われていた

                                                                      WebAssemblyはJVMやeBPFのリバイバルではない WasmがWeb以外でもアツい理由
                                                                    • 次期Python、ついにJITコンパイラ搭載の見通し。「copy-and-patch」と呼ばれる新たなJITコンパイラの仕組みとは?

                                                                      次期Python、ついにJITコンパイラ搭載の見通し。「copy-and-patch」と呼ばれる新たなJITコンパイラの仕組みとは? 機械学習やAI処理の分野を中心に非常に高い人気のプログラミング言語である「Python」の次期バージョンに、処理速度の向上を目指したJITコンパイラが搭載される見通しです。 このJITコンパイラは、PythonコアデベロッパーのBrandt Bucher氏が提案し、実装しています。 そしてPython Software FoundationのフェローであるAnthony Shaw氏がブログ「Python 3.13 gets a JIT」で、このJITコンパイラについて解説しています。 これらの情報を元に、PythonのJITコンパイラがどのように実装されようとしているのか、少し紹介していきましょう。 RubyもJavaScriptもJITが高速化を実現してき

                                                                        次期Python、ついにJITコンパイラ搭載の見通し。「copy-and-patch」と呼ばれる新たなJITコンパイラの仕組みとは?
                                                                      • WebAssembly所感

                                                                        WebAssemblyをちょっといじってみて思ったところをまとめてみます。 設計思想 WebAssembly/designに設計文書がまとまっています。特にHighLevelGoals.mdから読み取れるポイントは以下の4点です。 サンドボックス化された環境であること。 移植性があること。つまり、特定の実CPUアーキテクチャ等に依存しないこと。 少なくともC/C++の(十分に高速な)コンパイルターゲットとして機能すること。 安定した仕様を持つこと。 サンドボックスという観点からは、先行技術として以下のようなものが特筆に値します。 Webサンドボックス JavaScript および asm.js Javaアプレット Flash (ActionScript) NaCl, PNaCl Web以外のサンドボックス OSのユーザーランド、特にLinux userland これらのサンドボックスとの比

                                                                          WebAssembly所感
                                                                        • 高速化のエンジニアリング。注文してから0.722秒。100倍速いぞ!Python : 75.884 C++ : 3.392   JIT Python : 0.722 JITコンパイラで高速化されたコードを自動生成するツール。 - Qiita

                                                                          アリスは驚きと興奮を抑えきれませんでした。彼女はすぐに新しいコードを試し、その速さに目を見張りました。今まで数時間かかっていた計算が、ほんの数分で終わったのです。 翌日、アリスはこの発見を友人たちに話しました。友人たちも同じように魔法の本を使い、彼らのコードを高速化しました。こうして、プログラミング王国全体で「JITの魔法の本」が広まりました。 やがて、アリスは王国のプログラミング大会で優勝し、JITの魔法の本の力をさらに広めることになりました。彼女は「JITの守護者」として称えられ、プログラミング王国はかつてない繁栄を迎えました。 アリスはいつも心に誓いました。どんなに強力なツールも、それを使う人々の努力と情熱があってこそ、本当の力を発揮するのだと。彼女の言葉は次世代のプログラマーたちに伝わり、JITの魔法の本は永遠に受け継がれていくのでした。 前回のあらすじ。 Python count

                                                                            高速化のエンジニアリング。注文してから0.722秒。100倍速いぞ!Python : 75.884 C++ : 3.392   JIT Python : 0.722 JITコンパイラで高速化されたコードを自動生成するツール。 - Qiita
                                                                          • WebAssemblyでの機械学習モデルデプロイの動向

                                                                            本記事はMLOps Advent Calendar 2020の 2 日目の記事です。 WebAssembly(Wasm)は機械学習モデルをデプロイする新たな手段になりうるでしょうか。 この記事では、機械学習モデル(特に Deep Learning)を Wasm でデプロイする周辺技術の動向や内部の仕組みをざっくりと説明します。 Table of Contents tkat0 です。WebAssembly(Wasm)面白いですね。 私も最近はyewでフロントエンドを書いて遊んでいます。Rust で React っぽいことできるのは新鮮で面白いです。 Wasm は、なんとなく速い JavaScript?とか機械学習で何に役立つの?とか思ってる方も多いと思います。 しかし、Wasm はブラウザでの推論時に使えるだけでなく、機械学習モデルのサービングやエッジデバイスでの推論にも使えると知ったら驚き

                                                                              WebAssemblyでの機械学習モデルデプロイの動向
                                                                            • Rustを使ってスケーラブルなプログラムを書く方法 - かとじゅんの技術日誌

                                                                              この記事はRust Advent Calendar 2021の12/24日の記事です。 仕事ではScalaを使っていますが、趣味のプログラミングではRustで書いたものが増えました。Rustは楽しいですね。 今回は、Rustでオブジェクト指向プログラミングに関数型デザインを導入することで、スケーラブルなプログラムを書く方法(スケーラブル・プログラミング)について書きます。 「スケーラブル・プログラミング」といえばScalaです。Scalaの「スケーラブル」という言葉には「小さいプログラムも大規模なプログラムも同じ概念で記述できるべきである」という、柔軟性や拡張性を重視した設計の意図が込められています。それを実現するために必要なものは、オブジェクト指向と関数型を組み合わせたマルチパラダイムな設計です。 Scalaはマルチパラダイム言語の先駆者(今も先頭を走り続けています)ですが、他の言語にも

                                                                                Rustを使ってスケーラブルなプログラムを書く方法 - かとじゅんの技術日誌
                                                                              • WebAssembly の過去・現在・未来 - Qiita

                                                                                はじめに WebAssembly (略して Wasm) では WASI や WIT、 Component Model など様々な仕様があります。 それぞれが登場した背景、モチベーションなどを理解することでなんとなく概要を掴んでいくことができるのではないかと考えたため、過去・現在・未来と時間軸で整理してみました。 まず Wasm とその特徴に関して簡単に紹介した後、Wasm の過去として生まれた背景やモチベーションを紹介します。 そして現在の Wasm がなぜ注目を集めているのか、そして現在策定中の仕様と目指している未来について紹介します。 WebAssembly とはなにか WebAssembly はスタックベースの仮想マシン用バイナリ命令フォーマットの仕様です。Wasm と略されます。 Wasm ファイル(Wasm モジュール)は一般に .wasm という拡張子で表されるバイナリファイル

                                                                                  WebAssembly の過去・現在・未来 - Qiita
                                                                                • 2021年4月15日 パニックお断り―Linus、"Rust for Linux"の盛り上がりに釘を刺す | gihyo.jp

                                                                                  Linux Daily Topics 2021年4月15日パニックお断り―Linus、"Rust for Linux"の盛り上がりに釘を刺す 開発者の間で人気上昇中のRustだが、Linuxカーネル開発においても1年ほど前からメインラインでのRustサポート―新たにデバイスドライバを記述する言語としてRustを認めるよう求める声が強くなりつつある。3月にはカーネル開発者のMiguel Ojedaが最初の"Rust for Linux"となるパッチをlinux-next(次期カーネルへのマージを希望するパッチが集められたGitリポジトリ)にポストし、Stephen Rothwellによってマージされた。 kernel/git/next/linux-next.git - The linux-next integration testing tree Ojedaはさらに一歩踏み込んだステップとし

                                                                                    2021年4月15日 パニックお断り―Linus、"Rust for Linux"の盛り上がりに釘を刺す | gihyo.jp