Monday, 19 August 2013

Linux species 2013

It is easy to forget that Linux is the kernel and not the whole operating system. That said, colloquially, "I'm using linux" seems to be an acceptable statement. If we look at the computer operating system world as organic, (which I would argue it very much is within the *NIX biome) we can identify which version of linux has evolved to best fill each niche.

I started out using Slackware, (yes it is a point of pride, but the choice had nothing to do with me.) For understanding Linux, just as reading the Lion book explained UNIX Slackware 7, (not sure what the later version are like) or LFS can be a bit of a cold shower of education. Probably very good for you, but no one would chose that if they knew the implications and had the choice, (after the fact, when you have the warm glow of knowledge it seems like _everyone_ should do the same.)

I'm writing this on crunchbang. Just like CFEditor's previous names crunchbang may, with time, come to be known as cb-linux. For the power user it seems to be perfect, but a power user is perfectly capable of working that our for themselves.

So who else is living the linux life? What distro should they be using?

It looks like the desktop/laptop world is moving away from Ubuntu to Mint, (based on my extensive four data point sample set.) The irony of "people giving up on Ubuntu due to Unity", (when you understand the original meaning of the word ubuntu) is funny.

The more I look at this it seems that the best communities gather around one person with one hand-waving idea, "I want it like this" and then others that agree vote with their (digital) feet.

You ask: What rot?

Linux: Linus, Slackware: Patrick, Crunchbang: Philip Newborough (though the crunchbang community itself seems more important now. Talking of which, Muppets: Jim Henson.)

