2015-11-09 Tweets

2015-11-08 Update

I have been traveling for work, but now I am back.

I did some work on the Groovy Mail Server. I am ready to start working on sending mail. I will have to look into authentication, which will complicate things a lot.

I am thinking about going forward with a Grails 3 tutorial.

I am thinking about looking more into Common Lisp/Racket/Scheme/Clojure. I know a lot of the pragmatic programming crowd says you should learn a language every year, I am starting to question that. It seems like languages in the C/C++ family are moving more towards Lisp and Smalltalk. Why not just learn those and be done with it?

You’re welcome.

Update On Groovy Email Server 002

Here is another update on the Groovy Email Server.

After I made the last update, it stopped working. For some reason, I could retrieve messages in Alpine, yet not look at the bodies of the messages. I could view the headers. I was able to figure it out, and now I can retrieve the messages in Alpine again.

I send myself a message with a text file as an attachment, and I was able to save it.

I also tagged the git repo. I did not tag it the last time I posted, so I wasted some time downloading old versions from github to see when things were okay.

For some reason, I cannot retrieve the messages with Thunderbird. I will try another client later.

You’re welcome.

Update On Groovy Email Server

I know I said I was going to shelve the Groovy Email Server. Instead, I kept working on it. I will probably keep at it until I get it to a semi-finished state. Right now it is in a semi-semi-finished state.

Right now I have implemented most of RFC 1939 (POP3) and RFC 5231 (SMTP). (I do not plan on implementing RFC 3501 (IMAP).) I can send email from another account to my GES, and I can retrieve them locally using Alpine. So far I would call it pretty successful.

I have not tried to retrieve messages with attachments. I have not looked at RFC 5232 (Internet Message Format), which may cause problems down the line. I have not tried to send messages while logged into Alpine.

I have written this using PostGres. I have the tests actually writing to the database. I know a lot of test purists will object, but I saw an article linked from Hacker News: Don’t test with SQLite when you use Postgres in Production. One of the comments was a quote (supposedly from NASA): Test what you fly, fly what you test. Maybe it’s not the absolutely best way to test and develop, but as Voltaire wrote: Do not let the perfect be the enemy of the good.

I have to update the README on github. I think I will try to get it to a point where I can also send from Alpine. I might go further than that, and try to get it to the point where I can replace my Apache James server. We shall see.

You’re welcome.

Shelving Groovy Mail Server

I am shelving the Groovy Mail Server for the time being.

I did not think it would be easy, but it is turning into a lot more work than I thought. I am also having issues with some stuff in Postgres. I want to learn Clojure, and lately I have been getting impatient to do something there. There seems to be more activity in the Clojure community, and I think the Clojure job market will hit a critical mass faster than Groovy will. I think I might start with the tutorial on the Luminus site.Besides, I am more likely to get a job making web apps than writing mail servers.

Granted, I said a few times I was done with Groovy Validators, and then later I came back and improved it.

You’re welcome.