Ask me anything

For real. Ask. Anything.

Write a comment and I’ll add the question and the answer to this post. Comments can be anonymous, and even if you put your email I don’t store it anywhere, it’s only used for avatars (using Gravatar).

What’s your favourite book?

“Fingersmith” by Sarah Waters. There is an amazing screen adaption as well, directed by Park Chan-wook.

For someone interested in getting into Plan9/9front, where would you recommend they start?

Definitely the fqa first when it comes to installation and usage. qwx’s posts and sl’s stuff might be useful too. Then there are several groups that you can join to get some grasp of what’s cookin’, maybe learn something and get answers, which are 9gridchan, 9fans discord and #cat-v on freenode (I am not a member of discord nor #cat-v anymore).

How would I start C programming from a JavaScript/Python background?

Seems like most people do that by reading K&R, so I’d say that’s the way.

K&R cover

I like 9front and plan9 and I want to use it as my daily driver. It is really distraction free and wonderful. However, my daily work involves doing something on a GNU/Linux box and use programming languages whose implementations are not in 9front. Long term, perhaps 9front would become popular enough that someone would port language runtimes into it. But what are any short term solutions to deal with this “mismatch”?

tl;dr use both GNU/Linux and 9front.

There are a few ways to go here, listed in no particular order.

All these options may involve connecting to GNU/Linux using a combination of ssh(1) and vt(1) in a script like so:

#!/bin/rc
vt -rab 'ssh -r <LINUX_HOSTNAME> tmux new-session -A -s 9front'

I myself use 9front running in a VM on OpenBSD or another one running on a desktop (when I have access to it) to write code (eg Java or Haskell). The idea is to use 9front as a full blown development environment.

What are your recommended programming books besides K&R?

Definitely SICP for programming in general. Learn you a Haskell might be worth a try even if you don’t plan to program in Haskell later, it might teach many functional programming aspects.

Why is C your preferred language?

It’s very simple and provides a lot of freedom (including the freedom to shoot yourself in the foot ofc). It’s fast to (cross)compile programs in C, on any platform. Plan 9 C specifically is much better standard library-wise than POSIX so that is also a factor.

How did you get skilled with C? Was it constant practice? Going to C for solutions for problems?

It was constant practice and my work involved a lot of low level embedded programming so that helped as well. Later on switching to backend development made me keep C as my hobby and as a refuge for my mind of some sort, where I don’t have to deal with the “amazing technology” of today.

Now when I want to do anything I evaluate the possibility of doing that in 9front, and if it requires writing a new program there is a high chance I’m going to do that, and it will be in C.

What tips and tricks would you recommend to someone wanting to improve their C skills beyond what you wrote previous.

There is really not much to recommend beyond writing a lot of C, trying different solutions to the same problem to figure out the ones you like the most. One (perhaps uncommon) suggestion I have though: learn one functional programming language, it will help you reason better and might even change the way you write C a bit (to the better).

What do you do for work?

Mostly writing backend services in Go atm.

Why did you close down your Spotify account?

I don’t want Spotify to become The Music just as I don’t want Google to become The Internet, it’s not a good place. It’s impossible for small artists to get paid for their art on platform like Spotify. I want to be able to pay the artist for something I genuinely like, and so far the best way to do that was to buy their music in physical form (vinyl, tapes) or get their merch. Even downloading tracks in high quality from Bandcamp is better than nothing (Spotify).

Spotify desktop application degraded significantly over the years, to the point of being absolutely unusable. Using it with your local tracks is just terrible. There is no way to run Spotify on any low resource platforms like Raspberry Pi unless you’re willing to use unofficial clients that might stop working at any point because the company will just feel like dropping support for yet another protocol for no apparent reason.

Do you like reading fiction? What’s your favorite genre?

I do, but very selectively. Considering the skew, I’d say horror fiction would be my favorite genre.

Who would win in a fight?

A black hole would win any fight.

What forums, if any, do you frequent?

None anymore. Perhaps Mastodon is the closest to forums that I still read. Otherwise I prefer online chat with specific groups of people.

What do you like and dislike about living in Sweden?

I like the nature, the air. Not so much the cold that lasts for too long.

I love Allemansrätt because I like being outdoors a lot.

I’m not a huge fan of the language. I hate Swedish politics, racism (yes it’s all there, despite someone telling you otherwise) and white-cis-centristic ignorance. Swedish laws regarding any mind-altering substances (such as alcohol as well) and snus do not make any sense whatsoever. I only have hope for younger generations.

Have you tried learning Colemak or Dvorak?

