310 karma · joined January 14, 2011
Similarly a fascist is someone that believes in the fascism ideology. That's just how these words work.
The size and complexity of UIs have a natural limit because of screen size and usability, but the amount of data you use to generate a UI has essentially no natural upper limit.
Pete Hunt gave a talk on exactly this almost two years ago. https://www.youtube.com/watch?v=-DX3vJiqxm4
Since the highway will only reduce traffic congestion for a short time it's something you can sell to the voters again at the next election.
You need to be able to push email status changes out to connected devices, I don't want an alert for an email on phone if I've already read it on my laptop.
You need decisions around how attachments are stored. Most of the time you'll want to store the attachments separately from the text content of the email so clients don't have to download the attachments to access the text, so you'll need to decide on how this location would be communicated to a client.
Plain files are rather bad for multi-user access, if you have multiple users/devices all accessing the same email they're going to need some protocol for synchronization so you don't get data corruption or lost changes.
I can barely read this: void (signal(int, void (fp)(int)))(int);
I can read this easily: func signal(int, func(int)) func(int)
The future of computing is not this horrible kludge.
The reason programming languages exist is to simplify the language used to describe things so they can be interpreted without too much additional context and unambiguously.
Most of the rest of the CPU design is really just to enable this.
It's important to note that Go doesn't allow you to define type aliases. Embedding is the closest you get.
Say you have a type that implements the io.Reader, io.Writer, io.Closer and io.Seeker interfaces, eg. an os.File. This type would also automatically implement io.ReadCloser, io.WriteCloser, io.ReadWriter and io.ReadWriteCloser, io.ReadSeeker, io.ReadWriteSeeker, io.ReadWriteSeekerCloser, io.WriteSeeker, io.SeekCloser etc.