flak rss random www

making bad coffee

I used to drink coffee for the sake of drinking coffee. In recent years I mostly switched to drinking coffee for the sake of going out and having something to do. Since I no longer go outside and there’s nowhere to go anyway, I have stopped drinking coffee, but since I’ve been spending so much time inside peering into my pantry, I found a bag of coffee from the before times and thought I’d have some fun.

more...

Posted 19 Apr 2020 11:05 by tedu Updated: 19 Apr 2020 11:05
Tagged: food

embedding binary objects in c

You have a blob of some data which you would like to embed into your C program. Perhaps a splash screen, or a special font, firmware for your scsi card, or whatever. The usual approach which I think most people are familiar with is to run something like xxd -i to generate a source file with a large array of hex constants. Or write your own little script for that purpose.

more...

Posted 16 Apr 2020 11:02 by tedu Updated: 16 Apr 2020 11:02
Tagged: c programming

a month with the pixel slate

I was supposed to be spending the past month or so traveling. That didn’t go quite as planned, but I nevertheless spent some time preparing for the trip, and as part of that, set up a Google Pixel Slate to take along. Even though I didn’t actually complete the experiment, most of the effort was validating it could work, and I think it would have been fine.

more...

Posted 09 Apr 2020 13:50 by tedu Updated: 09 Apr 2020 13:50
Tagged: computers software

virtualization in windows

My Windows desktop has a Threadripper CPU with a few cores. Maybe I could I get a bit more utilization out of it with virtualization. Or maybe, given the frequency with which attacks target Windows, I could use virtualization to increase security. Let’s see how that goes.

more...

Posted 06 Apr 2020 07:45 by tedu Updated: 06 Apr 2020 07:45
Tagged: rants software

reliverator

Sometimes I want to send some mail. Sometimes I want to receive some mail. (Much less often than it typically happens, as it were.) But mostly I want to not think too much about it.

Alas, the history of email is rife with people thinking about it, and inventing new problems for their solutions. My needs are much simpler than that. I want to have email that arrives at port 25 go in my maildir. I want email that I send to port 587 to go wherever it should go. That’s about it. I don’t need fancy filtering before it goes in the maildir; I can always do that later. I don’t need fine grained authentication to send; it’s my computer, if I want to send it I’m going to send it.

But nobody makes a mail server just for me. The self hosted email market is kinda small already, because Big Evil has decided that’s bad for you, but it’s also quite a chore just reading the documentation for even simple server setups. How about an smtp server that doesn’t require documentation because it doesn’t have any features? If it doesn’t do anything, it can’t do anything wrong.

Enter the reliverator. It receives email. It delivers email. It’s a deliverator, not written in D.

When an email is received, it goes in the user’s maildir. If there is no maildir, it doesn’t.

When an email is submitted, it goes in the database until it goes somewhere else. There’s no access control because it only listens on localhost and I’ve already got an ssh tunnel open from my laptop.

Mostly I just wanted to see how hard can it possibly be. And after some bludgeoning and tear soaked stackoverflow copy pasta, it kinda came together. There’s a fine mess of a little of everything. It’s about 25% unsafe, though that’s not the part that worries me most. I even used some tokio for bonus points, though it seems overkill for sending and receiving a single UDP packet, but I don’t pack the crates.

If I really wanted to write an smtp server, I’d have made some very different decisions.

Posted 01 Apr 2020 07:25 by tedu Updated: 01 Apr 2020 07:25
Tagged: project software

rethinking openbsd security

OpenBSD aims to be a secure operating system. In the past few months there were quite a few security errata, however. That’s not too unusual, but some of the recent ones were a bit special. One might even say bad. The OpenBSD approach to security has a few aspects, two of which might be avoiding errors and minimizing the risk of mistakes. Other people have other ideas about how to build secure systems. I think it’s worth examining whether the OpenBSD approach works, or if this is evidence that it’s doomed to failure.

more...

Posted 31 Mar 2020 04:20 by tedu Updated: 04 Apr 2020 09:15
Tagged: openbsd programming security thoughts

proto retro ripper

I built a Ryzen system and setup an Epyc server. But something was missing. What could it be? Let’s build a new gaming PC to find out.

more...

Posted 11 Feb 2020 13:09 by tedu Updated: 12 Feb 2020 05:40
Tagged: computers

real world crypto talks

Real World Crypto 2020 was last week. It’s a conference I like because the talks are usually pretty interesting. The crypto talks have real world applications and the real world application talks have crypto. Afterwards, there’s usually not just something to be learned, but something to be done. I didn’t actually attend every talk, but here’s some notes.

more...

Posted 14 Jan 2020 18:13 by tedu Updated: 15 Jan 2020 04:46
Tagged: event software thoughts

putting stuff in a proliant dl325

I have an old server, but it’s about ten years old, and I’ve been a really good boy this year, so I demanded Santa replace it. Actually, I built a Ryzen desktop and it was kinda cool, so I figured I need an Epyc server to match. Just a question of which one and what to put in it. For background, the current server is an old ebay sourced 8x Xeon with 8GB RAM Dell. It’s actually pretty adequate, but OS upgrades require I put shoes on and walk across town to the data center. I’ve been thinking about a virtualized base to make that easier and faster.

more...

Posted 19 Dec 2019 15:38 by tedu Updated: 19 Dec 2019 15:48
Tagged: computers review

go regexp.Replace notes

I had some code which did some repeated regexp.Replace operations. This is not the best way to do things, but it worked. It wasn’t noticeably slow, but just from inspection there’s some inefficiencies. It’s possible to speed to things up without rewriting it substantially, at some cost to clarity.

more...

Posted 02 Dec 2019 11:39 by tedu Updated: 02 Dec 2019 11:39
Tagged: go programming