No. I want to get a grid layout keyboard and experiment a bit though.

Like who? (“Otherwise I prefer online chat with specific groups of people.”)

9gridchan. Topics do not necessarily include Plan 9 at all times.

Can you touch type?

Yes. With Swedish and Russian layouts.

What font is in this picture

It’s VGA. Default font in 9front.

If you’re dealing with a problem you can’t solve, and you hit a wall, how do you overcome? How do you get unstuck?

I usually switch to something else (for a few days perhaps), then try again. That clears up the mind from the past assumptions and forces me to kind of “restart” so I might notice something new (or old, if that’s a bug lol).

What are some items you’d consider BIFL (Buy It For Life)?

A stand mixer, coffee grinder, coffee maker, analog camera, amplifier.

What are some of your favorite programming books?

Do you play any video games? If so, what are your favorites?

I’d say most favourite would be BioShock series. In general I play(ed) shooters mostly, so the list is long. Quake 1 and 2 are great, Half-Life 1 and 2, Unreal Tournament 99, Left For Dead 2, RTCW.

Beyond shooters I really liked Warcraft 2 and Starcraft, Don’t Starve Together, Need For Speed Underground.

What are your favorite board games?

Backgammon, Barjis (Syrian version of Pachisi), Clue, Luxor, Game of Thrones, of the ones I have.

What does your work station and bedroom look like?

Work station

You mentioned you do back-end development. Are you working mostly in Go? How do you like it? It’s no C, but is it worth learning?

Yeah, I write a lot of code in Go. I’m not a huge fan tbh (after going through functional programming) but then again I’d pick Go over any JVM-based one. It is worth learning. It’s very simple and prototyping anything in it is very fast.

Thoughts on Rust? Is it a meme, or do you think it’s worth learning?

No.

On a more serious note:

If your work requires very fast and low resource applications running natively and there is absolutely no way you want to do it in C or Go, sure, try Rust. Otherwise: just say no.

Reason to use Rust: if you want to become popular and get lots of stars on GitHub, followers on Twitter etc etc, start doing useless rewrites and periodically post “C is insecure!”-style “infosec”-kind of quotes on social media. That seems to work for many people. And please don’t forget to use an anime girl avatar, that is very important.

Rust in a nutshell

From your “C code” post: “The shorter the code, the better. Code is read more often than is written.”; how do you define code?

Instructions given to the computer, either through a compiler or interpreter or anything else, to be executed.

Can you explain what’s good about functional programming, without the usual pitfalls? (link contains an example of “usual pitfalls”.)

I’m not sure I’m good at explaining that, but here we go. With functional programming you (usually) don’t care about the “global state”, as there is none. Every function’s result depends only on the arguments passed to it. Types in functional programming language like Haskell and OCaml won’t let you add strings with numbers, or integers with fractions, they won’t let you have a basic list with values of different types. These languages have strong type systems that do not allow common mistakes that many other PLs do. There are no pointers like in C, no NULL or nil, no memory (de)allocation, ie less things to care about. No sudden “goto” or “return” or “continue” in random places inside a function, the code flow is top-to-bottom.

In functional programming you can combine functions together into new ones. You can pass some of the arguments to get another function: f(x,y,z)g(z) = f(2,3,z), so you call g(4) instead of f(2,3,4).

Why are name and email is optional, but comment is not?

If there is no comment, it’s not really a comment.

What do you think about Urbit?

I haven’t dived into that, but looks a bit too isolationist for my liking. Looking at who was involved from the start doesn’t make it any better.

Playing with 9front in VM, it seems awesome and fun, but as a developer, how do manage with just sam and acme? Not trying to be the Vim snob/tiling WM guy meme, but, besides window management with rio (which seems intuitive and flexible enough), it seems exceedingly laborious to have to constantly reach for the mouse for editing and navigation? Do you have tips? Has some mad genius come up with a Vim-like/movement-based plugin for the standard kit?

Sam has a few things that most people might be missing as it was added later to 9front but never existed in any other variants. Namely C-b (I added it in 2014) to go to command window, C-g to focus on text window (and switch between zeroxed windows), _ and ^ to provide some kind of IDE-like fast shortcuts (added this in 2014 as well). This does save quite a lot on mouse movement and typing. Sometimes I do C-a and left or C-e and right to quickly go to next line but apart from that I didn’t feel the need to add more shortcuts to avoid mouse use. I use a trackpoint on my laptop so I might be a bit biased here, but I use a mouse on my desktop as well, and although it’s not as fast as with a trackpoint, I got used to it.

There is also vim port that is available through “ports” (which I never used myself).

