Hello! Tomorrow I’m running a workshop at work about the humble IP address, so here are some notes about IP addresses and how IP routing on Linux works! This came up because someone on my team pointed out that there’s actually a LOT going on with IP addresses even though it seems like a simple concept, and they said they’d like to learn more. Here goes! This post is only about IPv4 because I’ve st
posted by Vincent St-Amour Racket version 7.0 is now available from http://racket-lang.org/ Racket version 7.0 includes substantial internal changes toward the long-term goal of replacing Racket’s current runtime system and supporting multiple runtime systems. We do not expect Racket users to see a big difference between Racket v6.12 and Racket v7.0, but since the internals differ significantly, a
mgsloan 2018-07-28 I'm happy to announce that you can now easily load GHC into GHCi! I've been using this for about a month now, and for me it makes GHC development far more pleasant than using make. This can often lead to iteration times of only 10-30 seconds to try out some modified behavior. For me, GHCi usage is crucial to efficient Haskell development. One larger project I work on takes a who
This blog post is also an IHaskell notebook and the source is available separately. I also did a talk at NYHUG based on this material. I wanted an explanation for HAMTs (Hash Array Mapped Tries) that was more detailed than Marek Majkowski’s introduction and more approachable than Ideal Hash Trees by Phil Bagwell, the paper that introduced them. If you haven’t heard of them before, HAMTs are a way
Posted on July 30, 2018 - Discussion - All posts By Henri Verroken Implementing efficient and fast data structures in Haskell is not straightforward. A functional implementation of an abstract data type is often orders of magnitude slower than an imperative solution that provides the same functionality. This blog post compares several implementations of a concrete and relatively simple abstract da
This is the sequel to Writing An Interpreter In Go. We're picking up right where we left off and write a compiler and a virtual machine for Monkey. Runnable and tested code front and center, built from the ground up, step by step — just like before. But this time, we're going to define bytecode, compile Monkey and execute it in our very own virtual machine. It's the next step in Monkey's evolution
Since I seem to be a one-trick pony, I decided to write yet again to compare streaming data in Haskell and Rust. This was inspired by a cool post I saw on Reddit about converting characters in the Latin alphabet into look-alikes in the Cyrilic alphabet. When reviewing the original code, I noticed that it was reading the full contents of the input into memory. Since I’m somewhat obsessed with strea
ボローチェッカーは、GCに頼ることなくメモリ安全性を保障してくれたりデータレースの不在を保障してくれたりするRustのユニークで有用な機能ですが、現在のボローチェッカーはずいぶん保守的な型検査を行うので、普通に考えるとどう考えても安全なコードが型検査を通せなかったりすることがちょくちょくあります。そんなものの一つとして、今日は二次元配列の要素のswapを考えてみようと思います。
しばらく記事を書いていなかったので久しぶりのポストです さて、僕は1年半くらい前から Docker を使い初めて、今では何かアプリケーションを開発するときは積極的に Docker を使っています Dockerfile で環境構築の手順がそのまま残るし、環境差異を気にしなくて良くなるし、動く状態のプログラムを環境ごと Docker イメージとして扱えるのが最高だと思っています 今回は一度はちゃんと調べておきたいと思っていた Docker が利用しているファイルシステムの仕組みについて書きたいと思います この記事では 1. Docker のファイルシステムに対するざっくりの理解 2. Docker が利用するファイルシステム 3. ソースコードを見てみる 4. まとめ について書きます Docker 入門てきなタイトルですが、Get started みたいなことではなく Docker の使い方
Hi, I’m Mark Nottingham. I write about the Web, protocol design, HTTP, Internet governance, and more. This is a personal blog, it does not represent anyone else. Find out more. Comments? Let's talk on Mastodon. @mnot@techpolicy.social other Standards posts There Are No Standards Police Wednesday, 13 March 2024 RFC 9518 - What Can Internet Standards Do About Centralisation? Tuesday, 19 December 202
Check the BASIC Engine NG page for information on the retired "BASIC Engine NG" bare-metal H3 platform, and the "classic" BASIC Engine page for information on the legacy ESP8266-based BASIC Engine platform. The BASIC Engine RX is a firmware for very low-cost single-board computers with great 2D color graphics and sound capabilities similar to early to mid-1990s computers and video game consoles. I
The Rust team is happy to announce a new version of Rust, 1.28.0. Rust is a systems programming language focused on safety, speed, and concurrency. If you have a previous version of Rust installed via rustup, getting Rust 1.28.0 is as easy as: $ rustup update stable If you don't have it already, you can get rustup from the appropriate page on our website, and check out the detailed release notes f
This blog post is a brief history lesson about the Erlang compiler for the BEAM machine. To provide some context, there will first be a quick look at the abstract machines for Erlang. A brief overview of the early Erlang implementations # The Prolog interpreter # The first version of Erlang was implemented in Prolog in 1986. That version of Erlang was used to find out which features of the languag
WebAssembly is a high-level instruction set enabling developers to easily design computationally heavy programs that may be securely run on web browsers. For many developers, it is a no-brainer that such a secure, high-level, yet performant instruction set has use cases in so many more places outside of the browser. Imagine writing blazing-fast WebAssembly programs running on your smart TVs/fridge
(Note: If you're on the POPL PC, please don't read this post until after your reviewing is done.) It's been over 20 years since Graham Hutton and Erik Meijer wrote their wonderful JFP paper on monadic combinator parsing. Do we need another paper about it? Jeremy Yallop and I think the answer is yes! We have a new draft paper out, A Typed, Algebraic Approach to Parsing. The fundamental issue is tha
A modern web staple. Grain is a new language that puts academic language features to work. Let's Go Powered by WebAssembly Enter the future. Grain compiles directly to WebAssembly, taking full advantage of its speed and efficiency. Sensible Types No runtime type errors, ever. Every bit of Grain you write is thoroughly sifted for type errors, with no need for type annotations. Functional Yet Flexib
warp Over the past several months, I’ve been working a web framework in Rust. I wanted to make use of the new hyper 0.12 changes, so the framework is just as fast, is asynchronous, and benefits from all the improvements found powering Linkerd. More importantly, I wanted there to be a reason for making a new framework; it couldn’t just be yet another framework with the only difference being I’ve wr
Lots of people asked me to write another piece about the internals of well-known Unix commands. Well, actually, nobody asked, but it makes for a good intro. I’m sure you’ve read the previous parts about yes and ls — they are epic. Anyway, today we talk about cat, which is used to concatenate files - or, more commonly, abused to print a file’s contents to the screen. # Concatenate files, the intend
暗号通貨の基盤は暗号の安全性に深く関わる様になり、もはや暗号は特定の人向けの技術ではなく、全ての人にとって基盤となるものになりつつあります。歴史的に暗号の安全性は数理と深く関わってきましたが、この研究は、暗号の安全性を公正に評価する乱数性評価に関わる部分で、長年の懸案であった問題を完全に解決したものと考えます。暗号は一見すると地味ですが、暗号は全ての人に関わる技術と言う意識を持ち、今後も、応用と数理が直結する分野で研究を一歩一歩進めて行きたいと思います。 概要 現在、携帯電話などをはじめ、世界中で標準暗号(AES)が用いられています。このAESが2001年に選定された際、評価ツールとして乱数性評価テストNIST SP 800-22が使われました。ところが、その一つである離散フーリエ変換テスト(DFTテスト)において、系列が乱数であると仮定した時、参照分布が厳密に求まらないと言う致命的な課題
Gamifying propositional logic: QED, an interactive textbook 28 July, 2018 in book, expository, math.LO, teaching | Tags: computer games, logic puzzle | by Terence Tao About six years ago on this blog, I started thinking about trying to make a web-based game based around high-school algebra, and ended up using Scratch to write a short but playable puzzle game in which one solves linear equations fo
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く