/etc/rc.conf.local
apmd_flags="-A"
dhcpd_flags=vether0
vmd_flags=
ntpd_flags="-s"
// Parts from Ace; see <https://raw.githubusercontent.com/ajaxorg/ace/master/LICENSE> | |
CodeMirror.defineMode("perl6", function(cmCfg, modeCfg) { | |
// Fake define() function. | |
var moduleHolder = Object.create(null); | |
// Given a module path as a string, create the canonical version | |
// (no leading ./, no ending .js). | |
var canonicalPath = function(path) { | |
return path.replace(/\.\//, '').replace(/\.js$/, ''); |
(* Good morning everyone, I'm currently learning ocaml for one of my CS class and needed to implement | |
an avl tree using ocaml. I thought that it would be interesting to go a step further and try | |
to verify the balance property of the avl tree using the type system. Here's the resulting code | |
annotated for people new to the ideas of type level programming :) | |
*) | |
(* the property we are going to try to verify is that at each node of our tree, the height difference between | |
the left and the right sub-trees is at most of 1. *) |
# Assuming you're a regular user that has doas allowances for vmctl | |
mkdir -p ~/vmm | |
cd ~/vmm | |
# Grab the the one of the virt iso's of Alpine Linux | |
curl https://nl.alpinelinux.org/alpine/v3.6/releases/x86_64/alpine-virt-3.6.0-x86_64.iso -o alpine-virt-3.6.0-x86_64.iso | |
# Make a new virtual disk image, change the size as needed | |
vmctl create alpine-virt.img -s 6G |
(require '[cemerick.url :as url] | |
'[clojure.spec.alpha :as s] | |
'[clojure.spec.gen.alpha :as gen] | |
'[clojure.string :as string]) | |
(def non-empty-string-alphanumeric | |
"Generator for non-empty alphanumeric strings" | |
(gen/such-that #(not= "" %) | |
(gen/string-alphanumeric))) |
This document was originally written several years ago. At the time I was working as an execution core verification engineer at Arm. The following points are coloured heavily by working in and around the execution cores of various processors. Apply a pinch of salt; points contain varying degrees of opinion.
It is still my opinion that RISC-V could be much better designed; though I will also say that if I was building a 32 or 64-bit CPU today I'd likely implement the architecture to benefit from the existing tooling.
Mostly based upon the RISC-V ISA spec v2.0. Some updates have been made for v2.2
The RISC-V ISA has pursued minimalism to a fault. There is a large emphasis on minimizing instruction count, normalizing encoding, etc. This pursuit of minimalism has resulted in false orthogonalities (such as reusing the same instruction for branches, calls and returns) and a requirement for superfluous instructions which impacts code density both in terms of size and
Get ON my lawn is a software philosophy that believes good software grows better with time.
Get on my lawm shuns trends and salesmen disguised as programmers.
Get on my lawn shuns the fancy new framework.
Example session:
2+3
Result: 5₁₀
5d
Result: 5,00:00:00 = 5.000000 days
120:00:00 = 120.000000 hours
This is a collection of the things I believe about software development. I have worked for years building backend and data processing systems, so read the below within that context.
Agree? Disagree? Feel free to let me know at @JanStette.
Keep it simple, stupid. You ain't gonna need it.