When it comes to rio, I always felt fine with that one, but have been missing on some stuff so made riow to keep as many windows as I want without having to resort to nested rios nor winwatch.

How do you decide which programming language is right for a job? If you could write something in C that could be done in Python, do you often opt to go with C? What’s the thinking behind that?

If something is one-time write and use, or a internet-facing server, I pick Go. If it’s something very simple and can be done with a small shell scripts, I use sh or rc. Otherwise (beyond rare exceptions) it’s always C for me. Considering it’s specifically 9front’s C, things are very easy.

I see you dropped off mastodon, and I read your blog post. I will miss our occasional conversations about FAUST, 9front, C, and music in general. IRC has never stuck with me. do you have an email I can use to ping/bother you occasionally?

Hi! My email is ftrvxmtrx at gmail, feel free to bother :)

Why did you leave mastodon? Where you are hanging out now?

Somewhat explained here.

tl;dr I got sick of the way Mastodon and other social networks feel empty and emotionless, and full of self-promotion and “I’m gonna start talking about it because it’s popular to talk about!”.

I’m hanging out on #merveilles at freenode and 9gridchat.

“Otherwise (beyond rare exceptions) it’s always C for me.”. What’s an example? It seems like most tasks can be accomplished with Go.

Anything for Plan 9. Go feels very much alien on Plan 9, especially when it comes to anything UI-based, which is what I’m doing these days mostly.

How did you learn about plan9? What was your experience when you started with it?

Years ago (probably somewhere in 2007-2008) one of my friends showed me Plan 9. I didn’t get into it at the time, can’t remember the reason really. After that I successfully forgot its existence until the message of uriel’s passing in go-nuts mailing list. That was 2012. Then I discovered cat-v and 9front and on it went.

First I ran it in QEMU, but at some point switched to native after figuring out I could actually fix things that didn’t work natively. After a bit of acme I switched to sam, which I’m still using.

Can you post a screenshot of your desktop? Both OpenBSD and 9front.

9front

OpenBSD

OpenBSD usually has drawterm running in fullscreen mode, so…

Where in the world do you want to live?

First, Bristol. Then New Zealand (NOT in a big city).

Which places do you want to travel to?

Galaxy far far away… To be honest, Greenland, Iceland, South Pole, Japan, New Zealand.

And where do you want to NEVER go?

USA, UAE, Russia.

Which text editors do you used before Sam/Acme?

I was a hardcore user of Emacs. My config file was compiling itself for fast loading.

How did you learned Go? What book do you recommend?

Same way as C, I didn’t read any books, just started writing the stuff I need in it.

How do you take notes? How do you organize your time? Do you use any computer program for scheduling/taking notes/organize yourself?

I use a square-ruled notebook to organize my thoughts when I’m working on something complex. I put various events onto a whiteboard because there is no way I’m gonna remember them otherwise. I add alarms on my phone to remind of things.

I don’t use the computer to organize myself.

What languages do you speak? What languages do you want to learn?

English, Russian, Belarusian, a bit of Swedish. I might understand a few more, but can’t really speak.

I’d like to learn German, Italian, Japanese and Māori.

What programming languages do you know? What programming languages do you want to learn?

C, Go, Erlang, OCaml, Haskell, Forth, Scheme, awk, z80/mips/amd64/m68k assembly, Faust, ChucK.

It’s 2am and I have nothing to do but asking you stuff. Am I annoying you?

May I suggest going to sleep instead? :D

Not annoyed at all.

How are you doing?

I’m fine! Busy with stuff a lot lately, not as much social, though. shrugs

Last update: November 17, 2020 10:57PM

anonymous
May 23, 2020 03:48PM
What's your favourite book?
anonymous
May 24, 2020 09:51PM
For someone interested in getting into Plan9/9front, where would you recommend they start?
nue
May 27, 2020 04:25PM
How would I start C programming from a JavaScript/Python background?
anonymous
June 01, 2020 08:36AM
I like 9front and plan9 and I want to use it as my daily driver. It is really distraction free and wonderful. However, my daily work involves doing something on a GNU/Linux box and use programming languages whose implementations are not in 9front. Long term, perhaps 9front would become popular enough that someone would port language runtimes into it. But what are any short term solutions to deal with this "mismatch"?
anonymous
June 04, 2020 04:44PM
A few for you:

1. What are your recommended programming books besides K&R?

2. Why is C your preferred language?

3. How did you get skilled with C? Was it constant practice? Going to C for
solutions for problems?

4. What tips and tricks would you recommend to someone wanting to improve their
C skills beyond what you wrote previous[1].

