Monthly Archives: July 2014

Generally speaking

There is no reason to seriously discuss statements that are not true. So determining whether or not they are, is material.

Lots of thing are neither true nor false. Statements about the future for example.
So there is also no reason to seriously discuss something which is not seriously meant. Jokes for example need no serious examination except by scholars, perhaps examining the structure of language.

If a position is seriously meant it has some implications. For one thing the person holding it must have an argument for it. A reason. Really almost anything goes here. Good , bad or indifferent. But there must be something. And it must also be logical. Logic is the foundation of our reality. That and truth; True statements about facts. Some people have chosen to not live in reality and that is their prerogative. That too has implications, for one thing if you abandon truth and logic it allows the rest of us to dismiss your words and opinions as meaningless. This may seem harsh.

The words of a person, however devoid of logic, may accurately represent their understanding of the world. But if the words do not have logic we really don’t know what that understanding might be. A person may feel strongly about something. Which of course anyone is perfectly entitled to. But they will have a tough time accurately communicating that feeling to others. Through empathy we may emulate the feelings of others in our selves. Putting ourselves in someone elses shoes as it were. This is in many ways laudable, indeed it is absolutely essential in a livable society. But it still only guess work on our part. Did we get the feeling right. Is this feeling that we managed to engender in ourselves what they really felt. Maybe. It could be a solid conjecture, but only a conjecture never the less. This is not made easier by lies and insincerity.

Words have largely agreed upon meaning, and if you use words differently from other people they will not be able to understand you. Logic functions analogously. Through it we express our thoughts. There is only one logic. This is why mathematics, being strictly derived through logic, is the only truly universal language. With mathematics anyone can communicate with anyone else. 2 + 2 = 4 is the same everywhere in the universe regardless of the symbols used to express the statement.

Abandoning logic precludes you from making your thoughts accurately understood by others. If someone tells me something they are trying to communicate a thought they have, to me, and I will try to understand it. It they lie to me, abandon logic, selectively apply standards and criteria or cherry pick their facts there is little chance that I will be able to understand what that thought really is. In the “channel” between one mind and another there are many sources of error.

There are venues in life where understanding is not part of the arrangement. Political discourse on TV is a good example. Here the objective is to persuade, not to communicate. Accuracy in the communication channel is not required when one thought is no longer to be transmitted from one person to another.

A cursory examination of the format makes this clear. The communication of optimized for persuasion if that is the goal, or comfort if the idea is to validate what people already believe. In all cases the words are selected to achieve the purpose.

The recipients will have to take their chances as best they can. But there is a downside on the source side. Cognitive Dissonance. Most people do not think of themselves as liars and manipulators. This is solved quite easily by starting to believe in what you say. But if that is sheer nonsense you might put yourself in danger. This is where hypocrisy comes in. It is an essential comping mechanism to help avoid the danger of succumbing to believing in what you say.

Those who make their living in professions where accurate communication is not only not required but possibly grounds for dismissal, should embrace hypocrisy with both arms.

If you are a paid spokesman this is a little easier. Then there would be no suggestion that you personally endorsed, believed in or in anyway adhered to anything you said. In fact the more outrageous the nonsense you manged to utter with a straight face the better. It would show off your abilities as a spokes person and improve your job prospects.
Like actors finding comedy hard work, trying to avoid laughing at their lines. Good one can do it, bad ones not.

the case for a virtual application server

Virtual hardware have been around for decades. Mainframes have been able to host multiple operating systems and IBM is doing good business selling boxes capable of hosting thousands of linux instances.  The economics of such co-location is very compelling.

Each user of such an virtual OS instance thinks it is alone but is in fact sharing with others. If done well it reduces the amount of hardware sitting idly waiting for work. Something which was distressingly prevalent back when every single server application needed its own hardware.

Times have moved on. To the regret of SUN Microsystems which was a leading casualty of the move from physical to virtual hardware. But all the box vendors have taken a hit.

But still it is the case that applications tend to have their separate virtual box. The argument spring from several points. Developers develop from particular versions of software libraries and so depend on exact versions of application servers. A virtual OS instance tend to have only one instance of an application server and so you end of with one OS instance per application. Plus more for redundancy and DR.

The off-shot is that to run your application you end up also running a stack of other software too. Software which is not part of your business logic. Without doing any bit of useful work, all this software still needs to hum along and consume precious hardware resources. And that’s with virtualization hopefully packing everything efficiently on to the hardware so as not to waste it.

Then there is all those system instances that need to be configured and maintained.

The virtualization of hardware saved a lot of space and service work in the server room. I recall having to go in there to load CDs and reboot servers. With virtualization this is all gone.

Still I have to work with operating systems and applications servers.

I want to find a way to get rid of those too.

Just like hardware was virtualized so that multiple application easily could run on the same hardware.  It is time for application servers to be virtualized also.

How should something like that work ?

A virtual application server. It should be able to run any number of different applications simultaneously. Currently it is good practice to have separate AS instances per application. For a virtual AS this no longer makes sense.

Physical hardware can run any number of virtual OSes (resources permitting) so the virtual AS should be able to run any number of applications.

This would be something quite different from a java application running on Tomcat. A collection of java classes, supported by libraries. But which versions of those libraries ? The developer depends of very specific versions. Is not accidental that one Tomcat instance per application is preferred. The whole programming model demands it. So something new is needed.

One can argue that with hyperlinks the whole internet is such a virtual application server, in that all functions are available everywhere over URLs. Web services essentially work along these lines. But that still leaves the problem of all the application server instances. One for every web service. But if we could have one application server that could act as any web service. Simultaneously.

This ties into an objection I have against AWS. Setting up an application in Amazon’s cloud infrastructure requires configuring instances of OS and and application server. And selecting the size and version of those instances. This suggests to me more scope for virtualization. True, it gives me a precise level of control, much like what I’d have if I hosted everything myself. But I don’t want it.

When I drive a car I don’t want care about the surface of the road. I just want to get from point A to point B by car.

There is another trend going on now. Thick clients. Or apps, in the form that that most us encounter. Web services which have been consumed by other applications rather than thin clients have been around for a while, but the massive profusion of apps on tablets and cellphones is recent.

Many of these apps are stand-alone; There is no server component to their functionality. An App version of Solitaire can be solitary in every sense. But many, perhaps most do have it. So to create an app is to also create a server-side application to go with it. Possibly one server application for every app, maybe more; but in many cases one server application can serve multiple apps. Googles API is an example of this. In any case a lot of server applications are required, with functionality tailored to the requirements of the app. The app designer can avail themselves of API s, like that of Google mentioned above or other forms of more or less generic web services. But in all those cases the app designer is constrained by someone elses design. To not be limited the app designers will have to have a server application completely of their own design.

Here the virtual application server can come into its own.