Skip to content

Instantly share code, notes, and snippets.

View fastmail-jmap-quickstart.js
const fetch = require('node-fetch');
async function run() {
let username = "YOUR USERNAME HERE";
let password = "YOUR APP PASSWORD";
let authBasic = new Buffer(username + ':' + password).toString('base64');
let session = await (await fetch('https://jmap.fastmail.com/.well-known/jmap', {
headers: {
"Authorization": "Basic " + authBasic
}
})).json();
@jvns
jvns / interview-questions.md
Last active May 6, 2021
A list of questions you could ask while interviewing
View interview-questions.md

A lot of these are outright stolen from Edward O'Campo-Gooding's list of questions. I really like his list.

I'm having some trouble paring this down to a manageable list of questions -- I realistically want to know all of these things before starting to work at a company, but it's a lot to ask all at once. My current game plan is to pick 6 before an interview and ask those.

I'd love comments and suggestions about any of these.

I've found questions like "do you have smart people? Can I learn a lot at your company?" to be basically totally useless -- everybody will say "yeah, definitely!" and it's hard to learn anything from them. So I'm trying to make all of these questions pretty concrete -- if a team doesn't have an issue tracker, they don't have an issue tracker.

I'm also mostly not asking about principles, but the way things are -- not "do you think code review is important?", but "Does all code get reviewed?".

@jvns
jvns / kernelfuntalk.md
Last active Mar 13, 2021
You can be a kernel hacker
View kernelfuntalk.md

Hello!

Did you see my talk at CUSEC? If you're interested in hacking on the Linux kernel, here are some more resources! If you have suggestions for learning about OS X or Windows, or you're interested in learning about BSD, let me know!

Reading kernel code:

@jvns
jvns / examples.md
Last active Feb 28, 2021
Rust examples
View examples.md

Strings

The std::str documentation is also quite good.

// Create a string from a literal
let hello: &'static str = "Hello!";
let hello2: &str = "Hello!";
View Makefile
obj-m += rootkit.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
@jvns
jvns / Makefile
Created Oct 8, 2013
A simple kernel module that printk's "Hello, packet" when it intercepts a packet. Uses netfilter.
View Makefile
obj-m += hello-packet.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
View things_i_don't_know.md

things I don't know

I took this list from What CS majors should know.

I think it is fun to list things I don't know so I did it =D. I actually found it to be a cool exercise -- maybe I should do a fun graphics project and learn about Open GL!

i wrote this because, while i think the things on this list are potentially worth knowing, and I actually think it's an awesome list of project ideas as well as good food for thought for people developing CS curricula (many of the things I don't know are great exercises!) -- I thought it was really weird to say that every CS student should know all of them. I have a CS degree and I learned very few of the things I do know inside my degree.

I classify "do know" as anything that I have a reasonable grasp of or at least some basic experience with -- the kind of experience I'd expect a CS student to be able to get. If I say I don't know something, it means either I know pretty much nothing about it (for "gr

@jvns
jvns / linkers.md
Last active Sep 9, 2020
Notes on linkers
View linkers.md
View strace-notes.md

Did you see my talk about strace? Do you want to know more? Here's your chance!

If you didn't, and you want to watch it, go watch it! Spying on your programs with strace

more strace resources (Linux-only)