5. What do you do for work?

6. Why did you close down your Spotify account?

[1]: https://ftrv.se/3
anonymous
June 05, 2020 10:32PM
Do you like reading fiction?

What's your favorite genre?
anonymous
June 05, 2020 11:45PM
Who would win in a fight?
anonymous
June 06, 2020 12:14AM
What forums, if any, do you frequent?
anonymous
June 06, 2020 08:23AM
What do you like and dislike about living in Sweden?
anonymous
June 07, 2020 02:39AM
Have you tried learning Colemak or Dvorak?

> Otherwise I prefer online chat with specific groups of people.

Like who?
anonymous
June 10, 2020 01:10AM
Can you touch type?

What do you do when you are stuck?
anonymous
June 10, 2020 05:51AM
What font is in this picture: https://ftrv.se/_/theme.png
anonymous
June 10, 2020 03:55PM
What I mean by "stuck" is, if you're dealing with a problem you can't solve, and you hit a wall, how do you overcome? How do you get "unstock?"
anonymous
June 11, 2020 06:32PM
What are some items you'd consider BIFL (Buy It For Life)?
anonymous
June 13, 2020 07:06AM
What are some of your favorite programming books?
anonymous
June 14, 2020 01:11AM
do you play any video games? if so, what are your favorites?
anonymous
June 15, 2020 05:23PM
what are your favorite board games?
anonymous
June 17, 2020 05:52PM
What does your work station and bedroom look like?
anonymous
June 21, 2020 07:19AM
You mentioned you do back-end development. Are you working mostly in Go? How do you like it? It's no C, but is it worth learning?
anonymous
June 24, 2020 06:45AM
Thoughts on Rust? Is it a meme, or do you think it's worth learning?
anonymous
July 01, 2020 09:19PM
Q1: from your "C code" post: "The shorter the code, the better. Code is read more often than is written."; how do you define code?

Q2: Can you explain what's good about functional programming, without the usual pitfalls? (https://prog21.dadgum.com/67.html contains an example of "usual pitfalls".)

Q3: why are name and email is optional, but comment is not?
anonymous
July 07, 2020 11:43PM
What do you think about Urbit?
pixelheresy
July 10, 2020 04:24PM
Playing with 9front in VM, it seems awesome and fun, but as a developer, how do manage with just `sam` and `acme`? Not trying to be the Vim snob/tiling WM guy meme, but, besides window management with `rio` (which seems intuitive and flexible enough), it seems exceedingly laborious to have to constantly reach for the mouse for editing and navigation? Do you have tips? Has some mad genius come up with a Vim-like/movement-based plugin for the standard kit?
anonymous
July 28, 2020 07:27PM
How do you decide which programming language is right for a job? If you could write something in C that could be done in Python, do you often opt to go with C? What's the thinking behind that?
pbatch
August 01, 2020 03:12PM
I see you dropped off mastodon, and I read your blog post. I will miss our occasional conversations about FAUST, 9front, C, and music in general.

IRC has never stuck with me. do you have an email I can use to ping/bother you occasionally?
anonymous
August 25, 2020 04:16AM
Why did you leave mastodon? Where you are hanging out now?
anonymous
August 25, 2020 04:17AM
> Otherwise (beyond rare exceptions) it’s always C for me.

What's an example? It seems like most tasks can be accomplished with Go.
Hieu
September 02, 2020 12:02AM
How did you learn about plan9? What was your experience when you started with it?
anonymous
September 24, 2020 06:02AM
Can you post a screenshot of your desktop? Both OpenBSD and 9front (and any other system you're using). You can fake a busy workflow by opening any number of applications you want.
anonymous
September 24, 2020 06:05AM
Where in the world do you want to live? Which places do you want to travel to? And where do you want to NEVER go?
anonymous
September 24, 2020 06:07AM
Which text editors do you used before Sam/Acme? What do you think about vim/vi and emacs?
anonymous
September 24, 2020 06:10AM
How did you learned Go? What book do you recommend?
anonymous
September 24, 2020 06:18AM
How do you take notes? How do you organize your time? Do you use any computer program for scheduling/taking notes/organize yourself?
anonymous
September 24, 2020 06:20AM
What languages do you speak? What languages do you want to learn?
anonymous
September 24, 2020 06:21AM
What programming languages do you know? What programming languages do you want to learn?
anonymous
September 24, 2020 06:22AM
It's 2am and I have nothing to do but asking you stuff. Am I annoying you?
anonymous
November 12, 2020 03:42PM
How are you doing?
Leave a comment. Email addresses are not stored.