Which leads me to the next question, (though I clearly have not finished the first.) People die, (no that's not a question) so what happens to the community that built up around them?  Well it either crumbles if it is an empire, or incorporates as a sudo-democracy, (or occasionally continues as a dynasty).

We can already see that with CentOS, (see I did go back). So why do I think that CentOS is _THE_ server OS? Because I don't want a homogeneous environment.

We can't all be Debian freaks ;-) Though looking at this trends graph it seems, at first glance that no one is going to be getting freaky by 2020. I think that, just as Google seem to be referring to the Linux under the Android under the hood less and less, Debian is silently under Ubuntu under Linux Mint. Those that we, (as humanity) need to work on Debian don't actually have to talk about it or search via google, anymore than you use a map to get to your office after the first day.

2013 Linux picks by Alexx Roche: {
Server: CentOS, Power-dekstop: Crunchbang, Parents: Linux Mint.
}

What other ecosystems are there that you live in, and which distro would you use?

Tuesday, 6 August 2013

Success! Someone died.

As with Love there are many types [0] of success.

"Success!" can be a deceleration of achieving or a eureka moment.

A company/society/cult/army/family are all demonstrations of the collective limited by the constraints of the system that they are operating within.

The problem with military success is that it is usually built upon the deaths of others, (which no longer seems glamorous or glorious.) Though this is not that interesting to me, ("Do not speak to me of great men for their success is built upon the bodies of thousands"), it is my introduction to the idea of the board-room, (and other office rooms) as war. If we accept corporations as devices to make money rather than conquering people or territory, (though these two would not be totally alien to some corporations), it does seem to look a lot like a type of war.

The interesting thing is merging research into ethics, (another of my interests): As a hypothesis, "The more successful individuals within a corporation are inherently less ethical" seems to be showing positive results from tests. [1] So where success is simply the massive accruement of money or wealth, once again it seems to be build upon those that you can stand upon.

It does not seem to matter if you are "waiting for dead men's shoes" or "counting your chickens before they hatch" positive success should be built upon the achievements of others and not to the detriment of others.

The problem here is syncronicity. The light-bulb was 'invented' by two people at the same time. This is not the only example of things that have been invented twice, but in each case the success of one inventor is always going to be to the detriment of another. If a position opens up within a company and more than one person applies for it, then one or more people are going to fail.

I'm not suggesting that failure is a bad thing, but in the instances where it is maliciously detrimental, (patents that are not being exercised [2] other than to collect revenue or prevent others) should not be supported.

[0] Philos Amos Bergos bOS moss

[1] Joseph P Cangemi and William Pfohl “Sociopaths in High Places” 2009

[2] If you hold the patent for the perfect light-bulb and do not produce it, simply so that you can sell more of your defective bulbs, then I see no reason why someone else should not be allowed to produced the patented object.

Higher level sysadmin

I've been interested in the genealogy and hierarchy of computer languages ever since I bumped into the conundrum, "If C is a higher level language than ALGOL or assembly, what is Perl?" Obviously there are many humorous responses to this question, but I want to answer it more philosophically.

The perfect language has yet to evolve, and like insect species, computer languages will evolve to eventually perfectly fit their niche.

Linux seems to have come out on top of the OS world, just as C seems to be the higher level language. My first problem is that higher and lower were fine when there were two levels, but now we have a whole mess of branches and directions. It is better to think of C as a rung on a ladder or the 2nd floor of a building. (Floor can be ambiguous, so I would suggest the word ├ętage from French. Again you can argue that the first element of an array is a[0] or a[1] so lets call binary etage[1] and assembler as etage[10]; leaving C as etage[15].)

[So what is this all leading up to?]

Today I was asked by a friend, "I'm thinking of replacing my mail server with something more modern. I have been looking at ATMail, do you have any takes on it?" He went on, "I want a mail server where, ideally, caldav+cardav+webmail+imap are all synchronized."

Well that seems logical. So what did I say?

"In my (*nix) world, there is eventually a default solution to each protocol. 2013:
webmail: roundcube
SMTP: exim (though if I had to start again I might pick postfix)
IMAP: dovecot
caldav: I've written my own, but http://radicale.org/ seems very interesting, but DAVIcal is _the_ one for now."

This leaves a large hole. "synchronised".  I wrote Notice to try and do just that. It was a clunky collection of casually connected CGI that was unmaintainable, (except by me) and 100% dependent upon mySQL.

Then I met DBIx::Class, (I was introduced by a huge(ly) popular guy, and when I looked under his frame I found CGI::Application.)

Notice version 3.0 was database agnostic. It does not, (for the most part) care if you MUST use postgreSQL or SQLite, (it could almost use CDB - the greatest of DJB's inventions, (actually the only one that I understand enough to fully support.))

This abstraction made me realise that we need emsg_service. emsg_service is the 100% agnostic electronic message platform. It does not care if you use exim or postfix. It does not mind if you want flat-file configuration or direct DB config, (so that dovecot has instant updates.) It does not mind if you want to replace exim with sendmail.

But wait,...

... there is more. emsg_service is also language agnostic. It can be implemented in perl or python or haskel. emsg_service is the idea of distributed performance with centralised control of digital communications. It should have an API, a command line interface and a GUI via HTTPs. It can scale from one server to perform all services to as many clusters for each function, as you need.

 It MUST implement its own pocket Certificate Authority, OR accept a certificate to enable it to hang off an existing company hierarchy. (So that internal security may be freely implemented.)

It must let users store data: IMAPs calDAV cardDAV PGP&SSH keys and transmit data SMTPs. (It should have a quota for each. Any quota MUST have at least per-user granularity.)

I would suggest that it link in with cfEngine and FAI/KS so that it can configure a bare metal machine with an OS just by knowing its MAC.

To that end it will need an asset management system to track the physical machines, their locations and the intended configuration. (And a tftp server.)

While you are tracking users you might as well have a dynamic SSH key distribution and user configuration for each server.

The two things that you do NOT HAVE TO WRITE is the MTA or the IMAP server.

Get to it Internet, (feel free to fork Notice). Integration WITHOUT conglomeration. And when you aren't making bricks, add in fax and SMS support.

 Or you could cop out and just use ATmail, (or mailpile if that becomes what I expect that it will.)

About this blog

Sort of a test blog... until it isn't