...

Zahid Amin

browser backbutton Founder BackButton Movement 14/11/2019 -


Mission Statement

As long as there is the Internet there will be a backbutton movement.
Grady Booch: Industrial Strength Software is beyond the intellect of a developer Industrial Strength Software is impossible without solving the BackButton.
for example static Html doesn't have movement; by definition it is Static. It does not require application logic handling.

Free Online Courses From Universities
Concurrency

Programming Skills: Original Algorithm of a cash Register

I once wrote a short programme in Java. It compiled and ran. I put in that program everything I know. When I was writing it I could almost visualise the machine instructions being executed. The program was so finely tuned that it brought out the bug in the kernel. People who looked at it either said I only use the basics, or I don't know how to programme despite the programme doing what it was supposed to. There were only two choices left at this point, either cut your ear off or distance yourself from these hacks. I chose the latter, but they put a website in my name in the USA referring me to as a troll so I am going to respond.
The first time I attempted this program the IDE (NETBEANS) was crashing so I was without my favourite tool the Step into Step Over Debugger. I resorted to notepad. Added to that there was a BUG outside of my program either in the JVM or the kernel. I thought it was the JVM so I wasn't sure if I wanted to go forward with Java. Anyway this is what I can do with an IDE and the I can't do without tools. I didn't need to use the debugger on this program as I was able to focus on the 150 + lines of source code, so the algorithm worked flawlessly the first time :). The debugger helps you focus on each variable and its current stored value, helps you focus on control flow (route, travel), can even help you understand somebody else's code. If debugger is not available in the event using some crappy archaic tool then you can always use search and replace to follow a variables's travel. Search and replace is close to desparation but better than pointing to screen in a group or staring at a screen.
further explanation to follow on the algorithm compliments of Mr Dimitri's teachings ...
There is in this program an error of understanding it is equal yet opposite.
I noticed it in Apache Spark when it treated /etc/hostname file
127.0.0.1 hostname localhost
as
127.0.0.1hostanamelocalhost
Apache Spark error message saying it couldn't find hostname.
Do keep in mind Apache Spark is a network centric ("network heavy") framework.
No copy and paste here, you'll have to type it all in. It is the only way to learn. Actually That's a lie . The only way to learn is to work it out yourself.



KISSSS

KISSSS : Keep It Simple Software Solution Strategy
GRADY BOOCH; The United States Department of defence (DOD) is perhaps the largest user of computers in the world. By the mid-1970s, software development for its systems had reached crisis proportions: projects were often late, over budget and they often failed to meet their stated requirements. It was evident that the problems would only worsen as software development costs continued to rise exponentially. To help resolve these problems which were further compounded by the proliferation of hundereds of different languages. The DOD sponsored the development of a single, common high order programming language. The winning design was originally called the Green Language (so called because of its team colour code during the competition), and was renamed ADA. It would be logical to say that a software crisis would also be brought about by the prolifiration of dozens of frameworks showing off the same Pet Clinic application . As to the requirements Language fetures like JAVADOC discourages proper structured documents setting out the requirements and workflow. to Solve the problem created by JAVADOC there are millions of youtube videos explaining the requirements. Booch partly contradicted himself as to the reason for failures of software projects. It wasn't entirely because Industrial strength software is beyond the intellect of a developer but as the DOD found the reason was Tool Vendors and language writers.

The Payoff Conceptualisation

Conceptualisation is difficult to believe but if you have reached that stage then you know what I mean. In five years of Software development using more framework, languages than I can remember I began to suffer from a software crisis. I had to think twice how are the variables declared in this language or framework and began to relying on the compiler to correct me. There was one course of action for me which was to unlearn by taking a break from Software Development. But then one day I setup tomcat application server without hardly following the setup instructions. A technology completely new to me. After that I flicked through a book called Java Server Programming with a variations on the same Pet Clinic application. I was able to protoype an internet application identifying considerations and code in JSP I could use to address those issues without actually developing an application. As far as I was concerned there was nothing more for me to do but practice. I also identified that there was some Java code but it was mixed in with other languages called JSTL and one would also have to be familiar with HTML and JAVASCRIPT language syntax structure. Java was a minor part
One has to be at a very high level of understanding of software behaviour to ask what are my considerations in these new set of technologies and then to be given them would be a more higher up expert than myself but with same mind set . Once you have the consideration there is only thing to do. Practice and get familiar. If I am to develop software, I want to write safe and robust software which also meets the requiremts so knowing the considerations before starting is very important to me.
I went to a number of Job Interviews and I was questioned on Java and in one interview Design Patterns. I realise that these people who were hiring people were suffering from a software crisis of their own never having done Internet applications and undr the incorrect impression that Java was a major consideration when it wasn't. The guy who asked about the design pattern was himself wrong as to where it is used. I realise that when he explained the design pattern. I realised that in a three tier applications the design pattern was used to create a BEAN by Tomcat { application server}. The answer for me is to specialise in two types of frameworks i.e. get hold of Pet Clinic example in Spring and get familiar with Apache Spark. My objective is to meet up with people who have an equal understanding of either framework and the importance of requirements capturing and meeting those requirements. In a framework like Spring team work is critical especially at requirement capturing stage, but with Data Science there is reliance on others.
LEVEL 0 : Complex Distributed Application Paradigms Made Simple

Web Server

Application Server

Competing Paradigms

nginx web server application server wrox press




LEVEL 0.1 : Zen and the Art of Motocycle Design : N-Tier Application Architectural Considerations

  • Backbutton
  • Secure by Design
  • Direct URL Access
  • Load Balancing
  • DB Connection Pooling
  • Inflexible Development Tools expect fully Normalised Perfect Database Design
  • Internationlisation
  • Push capability
  • Feature Rich Software Development Tools
  • Programming Language features
  • Debugging
  • KISSSS & {MUM}
  • Awareness of Time & Disk Space >> Danger System Crash


Vendor Neutral Programming Languages for the N - tier.


What is a Programmer's plateau ?

An Artistic impressionist painting of the programmer's plateau.


This is when the programmer climbs up the learning curve but he chooses to climb a mountain which has a flat top. Once reaching the flat top he/she will be exhilarated, running around jumping up and down with excitement on the flat plain. The flat top is representational of passing the job interview questions and getting a job. One could say Flatliners will do very well at job interviews in answering the set questions, may even be impressive to some one who obtained the interview questions from a consultancy and is not a Technical Lead herself/himself. Technical Leads very rarely conduct interviews. But the fact of the matter is when you climb a flat top mountain there is no more advancement.
There is no shortage of training courses and youtube videos, they are beneficial however be aware, be on your guard, they are done by flatliners. the course may even include with a UML diagram which has been extracted from code.
I will give a real life example of a programmer's plateau'ed which turned out to be disastrous to the company but nobody was aware of this phenomen apart from me, I was informed about it so recognised it when it happened.
If you follow the top down approach as illustrated by the level 0, you will never be confused for example between what is a BEAN and an E-BEAN, what they are used for or what they do. Another words get in a helicopter, despite being afraid of heights and land on top of the mountain summit by climbing down the rope from the helicopter and start the descend bit by bit.
One day I was flicking through an o'reilly book which which says a Bean is an intraprocess (tight coupling) and an interprocess (loose coupling). This meant absolutely nothing to me as so I turned to my other source Java Server Programming which had the diagram above and a page on what is a BEAN ? and what it means to us as Application Developers. I think the real reason the explanation of the differences between BEAN and E-BEAN meant nothing to me is because I am not a fashion victim so I do not drink coffee, my preferred drink is TEA with a table spoon of Naming Conventions as dictated by the Secret Software Engineering Consortium. I never opened that o'reilly book again.



Information Structure

If you understand that for a dynamic internet application to be Industrial Strength one must address the backbutton problem, then we are of the same mindset. This note is for you. So if you are reading this then I know what your expectations are of the information structure on this site.This bothers me also. I am going to finish the content first. At the moment I am roughing it. I also have a bad habit of cutting and pasting words as I do with code snippets. But this is my website and I will do it anyway I want. For that reason this site is under construction as long as this paragraph is here.


Acknowledegments

I want to acknowledge my gratitude to those people who helped me to better myself so that I am qualified to do a setup and a startup of my choosing. Mr. Dimitri , 68K Assembly Language teacher, Ada Technical Lead and the one who wrote you have to consider connection pooling, load balancing and your database design have to be perfect for filling my knowledeg gap. A special thanks to the person who redirected me away from EJBs with the words NOT THIS.


Bespoke Stable Freeware

After years of pain they have finally done it. Ubuntu 19 is a professional quality stable operating system, as long as you installed the the right Nvidia driver for HP OMEN Laptop. I also had to install NVIDIA on windows 10. Windows pointed out I requires NVidia but with Ubuntu I had to google ERROR 20. Ubuntu 19 is completely error free , warning free, doesn't freeze unlike Ubuntu 18.04. Ubuntu 18.04 was freezing earlier on the same day {15 March 2020} then I installed Ubuntu 19. It should not be a surprised that MS windows is more stable than any Linux because Windows has millions more users therefore millions more testers reporting back bug. This lack of user base a significant factor for Application Development especially when selecting Framework ware .


KISASSS: Hardware Features

For software to be truly Industrial strength it must not only apply the simple strategy {KISSS} but also must be Safe. The software must compensate for unexpected outcomes I call that Keep It Simple And Safe Software Solution Strategy. The following piece of Java Code illustrate KISASSS. If in Java one could try the code only once and if the outcome was not as expected then falls to an exception with no more tries then choose a different language. A resource could be irrecoverable but at the same time A resource could be busy i.e. Database Lock, I/O buffer monentarily full is also a consideration when dealing with network centric frameworks. It is amazing the number of Hardware features provided by Hardware Engineers but are not implemented up by language writer. for example EOF (END OF FILE) is a hardware bit flag on a disk.

for (int i=0; i < maxRetries; i++) {
try {
verify... // try to verify
return; // verify ok
} catch (Exception e) {
LOG.info("Oooh, it went wrong or resource busy on try " + i);
// let the loop run it again after a sleep
sleep(1000);
} // end catch
} // end for


LEVEL 0.1 Apache Spark

  • Apache Spark is a data centric framework for use with stored or realtime data.
  • Apache Spark makes use of JVM's network centric APIs to offer load balancing compute engines.
  • Apache Spark is a set of APIs containing a number of mathematical algorithms.
  • Apache Spark is a both compute engine & load balancing management system.

Distributed Data processing Layer Cake

  • Data Insights & Reporting layer
  • Unifies Access layer
  • Data Intelligence Layer
  • Serving Data Storage Layer
  • Data Processing Layer
  • Persistent Data Storage Layer
  • Ingestion Layer
  • Data Source Layer
  • Governance & Security Layer
  • Management , Administration & Orchestration Layer
  • Network & Access Middleware Layer
  • Hardware and Software Layer

These are the technologies corresponding to the layer cake with each one having a Setup and Startup

  • Structured sources (delimited text file CVS,DBs) Unstructured,images, videos, audio
  • Apache Sqoop Apache Kafka Apache Flum
  • SAN NAS HDFS AWS S3 Azure BLOB
  • Apache Hive Apache Spark inc. Streaming Apache Kafka Apache Storm
  • SQL DB Apache Cassandra HBASE Redis Tinkerpop Lucene
  • Apache Spark Mlib TensorFlow
  • Spring framework Apache Drill
  • Apache Zeppelin Jupyter NoteBook Kibana BIRT
  • Apache Knox Apache Merton Apache Ranger
  • Apache Ambari Apache Oozie

Product Documentation - [without Mr Dimitri] Original Text {Big Data Made Simple} - Rule of three {realword senarios} plus one {easy reading}

Big Data Made Simple implies complexity. Client code in multiple Languages has been found by US Department of Defence to bring on software crisis It is my experience that there are some illustrations of Spark Use Cases available in one of the languages while the same is not available in one of the other languages. This adds to the complexity. I like complicated hard stuff. I found another who like me follows the Gold Source Standard Code.
spark24 spark24 spark1.1 spark1 spark1 spark2 spark3

Easing the software crisis

Both Vaardin {100% JAVA no need of HTML JS CSS for front end development} and the author of the book beautiful spark code use the words geting bogged down


Vaadin Framework finds a way to ease the software crisis as identified by the US Department of Defence proliferated by by hundered of languages and takes care of the consideration of being able to use the IDE Step into & Step Over Debugger.
Vaadin Only One of these books has dedicated a whole chapter(18 pages) on the setup of all the technologies then finally a startup example of PI calculation in Python . The code and explanations are actually 100% spot on. Then he goes on to say although I have shown you jupyter Notebook setup, it is best to use a proper IDE. I love those comments! Everything works as it should. The good news is that all the books cover the same Algorithms so that means there is finit set of mathematical algorithms to familairise. No need for a phD in maths. I mention that because I have been to an interview where they set complicated maths puzzles. Such interviews mean that they have not identified the separation of roles and the sole purpose of Object Orientated Programming. This is when the creative thinking Application Developer gets to work with Rapid Application Development, Protoyping Applications making use {MUM} of the APIs. Producing real word use applications. I logged on the J2EE mailing list looking for the missing install.html and jokely said it takes these people years, I need the missing install.html a good book, professional code generator { application generator } nobody knew I was referring to the principals behind Object Orientated Methodology. I wanted a professional code generator because I wanted to find out if there was any commercial value in learning tomcat programming, JSPs, j2ee, framework. I was sent Websphere by IBM which works exactly the same way as tomcat the business application logic server. IBM knew what I meant because of BOOCH's teaching. The same teachings I was following. I was really impressed with Tomcat application server especially compared to 's two tier thin client product. But I wanted to be know if tomcat had any commercial value by finding a commercial product. Obviously one still have to follow the other principals of Software development lifecycle. Obviously I was making fun of Booch's statement Industrial Strength Software is beyond the intellect of a developer from an application developer's point of vew.

Apache Spark running as it should be



While doing google searching for errors and warning I have also found training companies and their mentors associated with Apache Spark as Pathetic as usual. The warning he is referring is Apache Spark saying Hadoop libraries are not available. Hadoop is a critical Software Framework needed by Apache Spark. I am glad they are not mentoring me. How does a training company trainer calls himself a mentor beats me. Definitely I can say teaching without understanding. Imagine the devastating Impact on IT projects and the loss incurred by the economy & Investors



Although these three books cover the same topic, at the same time all cover a side of spark which is overlooked by the other, at the same time explain each same topic from their personal experience, so my learning path will end up like a venn diagram of knowledge skill. This rule of three Books is my safe guard against Booch's warning Industrial Strength Software is beyond the intellect of a developer. So I have called upon three developers with three books. The fact the subject matter excites me is the most important factor. I do not have to look up any new words introduced because they know about that too about me. One author even says from time to time in other words ... I do have other books but these are the ones I am focusing on, they are also quite close to the current version of Spark. Spark in 24 hours is my favourite unfortunately it is outdated. I would personally would have spread the 24 hours over three 8 hour sessions so I would call it Spark in three days. My favourite text in the 24 Hour book is .. In figure.. I show some examples of Spark programming using same of the various interfaces. Don't worry if it looks a bit odd at first. ... by the end of the book you will be perfectly comfortable with PySpark and functional Python Programming Dialect. The author knows if you have gained the ability to conceptualise then you should not focus on learning the language first but start with the Framework first and you will become fluent as you go along. This is 100% compatible with my views. clearly Jeffrey Aven is aware of the phenomenon I call flatliner where the approach is from bottom up, climbing up the learning curve to achieve flatlining reaching the plateau as illustrated in the painting. If that means while I am building a prototype application to test out considerations I will not come across a design pattern of any kind like singleton then I give myself credit for not spending time on irrelevant issues.

Unleashing the Power of IDE on to Apache Spark



There is a good reason why most developers use command line sbt or mvn for Spark. Spark interface / driver code is available in Java, Python, Scala, R and SPARKSQl {SQL 92}. I have discovered that if you seriously want to get aquainted with Spark you will find that source material heavily leans towards Python and Scala, so if you want to use Java you will first have to get aquainted with Python or Scala. Python is more popular. However to be able to use an IDE like VSCODE with Python you have to be aware of a unique and specific feature to Python. Unless you are aware of it then it is command line for you :), at best using VSCODE as an editor not as an Integrated Development Environment. That is to say I use the RUN button at the top menu (run with or without debug). This unique feature of Python has reduced developers to Notepadders. You can also see a demonstration in the use of VSCode as Editor and running the command line from terminal while in VSCODE i.e spark-submit program.py in the youtube video tutorial with loglevel also having been set to ERROR. There are two people teaching. One to explain the code and the other to explain how to run using the command line. This is a good video evidenced illustrated of what happens when you do not follow the secret path to the Gold Standard Source Code. Who says two heads are better than one ? https://www.youtube.com/watch?v=CoYIwoeQxMY&list=PLot-YkcC7wZ_2sxmRTZr2c121rjcaleqv

The screen shot shows using VSCODE as an Integrated development Environment. The code is executed using the VSCODE Run from menu. In my because I have setup the environment so I have two prequisite steps prior to clicking the run button on the menu. These are to run linux shell scripts start-master.sh then start-slave.sh spark://192.168.0.38:7077. The configured settings being picked up.




Kafka cluster : Final Part of Development environment for Analytical Development



Understanding without Learning with Customer Satisfaction

Spark Python word count Example Program

from pyspark import SparkContext, SparkConf
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

if __name__ == "__main__":

conf = SparkConf().setAppName("word count").setMaster("local[*]")

sc = SparkContext("local","textfile",conf = conf)

sc.setLogLevel("ERROR")

lines = sc.textFile("in/word_count.text")
words = lines.flatMap(lambda line: line.split(" "))

wordCounts = words.countByValue()

for words, count in wordCounts.items():
print("{} : {}".format(words, count))

My First SPARK Python program

from pyspark import SparkContext, SparkConf
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

if __name__ == "__main__":

conf = SparkConf().setAppName("lines with states").setMaster("local[*]")
sc = SparkContext(conf = conf)
sc.setLogLevel("ERROR")

# create new RDD from data source layer
lines = sc.textFile("in/word_count.text")

# filter transformation
linesWithWordMatch = lines.filter(lambda line: "state" in line)
lineCount = linesWithWordMatch.countByValue()
print
print

for linesWithWordMatch, count in lineCount.items():
print("{} : {}".format(linesWithWordMatch,count))
print

In the word count program the output shows the count of each word appearing in the file, for example the word state appears 5 times so the output look like state (5) among the printed list of lines. I want to know how many sentences or lines has the word state. I have not learned python so I have made changes to original program. As this is my first program and I have not learned Python. To get the result I want I have satified the format function second parameter so it gives the print out of each of the lines along with also count of 1 which I do not need. I have satisfied the client the format function by passing it the argument of type integer it needs for satisfaction. Customer Satisfaction is very close cousin of {MUM}. Incidently there are 5 occurences of the word but only 4 lines and those lines are printed. That is Data Science in Action.

Understanding Apache Spark's Ease of Use

As you can see I have Apache master running on my machine with local network IP address of 192.168.0.38.
I have also configured one slave compute engine. To run the master I ran the script sbin/start-master.sh.
To run the slave I simple ran the script start-master.sh with the ip address of master { > sbin/start-slave.sh 192.168.0.38 } so the slave can find where the master is by the ip address and register itself.
Then in my python client code I make a call to the master.
conf = SparkConf().setMaster("spark://192.168.0.38:7077").setAppName("Calculate Pi")

The IP address is significant because at the moment the IP address 192.168.0.38:7077 belongs to my own master setup on my own machine on my local area network
If this IP address belong to a commercial service, a Static IP address, the work would then be done by their master and their workers nodes. An application developer can rent to do a job to get the results and display the report in a visual form
How the masters and workers is setup is the realm of the service provider and invisible to the application developer. However I can use my own setup on a small sub set of data to do dry runs prior to using a commercial compute rental service.



The process of Mastering Apache Spark

The process of mastering Apache Spark begins here with a clean bare metal build environment with maven. building the application(s) bit by bit. Getting close & closer to making the complex into simple
During my commercial experience when the vendor try to take advantage by referring to a support call as consultancy, after that there was no question in my mind that in future I will choose an interpretive language over Compiled language. In the Safety Critical Ada world they also start with bare metal compiler with only system libraries . If you do get stuck you can trace the bug all the way to the source { bare metal interpreter} with a step into or step over.. Your ability to trace does not end with the enclosed API. I prefer to do a little less action of staring at the screen and a lot more conversation with the debugger with its step into and step over moves. I view interpretive language in the same way with the interpretive language's given feature to trace all the way down to the bare metal same as Safety Critical environments.

Leading Edge Bleeding Edge

This simple example of SPARK scala arrays will work with
Scala SDK 2.12.10 but not with scala sdk 13.10 . The application Developer must identify leading edge and bleeding edge framework stages. Utilising leading edge while avoiding bleeding edge .
another benefit of leading edge over bleeding edge is you can google it. If you can't find the answer with copy and paste through google then you have just gone into the bleeding edge, STEP BACK, STEP AWAY !




Framework Developer's Dream : Apache Spark

  • Years of complex phD maths shrunk to a graph :)
  • Client Specification : Deliverable
  • Large & Complex Distributed Systems made Simple
The Advantage of scala for Spark application is seamless integration into Java. This is an illustration of integration of Java JfreeChart into .scala file as Spark Driver Client. As one gets comfortable with Apache Spark Concepts the documents are actually well thought out.


Apache Spark Run Test Experiment Develop

Apache Bahir is an Apache Sub project which provides source code in Java & Scala, so that one can very easily make use of Twitter4j API and Apache Spark API. One can easily receive live feed from Twitter then an application can make use of Spark framework API functions to anlyse the data and be able to present real actual data in graph form. The more you experiment the more interesting patterns you can identify from the live data feeds. You can begin here to unleash your creativity and become a powerful data scientist. Each time you create new pattern by simply making use of Spark transformtion and action APIs functions it is new a PowerPlay. Large corporations cannot compete with agile individual Data Scientist Power Players. Be creative, do remember the hello world & tutorial youtubers are examples of flatliners. Don't get caught up in those rabbit holes. Armed Forces set up small groups because they are manouverable and have the capability to do surgical strikes. Learn from this strategy. large Corporations are slow relying on developers in far away places, who are not in contact with clients, they are being fed tit bits (scraps) of information. How can they know what clients want ?



Product Documents

Once in a while one comes across a person who thinks as you do. This developer knows code
walkthrough is an incorrect software development process. So he sells the developer guide
document while letting you have the code for free prior to giving you the option to buying
the documents. I also have a number of books as documents on the same subject because I also have
the same mind set. Javadoc is no substitue for description of proper explanation of the concepts
and workflow. Decompiling classes is for hacks not for software developers.



The Golden Ratio

expressed using KIS software Solution Strategy furthemore it is correct.
The algorithm is along the same lines as my program. The diagram illustates which examples the Fibonacci are wrong and which are right. I could see which is wrong and which is right because I knew of the Golden Ratio and the philosophy behind it.

The examples below of Fibonacci Series beginning with the number 0
Using a more complex bullshit explanation is WRONG.





Configuration Data File: Clean Code



The Java java.io.serializable interface has no methods but can have every conceivable data type , which any self respecting programming language provides in its feature list. In any application, configuration data, which needs to be picked up at the start up of an application, the java.io.serializable is the perfect language feature to use to do so. It is clean , simple , flexible therefore by using java.io.serializable we will be applying both KISSS and {MUM}. The powers that be do not believe in either KISSS or {MUM} so they have chosen to use an HTML like files as configuration file i.e. web.xml. This is where they have to pretend every data type is a string and then it converted programmatically. More Importantly the String data types are wrapped in the most ugliest, untidiest syntax called TAGs. Totally the opposite to over beliefs and values [ KISSS & {MUM} ]. It is safe to say that who do not implement KISSS and {MUM} , but instead go in the opposite direction either to proliferate a software crisis or their java is not very good.

We know that static does not have movement, hence the serializable is static and has no methods because we use methods to encapsulate the decription of run time movement in our application using flow control [if, switch, for, while, do].



Audience

I have scanned through the Pawlan Book and one thing I can say for definite is that the intended audience is application developers. That is to say Pawlan , the author, is implying use this book to familarise your self with the Java Tools which you can then apply to a specification. Specification can be from either source, an employer or by employig your imagination. So if you consider yourself to be very good or want to be very application developer and your values are KISSS and {MUM} then for you there is a clear path to the Gold Standard, it is not a choice, Java RMI. EJBs etc. are for those who are not very good and who do not value KISSS and {MUM}. To them I say best of luck.


Concurrency

I have chosen to include this article on concurrency because the author uses certain key terms developers come across, also has a certain familiarity for me. Clean Code , inter-process communication , Concurrency is challenging ... and .. extremely hard for developers. Although I have come across articles which state JVM threads will translate to one to one relationship by the Operating System for CPU resource processing. I understand by default Java has one thread known as the Main where the code is executed sequentially through out the application, that is if one does not make use of threads in the application. Again if one uses a framework for application development then again it will be the same perception for the application developer, as the audience of the framework, the code is being executed sequentially. It appears that the intended audience of this article is the framework developer. I know my place, application development and I keep to my zone. The Zone where creativity , inventiveness is unleashed. Meanwhile it appears from the article that the framework developers struggle with concurrency. This is rather concerning for the application developer because the framework developer's work is a critical dependency . Come to think of it good, accurate documentation of the framework setup and startup is a critical dependency of its failure or success of any framework. It appears the author of the article is oblivious as to the operational boundaries or the separaton of roles. A far more important question comes to mind, why is this guy oblivious to the aformentioned ? surely he must have been involved in atleast one commercial application or was it a case of using a simple tutorial on threads to make boast.




SYSTEM WORK AROUND

If you are wondering what a system around is ? , you need to be able to recognised a SYSTEM WORK AROUND as an application developer. The example in this image of Apache Spark is a real PEACH of a SYSTEM WORK AROUND. I am obviously referring to the HARD CODED library import in the middle of the code which is mandatory in this case. System arounds happen when it is discovered that the original design was flawed so one has to compensate for it. The library import statement will not work if declared at the top. import spark.implicits._ This SYSTEM WORK AROUND could also be the result the decision to proliferate the driver source code with multiples programming languages. Proliferation of hundereds of languages is a recognised cause of bringing about an unnecessary software crisis. This was the finding of US Department of Defence.

BOOM BOOM List

You go to upload IDE and it is crashing with "0000xxxx00 error (pointers {*] at work) and you go to the support guy and say give me service pack CD. You load the service Pack. The IDE install : BOOM.
You do System Work Around not a bug fix on the system designed by the biggest Company in the world. BOOM.
You do the work around using the wild and uncontrollable power of C while taming it, as taught by Mr Dimitri. BOOM.
You look for and find the tool (application server) which confirms your instincts of system work around : BOOM.
You decide I am going to go for it, it is time to design the complete the System on your OWN terms and you trade with your equals, something you know with something you do not know to achieve your goal BOOM BOOM
You look at a System and say I am not wasting my time on this and it is confirmed to you, your instincts are correct the System is indeed flawed BOOM.
You are able to Judge a paradigm and say the paradigm meets all your expectations. BOOM.
You read a book on a programming language you have not programmed and are able to Judge that it is written by a pretender who have never written one line of code for commercial software :BOOM.
You can say Booch! you assume too much when you say Industrial Strength is beyound the intellect of a developer. BOOM.
You can say Einstein you assume too much when you say every action has an equal and opposite reaction. BOOM.
Chasing the Dragon: You can say for each strength there is weakness, expect failure , compensate for it because the environment is not perfect BOOM.
You go to the environment makers and say you people take years, I expect failure from you and I compensate for it by Chasing the Dragon: See my Prototype illustration. BOOM.
or a JavaFX application class must extend javafx.application.Application
BOOM.
There is only one logical conclusion, you are no longer amongst equals. You are now on your own. You are leaderless. You are captain of your own soul.

As captain First Invention : The secret path to the Gold Standard as illustrated , copy me if you can BOOM BOOM.
As captain Second Invention : The art of complex systems to simple as illustrated , copy me if you can BOOM BOOM .

The NotePadder

This happened in the early days of Java. After I tried out RMI the next step is to develop an application. For that I need an IDE. NetBeans was the one advertised on Java Website. I installed it and immediately I became confused. On one hand there is this technology called RMI which is new, exciting, inspiring and on the other hand there is this IDE with dark brown bean jars which look like something one would find in a village(pind) shop in the third world. I just couldn't make sense how these two could exist together harmoniously in the same world. The look of an IDE has never been an issue for me but all of a sudden became an issue. It was hideous. I couldn't possibly bring myself to develop applications using RMI or even basic Java programming with this hideous thing.

I turned to my two more resources theory.This theory has never failed me before but it did this time I decided to invest in a book in Java programming. With any programming book comes atleast one IDE. So I bought a book on java programming hoping I would find another IDE. To my surprise the author is claiming he does his development using Notepad. I wondered if this was guy for real. He the went on to say Java executes top to bottom. I know procedural programming works that way but I seen Classes in Java so clearly this language must be Object Orientated like C++. I learned a bit of C++ at Reading College of Technology. The first thing the teacher said in the C++ class was, I have good news , you don't have to write any code, everybody apart from me cheered. By this time I had gone through the learning curve of writing code so that statement didn't appeal to me. The author who of this o'reilly book, I think his name is Flutta, He then starting claiming he had a strategy on garbage collection to improve performance. Especially when I noticed performance with this socket based techonology called RMI. Anyway he (Flutta) nearly managed to scramble my brain, it was a lucky lucky lucky escape for me as I had gone to Reading College of Technology. If you have any issues on his theory of garbage collection please contact Flutta the author of that o'reilly book

I now know where he (Flutta) got the notepad idea from. It was in the book below. I can understand the author of this book using notepad because the author is a staff writer on technology and doesn't claim to be a developer. Moreover I do understand this author of Essential Java ... because what the author writes at the back of the book. ... It starts with a simple program,then develops it bit by bit. adding new features and explaining important concepts .. my advice to you from experience is that if it is an o'reilly book the chances are it was written by Flutta. Also in case anybody is wondering how can I program an application with out first learning the Java language or atleast getting a certificate. I don't need anybody's permission on what the approach I should take. I know all the considerations and I will build my application from a simple application, programming the considerations bit by bit. One builds bit by bit while looking up the bits on the other hand one follows step by step. My definition between the two is, bit by bit is building (learn by doing ) through understanding with clear explanation from some one who has an understanding, while step is step can be copying (imitation) from a hack like o'reilly's fultta. The o'reilly hacks, also incorrectly described a bean as a intraprocess (tightly coupled) EJB as interprocess a (loosely coupled). It is my understanding that Remote APIs like RMI or EJB are tightly coupled like an intranet with load balancing feature. While loose coupling of classes is an OOP Design principal which requires container management system. Similar to database is a data and disk management system, Operating System is a process/resource management system and my very first commercial project was called a fuel management system without concurrency operating system.

I know from experience with my C project in College that by the time I have programme the considerations, bit by bit, My Java skills will be good enough to programme the business logic. My application is not equivalent to a student project but an Industrial Strength Commercial Grade, unless a student finds my website. I know it will be the highest quality Gold Standard because I know what commercial applications look like from the good, the bad and the ugly.

There is one minor point I would like to mention about the book below, I still consider it a very good book. The author thanks Dana N., a HTML'er, for showing her how to SET CLASSPATH in AUTOEXEC.BAT. We know HTML'ers don't have movement in their static world so we should allow due consideration.Those of us who like challenges we only spar with movement.


The Task Manager

I combined Oracle's PL/SQL and C to plug together a database generating reports then emailing back together to the thin client. The front end developer had a loud bell sound to his email. So every time he requested the report from the browser it was emailed to him. I was in the server room so I could hear the bell. I was amazed at the instantaneous response as I watched my C programme (.exe) listed amongst the spawned processes in the Task Manager window. The operating system spawns the processes. The operating System is a process management system (memory, sheduling) just as a Database is a disk and data management system. I could see my .exe running like a service as it was ment to be in the NT Task Manager task list, polling the file that was being written by PL/SQL. C programming language is amazingly versatile for file operations. Although there two processes are acting on same file, C is versatile enough to allow another process to act on the same file with out corrupting the file. The C/C++ IDE obviously helped me with the mail API interface code. The key in finding code is being able to guess the right key words to search i.e. the API name, I am always able to guess the name. The fast response should be of no surprise because it was a mainframe. But then when I downloaded RMI on my work PC and noticed the same performance with the similar activity. The first thought which came to mind was, what a waste of money on that very very expensive Mainframe. That has got to be my one of my best commercial experiences because I had an oppertunity to compare performance on two different powered machines.

Make Use Method {MUM} makeuse.org

There is an unknown method of programming which makes programming easy. It requires a minimum of effort with most productivity. You can start programming in a few days or use any framework without any training if you have learned two or three programmings already. I call it the Make Use Method. This approach was taught to me by MR Dimitri at Reading College of Technology , co-designer of Two Year HND COMPUTING COURSE. MR Dimitri also taught me C and Unix. During my years of commercial experience I realised that MR Dimitri didn't just teach me C programming language, he taught me concepts using the C programming language and common errors. So in the commercial years that followed, when mostly I was considered a more of a junior because I did not have a phD or Masters and was given mostly software maintenance duties. I applied the concepts to fix the software errors of those regarded more senior than me. I also began to realise that at times I was given problems which others regarded as very very difficult but easy for me thanks to Dimitri. On occasion some software engineers had spent months earlier,the problem popped at me straight away because of MR Dimitri and one his concepts he taught using the C programming language. On one occasion three months were allocated to fix the issue(s). I spent most of the three months coming into work and reading books and quizzing the hardware engineer who was testing my fix on the test rig.

THANK YOU MR DIMITRI ! for making programming, setup and startup so easy

Make Use Method is a mindset or school of thought. It is simple to understand and makes you and programming flexible.

If you want to store a number of value between - 128 to 127 then you Make Use of byte. If you want to store a single character then you make use of char. If you want to store a decimal value in your program then you make use of double . As you build your algorithm meeting your specification requirement. If there are too many lines of code after making use of flow control then you make use of encapsulation feature for easier readability of code with either a function, procedure, method or even a class. You just have to think about coming up with parameters and return value.
During program execution the encapsulated procedures, functions, methods are called. That means the code runs sequentially from top to bottom. So you must declared your variables at the top inside the encapsulation.
If you are programming using an object-orientated language then the encapsulated class is not called but instantiated. This means that only the code in the constructor will executed from top to bottom but not the whole class. In the class one can declare the variables at the top or bottom. I purchased an o'reilly book from USA Java in a Nutshell which sold in thousands stated that Java runs from top to bottom. Fortunately I had my College text book by Grady Booch, so I was able to detect this was a software bug as demonstrated in the code below: Also demonstration of gracefully move up and abrupt halt. :


public class newclass {

    public newclass() {
     System.out.println("constructor: sequential execution line 1 ");
     System.out.println("constructor: sequential execution line 2 ");
     System.exit(0); // HALT execution high level I/O interrupt
    // return; // move up level with return, same effect with break in {loop}
   // System.out.println("constructor: sequential execution line 3 "); unreachable code error: because return has moved up
   }


   void someMethod() {
     System.out.println("SomeMethod");
   }

   public boolean AnotherMethod() {
     System.out.println("AnotherMethod");
      return true; // make use of return for validation
   }

  public static void main(String[] args) {
   new newclass().someMethod(); // stateless
    newclass state = new newclass();

    if (state.AnotherMethod()){
    System.out.println("AnotherMethod executed successfully");
    }
    else { /* for this sout to execute previous sout failed to execute in AnotherMethod: So this sout Will never execute to same I/O stream, unreachable code as is but no compiler error */
    System.out.println("H/W error: System Crash");
    }
  }
 
   //-- class fields --
   String strVar;
   byte byteVar;
   short shVar;
 } // end class

console output:
constructor: sequential execution line 1
constructor: sequential execution line 2
SomeMethod
constructor: sequential execution line 1
constructor: sequential execution line 2
Another Method
Another Method executed successfully

There is a new programming language, FLUTTER where they say everything is a Widget. A Widget is either stateful or stateless. These terms of being stateful and stateless could have the meaning as I have shown in the code of the newclass, main function Grady Booch described this new language as crisis proportions:... compounded by the proliferation of hundered of different languages.
I was looking through the window and I saw a bloke standing on a scaffolding cleaning a small round window with his squeezy yellow widget. I also see him reach in side the small round window and take the under score. I ask him are you FLutta ? He replied get outta 'ere before I belt you one, I know you follow KISSS. Not wishing to get caught up in another software crisis I darted out of there. The bloke was so angry at seeing me that he dropped the under score. I picked it up and make use of it then put it back where it came from, in the book below. Flutta is so complicated they actually make a explanation youtube video for each widget. They also say Flutta is so unique that each pixel is drawn individually. I thought that was what browsers do by interpreting html tags for lighting up screen pixels same as MS Word.

The C programming language was accompanied by short book by K&R with essential C code examples aka C Bible . You simply get your starting point code i.e. Socket API , build your algorithm from looking up the syntax as you go along if you can't remember it. making use of the compiler, debugger messages as you go along.
Make Use Method {MUM} of programming is creative, inventive, artistic and most importantly motivating.

Using the Make Use method you will find that in a very short space of time, two to three days you will become so proficient that you will be programming as if you were writing an essay or letter. That was my experience with C programming language. To achieve this goal find a specification. THIS IS VERY IMPORTANT: the more you understand the specification the easier it will be to programme. In my experience I had a previous career in Accountancy so I used that to learn programming. If the specification is understood by the developer then programming is simple and enjoyable. During my TWO year computing course I was the best C programmer by far while other students never got the understanding. I also had diffulty in conceptualising when I was being taught the first language, Pascal. Despite Pascal is meant to be an easy to learn for the purpose of learning programming. 68k assembly was my second language by this time the conceptualising was becoming natural . The specification in my head from my accountancy career set me apart. You may find you have to stop yourself and say that is enough for now for an "A" Grade. As I did.

Source Code example of Make Use Method {MUM}

In Java, there are two types of casting:

Widening Casting (automatically) - converting a smaller type to a larger type size
byte -> short -> char -> int -> long -> float -> double

Narrowing Casting (manually) - converting a larger type to a smaller size type
double -> float -> long -> int -> char -> short -> byte

public class MyClass {
   public static void main(String[] args) {
   double myDouble = 9.78;
   int myInt = (int) myDouble; // Manual casting: double to int

   System.out.println(myDouble); // Outputs 9.78
   System.out.println(myInt); // Outputs 9
} }

From my learnings of 68k assembler from my teacher, the other co-designer of the course, if my memory serves me correctly, the decimal number is stored in two memory registers. The whole number is stored in one memory register and the decimal number is stored in another memory registered. In my mind if I Narrow cast a decimal number to separate the whole number part then the run time has simply discarded one of the memory registers, so without the need to apply complex logic to achieve the same outcome. On one occasion I did Make Use of the narrow cast Java feature and built my algorithm around it. In my mind it was the most efficient way of achieving the outcome. Some may view my make Use Method of programming as just using the basic programming language features. Those who do not realise that one is programming two things specification and a computer.


Software Support for {MUM}
Does Mum ever need support ? Of course not, she actually provides support by the make use method. She will find what ever she can she can make use of. {MUM} also works the same way. {MUM} will never be stuck because {MUM} user will find and make use just like MUM. It was through {MUM} I realised Industrial Strength software is only possible by addressing the BackButton and need to the find the technology.
Always show respect MUM and {MUM} both.


Useful Error message; call {MUM} but don't provoke her

$ java org/makeuse/iSayHello
Error: Main method not found in class org.makeuse.iSayHello, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

Please note the lack of imagination and the aformentioned self inflicting confusion Naming convention variation on the words application Application. This self infliction will be passed on like a virus of confusion.




What is JAVA {JVM} ?
JAVA is Object- Orientated, Ground Up, Network Centric, Distributed Garbage Collection, Write Once Run {from} anywhere with RMI, that is to say using OO programmatically an application developer can get a remote CPU(s) which may to attached to sensor(s) to do the work and get the result on the client or send it from that client to another client(s) or another server(s). Combining these features making java a {unqiue} programming language. Java is Write Once run anywhere who do not make use {MUM} of RMI.
I realised the importance of Garbage collection because I had fixed a bug in COBOL. The programmer's algorithm was correct, but his assumption although reasonable was incorrect. After the variable went out of scope it remained in memory then the second process and other processes after that picked the value from the same name variable and used it. By used it in this case the value was concatenated. That is to say if variable A ="10" , variable B = "20" then if variable A is not initilaise at the beginning of a process or garbage collected at the end of a process and variable A is global Then the value of variable C {= A + B} will be "$1020". But if the variable A is initialised or garbage collected then the value of variable C will be "$20" which is correct. Variable B's content is of course overridden or reassigned by the incoming process with new data. SO the lack of initialisation for variable B has no effect.
With Use of Naming conventions If we rename those three variables where A is CountryCode , B is TelephoneNumber and C is TeleNumber. These three variables are part of a Telephone Compute Billing Engine. This Billing engine is run once a month to calculate customers' Telephone bills. If the customer made an international call on the 24th day of the month then if the CountryCode is not intialised then the customer would be over billed, every local after that call for that month would become an International call because CounrtyCode is appended to every local telephone number retrieve from the database. Customers can be over billed for years until some one made an international call at the beginning of the month and had a need to check their bill. The programmer confused himself with his own naming conventions and the testers had no hope of detecting the confused phD highly respected programmer. Perhaps the application of {MUM} with naming conventions such as localNumber InternationalNumber would not need half a line code of change of telephoneNumner = "" at the end of the routine. To unconfuse the bug. Avoid Variations when naming variables i.e. TeleNum ,TelNumber, TeleNumber , you satisfy the compiler but will end up confusing yourself. Flutter has come with a naming Convention , adding an underscore to local variables.


What is Java RMI ?
RMI is an acronym for Remote Method Invocation that is to say executing code in a method from far away. Before RMI there was RPC, acronym Remote Procedure Call. We know that methods and procedures can have parameters and but methods like functions also have return values. First we had punchcards, then low level assembly language followed by high level procedural language. That was followed by C with structs followed by C++ which is also known as C with classes. It has been a long journey but we (application programmers) can now implement an interface on the class. Implement an interface as it was meant to be. We know the importance of using Naming conventions in Software Engineering is critical . This is the sacred path of simplicity and flexibility for application programmers leading to the Gold Standard known only to a few. This innovation means JAVA RMI finally fulfilled the promised prophecy of the Object Orientated paradigm by implementing the double interface. The double interface allows the offloading of heavy processing of the compute engine(s) on to separate server(s). The clients can be either thin, processed by application servers (because of the backbutton) or FAT clients JAVAFX/Swing in the same language. RMI is really easy for me because I have never swayed away from the gold standard, the sacred path known only to a few. {MUM}.

make use
The hardware referred to in reality can now be Strawberry PI at a cost of $10-$30 each,instead of expensive mainframes, desktops, even laptops. The Strawberry PI comes with free and user friendly Linux.
Object-Orientated: Methodolgy or programming language ?
It may appear to be a silly question to a computer science professional, If you agree that Object orientated programming is a methodolgy therefore language neutral then please contact Department of Science Indianan University Bloomington https://cs.indiana.edu/ and let them know. The Indiana Science University is teaching RMI {object orientated}... unlike CORBA, which is intended to be language-neutral, What you give up in neutrality you make up in simplicity. Do remember these are the Computer Science students who are developing software architecures :), the same ones who did not question, for how many years ? the anomoly I am showing you.

RMI Timing

The ability to execute the compute engine on a remote server is the defintion of flexible in Software Development. This is especially useful for business Intelligence or Data Warehousing applications. These two types of applications require heavy processing or separate compute engines.

The other types of applications which make use of a Database is called Online Transaction Processing {OLTP}. Any application looking to be simple and flexible from ground up needs to make use of RMI. By simple I mean RMI uses Object orientated methodology which is in itself simple and flexible. To use the RMI's remote feature one simply applies couple of lines of code in the client like ;
SomeInterface si = (SomeInterface) Naming.lookup ("//SomeHost[:1024-65535]/MyServer");
String retVal = si.SomeMethod("coco");

Application Protoyped: ZEN and the Art of Motorcycle Design

RMI : The beginning of a New Era, N-tier Making Use of Objects Orientated Methodology.
with Competing yet complimentary Frameworks Struts | Spring | Quarkus

src> java -version
openjdk version "13.0.2" 2020-01-14
OpenJDK Runtime Environment AdoptOpenJDK (build 13.0.2+8)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 13.0.2+8, mixed mode, sharing)


You will find RMI helloWorld Swing Clients ONLY but you will NOT find examples of RMI demonstrating both clients This is the only website on this planet as @ 28/01/2020
This is a more complete demonstration of Storage and Retrieval with further possible integration of tightly bound storage and retieval of Database API, Mail API or small device (pace maker, red light on plane cock pit). If I want to simulate heavy user activity and see the results I would do that in a for or a while loop in the client or server or both.

The BUG; As you san see there is a bug. There are a number of ways one can analyse the cause of the bug. I did witness one bug analysis process conducted by a phD holder. I watched him stare at the screen for what seemed the longest time. His mouth wid open, and his thick glasses getting misty. The most interesting movement was his long finger trembling over the down arrow key. I believe he was in a trance of trying to understanding the code so he could scroll down, but the barrier to the understanding was so such a steep climb that he was unable to press the down arrow key to scroll down. I think it happens to phD holders, perhaps it is doing that phD thesis which burns them out even before they start employment. Staring at the screen like that is not a recommended approach. I also saw on one occasion three Indians staring and pointing and smudging the screen. I have a number of much better approaches.

My approach to application development in this prototype is described as chasing the Dragon and if achieved is considered monumental. We can also view the prototype as demonstrating two types of login screens. I was informed that a singleton design pattern is used to create a login box and it was implied the design patterns were associated to Java when they are language independent. I have two login boxes but no singleton. In Software Engineering there are bits (ones and zeros) known as don't care bits. We can consider the design pattern the singleton in application development for a login box in the category of don't care bits. I would describe this prototype as a demonstration of a tightly coupled distributed application. To Build such a prototype with Monumental qualities without guidance requires Jazba and Junoon in the application architect.

Although the technologies I used to build my prototype are great, I am going to have to use equally great commercial ware. For that I am going to have to get certification to prove my worth. No matter how talented you are, you must go commercial ware if you want to put bread on the table, certification is mandatory.

retVal =
Strus 2 RMI

For every strength there is a weakness. Expect failure from the environment and safe guard against that failure. For every action there is an equal and opposite reaction, however for the reaction to be equal to the action if (reaction == action) the environment has to be Perfect . I did not invent the return, it was already there to be realised by those who follow the secret path to the Gold Standard. The provision of the return is also an admission by those who make the environment that they cannot gaurantee a perfect environment for the application developer so he must make use of the retVal if he wishes to develop Industrial Strength software as illustrated in my protoype application.




As illustrated It is important to remember that patterns do not guarantee success. I know that my "chasing the dragon" approach does give you a greater chance of success when you expect failure from the environment and compensate accordingly. My impression of pet store example as they had done it, when my approach is "chasing the dragon" in accordance with my understanding and realisation was conficting. I simply pointed that out in turn received a hostile reaction. I felt there was really no need for to waste my time and energy to read any kind of a book on EJBs because I am going to follow my approach I believe in.

To display the one line of text in a Internet Browser for the World Wide Web it has been a collaborative effort by organisations like W3C [LOOK AND FEEL], IETF [TRANSPORT] , etc and probabaly many many more similar organisations, with implementators such as Microsoft, Firefox, google and hardware manufacturers of cables , routers , hubs etc. Proposing one I and one T and then crossing one T and each i at a time. I am familiar with this process of collaboration because the same process takes place in the Aerospace manufactering Industry. There is one difference between the aerospace industry and the evolution of Internet. In the aerospace Industry very highly qualified engineer(s) at Boeing come up with something new. Boeing test it using their testing methods and TELL the contractors and outsourcers to following and comply. The Internet effort on the other hand is a democratic, slow and snails pace. The Boeing effort lasts 5 years then DONE. Meanwhile the Internet effort is going on for 40 years with not even half the achievements compared to Boeing. I only know all the concepts involved into this type of effort because I went to Reading College of Technology and worked in the aerospace Industry and had some really good conversations with the Tech Lead who made time for me always. I joined that company to complete my education which I did. For example I said to him I am good at C,are there any projects in C ? he is the one who said to me don't mention that word here ! He was not an old man, in mid thirties and a typical South of England Gentleman.

OBJECT BLADING with RMI

The Setup prior to RMI StartUp - In case of any security errors hindering you from application development and if like me that is your most important priority then just add this the bottom of file(s) to jdkhome/conf/java.security and or java.policy. Removes all default JVM permissions
grant {
permission java.security.AllPermission;
};
When making use of the Gold Standard Source Code {GSSC} while following the sacred path known only to a select few, comments in source should not be necessary. Lack of comments in source code is the test of the Gold Standard as illustrated here PLUGINS
Communication Protocol {i}InterfaceName: Do keep in mind if the two interfaces are not the same the client and the server cannot talk to each other.That is to say the InterfaceName is the bit that allows communication. The interface is sometimes referred to as the protocol.
The author of the book refers to RMI as an API and EJB as a RMI based API, However if you are familiar with an API, for example from C++ then you must agree that it is not an API by that definition. I think a more fair description is that it is a paradigm. Other paradigms such as EJB, Jini appear to be extentions of RMI. RMI is an object orientated version of RPC (remote procedure call). I was informed that Jini and EJBs are competing paradigms. Javaspaces is Jini based which fit in there somewhere. I think this maze of competing paradigms is what booch referred to as a software crisis ... proliferated by hundered of different languages. I had only worked on J2EE during lunchtime and comparatively I was judged to be very good according by one individual who had been seeing the Indians struggling with the basics despite efforts to standardise J2EE for them. The Indians of course want to compete directly with me who is working for a UK software house. They always say I can tdo that too. I know a far better example of the Indian skill set which I will be discussing in detail, the whole story and the Investor.

CORBA
If a Class is a Blueprint and an Object is an Instance. The Instance is a Runtime Implementation of the Blueprint that is a Class. Then to add Impl to the class name the Class is not a Blueprint anymore, it then morphs into an Implementation because the Class Implements an Interface. Surely this is an illustration of Pindu-ism. The Oracle pindu has created a virus of confusion because he has relied heavily on Java compiler error message to support his supposation when he should have read a book OOM which say you can define method body abstract classes but you can ONLY define < abstract > method declaration in interface class. This point is emphasize in the animal dog class illustration with comments on this one page website.
ClassImpl

Initially the RMI was rigid with the ability only to execute objecv behaviour in the illustrationme single JVM machine on a single port. That is to say both client and server were running in the same JVM machine. We as application programmer can relate to RIGID code behaviour, when we temporarily hard code to isolate a subset functional route for trouble shooting purposes,use exit to terminate, we may even pass a string to make the code think a file is being passed at runtime. Although we do this in our development environment NEVER for release. These are application programmers' strict private practices not to be viewed by others even other application programmers.
These people actual release the hard coded version, Anyway once "hard coding" was removed from RMI, RMI achieved flexibility, the ability to pass objects with their behaviour back and forth between remote JVMs machines.
Further surgery was necessary to remove stubs, skeletons to clean the code to bring it closer to Pascal's clean code Gold Standard. If you are not familiar with stubs and skeletons, these are tools used for unit testing with programming languages like Ada (aka Green Language) and Pascal. Obviously to use testing tools rather than the design tool namely the double interface was wrong.
To take RMI from a single machine to what it is now REMOTE, clean code, robust, flexible technology, RMI had to undergo many enhancements. Then more bug fixes due to those aforementioned enhancements. The usual development lifecycle of any new technological paradigm . Obviously knowledge holder of the sacred path to Gold Standard Source Code I was waiting but could not influence events, frequently downloading the JDK bundle (my work place had a very good Internet, I didn't have an internet at home at the time, no need , I'd rather have proper social life). I had to remain quiet and just wait, no matter the insults and offences. I was getting especially impatient with life membership to {MUM}. I think the task of replacing Call from RPC to Invocation in RMI may have confused these people. Hence the use of stub which is a testing tool i.e. stub testing, in prcedural language when really should have used the double Interface which is part of Object Based Design Tool. I have doubled checked that the Interface is indeed an Object Orientated concept in my recommended College text book by Grady Booch.
We have seen this self inflicted confusion before with Naming Conventions when making only variations of Naming variables in the Billing Engine and the poor customers ended up paying for International Calls when making local calls. I did try to join the group by claiming I was also confused too. I think they did not believe I was confused like them and I was told promptly we have have no interest in that person publicly on an email list subscribed by thousands.


Secure By design JAVA RMI: Secure by Design.
Once the client programme starts up, the application processing is executed in RAM memory by the kernel like any programme. The behaviour of the local application is transported on an as needed basis across the network over TCP/IP from server codebase somewhere to the client RAM memory. The transported object is garbage collected by JVM's Distributed garbage collection as soon as the client JVM releases reference to the object. The security aspect is that there is no risk of some one decompilimg classes because no classes on client disk to decompile.
Secure By design

Latency

The Indiana University suggests that Latency could be an issue and is left to a programmer to address. It took me ten minutes to conduct a latency test with RMI. It was really easy for me with the help from {MUM}. I guess that makes me a progammer as defined by Indiana University. I have also fixed the University's long standing Bug that Object-Orientated is NOT language neutral unlike CORBA. I have demostrated this bug fix by showing Object-Orientated is a Methodology same as {MUM}. I guess that makes me very good programmer or perhaps system Integrator ?

Latency
JAVA RMI Proof of Concept: from UK TO Santa Barbara USA Distance: 18,000 km, Time Taken: Round Trip in 97 Milliseconds

RMI Timing

{Current} Architectures when These Considerations are Irrelevant

Static Html, JavaScript, CSS Websites,JAVAFX,

4 {GL}

Two Tier Architecure is used for Intranet applications, It is a tightly coupled client server Architecure. Two tier are suitable where the use case is Fat Client. Programming Languages used for this use case are called 4 {GL} or 4th Generation Languages. Grady Booch described 4GL as tedious programming tools. These programming languages only use a subset of one programming language making the development of large and complex applications easier to manage. Easier in this context means projects are likely to be on time and on budget.



If you want further details on the advantages of OpenRoad 4.1 over Java, you may contact Computer Associates, a consultancy firm for further details. AFAIK those other technologies cannot download and execute object implementation (behaviour) only data.


Java Bean tightly coupled [object,state] to JSP {in-JVM processing }

Java Bean with JSP Useful for addressing the backbutton movement
< jsp:useBean id="RefId" scope="[page|request|application|session]"
class="packagename.className" />
retval = <% = RefId.getBeanPropety() %>

JSP to direct Database without RMI or EBEAN etc.

< jsp:setproperty name='db' property"*" />
<% int numColumns = 0 ;
ResultSet rs = null;
%>

// abstract class
abstract Animal {
   public void animalSound(); // interface method (does not have a body)
   public void sleep(); // interface method (does not have a body)

public void animalSound() {
   // The body of animalSound() CAN be provided here
   System.out.println("The dog says: woof woof");
 }  
}


loosely coupled to JSP or GUI; Remote JVM Processing

Academia's Version            Commercial Versions
Java RMI    E-Bean    MBean IoC

// Interface
interface Animal {
   public void animalSound(); // interface method (does not have a body)
   public void sleep(); // interface method (does not have a body)  
}

// Dog "implements" the Animal interface
class Dog implements Animal {

public void animalSound() {
   // The body of animalSound() is provided here
   System.out.println("The dog says: woof woof");
 }

public void sleep() {
   // The body of sleep() is provided here
   System.out.println("Zzz");
 } }

class MyMainClass {
   public static void main(String[] args) {
   Dog coco = new Dog(); // Create a Dog object
   // coco wants attention
   coco.animalSound();
   // coco is sleeping
   coco.sleep();
  } }

IoC Code

beans.xml
< bean id= "DogRefId" class= "co.uk.backbutton.Dog"/>

public class MyMainClass {
private static final String CONFIG_LOCATION = "beans.xml";

// create context (container)
ConfigurableApplicationContext context
= new ClassPathXmlApplicationContext(CONFIG_LOCATION);
Dog coco = context.getBean("DogRefId", Dog.class);
// coco wants attention
coco.animalSound();

// coco is sleeping
coco.sleep();
// close context (container)
context.close(); }

HND Interview with Mr Dimitri

Mr Dimitri asked at the interview if I was to give you place on the course you are not going to give up and leave the course. What a strange questions I thought at the time. Anyway I said to him why would I enroll if I was going to give up. Although when I was being taught my first language,Pascal, I was asking myself what am I doing here ?
I think there is substantial evidence on this website along With What I have seen in the commercial sector to show I am the world's foremost authority on application development. Further real life evidence to follow. That is the final chapter. Then I will clean up and rearrange the website.

Mr Dimitri drew a linear project lifecycle diagram on the classroom board. He said coding should be 10%-15% of project time. He went on to say for some reason when a project is over running or late project managers tend to panic and throw more people at it. He said that is the worst thing to do because now you no need to train more people to get to know the project. This will mean the project will over run even further. Being able to sell MS Word as an easy way to do browser programming and Booch's comments Industrial strength Software being beyond the intellect of a developer, I do understand why he asked the question.
Best practices Commercial
Project Software Development Lifecycle



Commercial Product Support

bytel product Support

bytel had three lines of product support. An end user contacted the support team. If it was a case of the end user misunderstanding the software then the end user was helped with a step by stepas 1st line support. If the customer had identified legitimate software problem then it was ascertained by the support team whether the issue was a dirty data issue. It it was dirty data issue then that was 2nd line support. If that was not the case then the issue was categorised as a software bug. The software bug was then categorised as to the severity by the support team. The bug was first logged into the bugs database. If it was the highest level of severity then the bug was investigated the data analyst. The data analysts then made a report and gave it to the particular contractor who specialised in that software subsystem. When the data anlayst came to the contractor that is when his constant chatter with other contactors came to a sudden halt and became an invisible member of the team. After the bug was fixed then it went to testing team. Once the fix passed the test then the code file changes were installed on the live client site.

product Support

The manager gave me the task of calling mail API from database. At Logsys solutions I had access to all the software I wanted and I used to play about with Oracle Database quite a lot testing its constraints and testing out the documents. I was not given same access at bytel, in fact I was refused Windows NT CD to install on my home PC by the support guy. I looked through the Oracle Database documents and found two ways. One was to use ext proc DLL by binding it to the Agent server and the other was from a database to execute PL/SQL and use write a listener in C as an intermediatory which would interact with both PL/SQL and Mail API/server.
There was example code on how to use PL/SQL but not the ext proc DLL method. So I went to book shop to get a book on the dll syntax. I then tried to install C/C++ { WINDOWS (GUI)}IDE , but it was crashing. I got the Windows NT MS service pack installed it then install the IDE.On the *nix operating system they hav enuilt in gcc command compiler. I tried the syntax I found in the {WINDOWS(GUI)} IDE help system but wasn't getting the expected outcome from {printf()} system.out.println. I tried the book code too but no luck. As it happened The company had a support contract with Oracle. So I told him that the C code I was trying wasn't working and if he can give me tried and tested code. First he said that is CONSULTANCY . I said to him how can that be CONSULTANCY when you provide code for PL/SLQ. So then he decided to cooperate and asked me to give him my code and he will have a look. He gave back the code, cleaned it up a bit and called the two files runit.c and testit.c . I found that to be derogatory, but it still didn't work. I called him and told him so. I expected him to say I have tried it on my machine and it works, of course if he couldn't install the IDE then he couldn't try it. So he said we don't support Oracle Database on NT. I didn't tell him how I installed the {WINDOWS (GUI)} IDE, because that would definitely have been consultancy for free . I got the job done with the alternative method in my simple and safe way and felt really great of getting one over the mighty . So it seems generates revenue by converting its bugs into consultancy and making you the developer feel like it is your fault their software doesn't work. I avoid . It makes me feel sick to know that I may have to get Java certification from .

Career Path

Rather than accepting a safe career job as product support, I began my career working as a junior software Engineer in a safety critical bespoke hardware and software development environment. The client is equally technically aware. Only best practices are followed. ADA was developed by the Aerospace & defence Industry solely to avert a software crisis. Other Language I came across was Pascal. Does not have Persistent Objects & Concurrency. 3 {GL} Languages such as C, C++ {CPP} are frowned upon. One reason, Syntax readability. There are others reasons too. Use of Concurrency is a consideration so not permitted, simplicity or use of basic programming concepts is encouraged. In such environments there is only one production version. 1.0. On one project a mathematician was a member of the team. His role was to make complex calculations for the technical lead to programme the bespoke hardware. The technical lead was provided datasheets {communication protocol, port addresses i.e. watchdog,ACK, handshaking, etc.} of the bespoke hardware from hardware engineer(s) {in-house, client} . There is a clear separation of roles between hardware engineer, mathematican and two programmers. The Tech Lead was an ADA programmer , the other programmer was the assembley language programmer. He is the one who wrote assembly language subroutines from the hardware data sheets. The assembly language routines were then used by Tech Lead for devising application logic.

Do you have a minute ? I asked. He replied yes sure. I know I am supposed to do unit testing, I look around there is so much going on, the big Rig test room and all these documents, Do you have a top level document how the system works. He wrapped his sandwitch up and put it away neatly in his lunch box. Pulled an A4 sheet from one his document bundles. Flipped the page over to the blank side.Picked up the bic pen and began to draw. After he had drawn a number of components he then began to explain each of the components. He explained it is so clearly that I was asking questions as he was explaining and he was giving answers. He shocked me a bit with one detail. When he was finished I asked him that I heard that aeroplane software has black box and the software is supposed to be fail safe. He pulled his chair back and said here is the black box. He then explained how the bespoke software was fail safe proofed. It took all of 20 minutes and I had been downloaded with hundered of Millions of Dollars US of best research and development in the world.

After that day my best time of day was as I came in to work. The moments when I walked past the Iranian phD student who was doing his thesis on the project. He was going to spend a year writing his thesis from the specification, test documents etc. Searching through Bundles and Bundles of documents. He was always holding his head and always looked stressed trying to figure out the system so he can document it. I on the other hand accomplished the same in 20 minutes with a diagram from the project Technical Lead who developed the system over the past 4 years. The diagram labelled "competing paradigms", means so much to me because it reminds me of the diagram the Technical Lead drew for me. He then went on to send me to do fix of crashing system of aircraft engine monitoring system.

The gold standard in writing source code If you are wondering if there is such a thing then I can assure there is. I was given a printed sheets of paper with Pascal code and no other documents. I was told the engineer who wrote the entire software had left because the project was considered complete, passed and installed running live on aircraft engines. I only did a code walk through from printed sheets, I did not compile , test or flash. It was not a Boeing project so there was no mandatory accompanying documents. It was by reading the code I learned of the problem. The problem was that there is not just one startup but two startups which the Software Engineer was not told about, otherwise he would have compensated for it. Having seen the Gold Standard of coding I always compare any code I see against it. If it wasn't for a demonstration of the gold standard in code writing then how else would a college leaver discover so easily the second startup ? I have never seen code which comes any where near that code. It is possible to achieve a Gold Standard in writing source code. I knew nothing about the bespoke hardware, All I had to rely on was Pascal source code.



I then moved into an environment where a large and complex product was development using a 4GL. A 4GL language, principally is very much like Ada, designed to make software development simple. Further Best Practices were also followed leading to successful product Generating £18 GBP Million Pounds Revenue per annum from the work of 9-11 4GL developers, 2 testers, 3 Data Analyst , 250 tables on Ingres database B.I. not included.




To complete the challenge Booch Grady had set I needed Software Development experience where projects would be at different stages. I found such exposure at a software house. It was there I discovered one has to be diligent when choosing the right vendor solutions. In my case choosing the right skills.




I had set myself a goal at College when I read a recommended text book on OOP where Grady Booch taught Object Orientated Methodolgy using c++ Programming Language. In this book Grady Booch stated Industrial Strength Software is beyond the intellect of a developer. Object Orientated methodology allows the large & complex problem to be broken down or simplified. A process to identify the constituent parts of a functioning organ into smaller entities. One can only can do so when one is able to Conceptualise. For example I was able to conceptualise my accountancy skills in to programing in C programming language. I Know I completed my objective of achieving mastery of Industrial Strength Software when I was able to conceptualise whole systems and architecures. I began to understand Booch's statement and any developer should take his statement as a challenge. Once you have achieved the great plane of conceptualisation then you will be ready to carve your own on path. Joining that group who have also achieved that same enlightenment called conceptualisation.



DataWarehousing or Business Intelligence

I once attended the wembley conference centre where datawarehousing and Business Intelligence companies were show casing their products. The salesmen were given strict instructions not to allow developers to see their products. So I never saw the products. This is because these products are very simple in their functionality for a developer. So any developer can look at the functionality and replicate it. Then the developer would probabaly improve upon adding bespoke features. What I found strange is why would any company use such off the shelf products, because if you use off the shelf product and you (end user) had an idea to get information from your database to make use for you business. You would have to tell the product vendor.That product vendor would then add that feature in to their product and offer the same feature to your competitors and charge you and your competitors. So your business idea you thought would give you a market advantage over your competitors would be negated by the data warehousing product company. I knew that datawarehousing was simple but what I did not know was how to deal wth the issue of heavy processing until I downloaded the Java sdk, looked through the documents tried it out. I tried out RMI {remote method Invocation}. I finally solved the puzzle which had bothered me for a long time from my previous employment.


Punchcards to RMI

Punchcard to RMI or complex client programming solution to simple client programming solution. I follow simple software solution strategy, naturally my preference is any programming solution which moves away from client programming solution using punchcards to Object Orientated client and server programming. I did write on the IBM websphere mailing list that I am looking for such technology, the Indian IT industry on the IBM Websphere mailing list responded, stating categorally they feel any such simple software solution is wrong and they prefer the complex solution which could only mean using punchcards. I wish them the best of luck, in the meantime I am looking for an even simpler software solution then RMI, if I cannot find such technology then I will remain with RMI.

C to RMI

The manager came to me asked you know C don't you. I said yes. He said one of the other project needs some one who knows C. I had not done C for 5 years. It was a migration project from FAT client to thin client. My task was to call mail server from database server previously this was done from client. The Oracle database documents showed two ways to do it on the server. PL/SQL and C++ DLL. There was no code example C++ DLL interface in the documents.

I decided to go to the book shop and find a book with C++ example code. While there I picked up book on html because the developers on the project had been using html I think. This html book mentioned a weberver called Apache with a link to download it. I set it up and left it at that. HTML is authoring documents and that is of no interest to me. I see myself application logic developer which is an entirely different activity from HTML'ing or browser programming. At the Apache website I found some thing called tomcat. With my confidence I opened up a DOS window and ran startup.bat I recived an error message saying no JDK detected. So I went on internet and java.sun.com website where I found JDK. I downloaded the zip file for safety reasons. Extracted it on my C drive not in Program Files because it has space and this software may not know of it because there was also unix shell scripts and unix do not have spaces in file names AFAIK at the time. I edited the startup.bat file and setup JAVA_HOME.I did it this way so that after I am finished with it I can just delete the C:\tomcat directory and C:\jdk and there would be no residue left on my machine. I once again ran startup.bat and tomcat started up. I think in the readme it said to go to browser and put in http://localhost:8080. Futher to what I know I wasn't expect a response from the browser and it was a shock for me when I saw the tomcat home page in the commercial Microsoft Browser.

Seeing the index.html page in the browser had a number of significances for me. This is because in my previous employment I was trained on CA Openroad (4GL) then later on Oracle Forms (4GL). In my current employment it was pretty much the same. There was a further complication in my current employment because the ORACLE assumed the project manager who chose their tool and the developers who worked on it are incomptetent. When I was asked to do the impossible by a sneaky manager I saw the flaw in the Oracle product as demonstrated in the prototype. Being tied in to a vendor limited both my employment opportunities and the skill I could reach.

After I set it up tomcat and read the documents I realised that This tool could be used to execute logic on the server and this is the tool that should have been used to call the Mail API for that project. It was a case of managers being managers.

From Tomcat I came across a language called Java on the sun microsystems website. I downloaded the SDK looked through the documents and noticed something called RMI server programming. I Set it up and ran hello world to see a demonstration of its functionality. I soon realise this was something entirely new and used object orientated programming. More importantly I figured out I could use it for that Datawarehousing problem I always wondered about. I knew one could not do datawarehousing with Openroad or Oracle Forms.

The JSP Servlet examples which came with tomcat were not enough to explain what they do, so I then got a book called Java Server Programmming. This book explain all these technologies I never heard of. The technologies I decided to focus on is JSP, BEAN, RMI and I view them databases very well as disk management their proven use for large and complex system and data management. Once I was satisfied I had all the tools I needed to program applications I decided to put them away for future use. One thing I was not going to do was to train on a vendor tools ever again. I wanted a sustaniable set of skills. Thanks IBM for websphere but I had made my decision. To find out whether a technology is sustainable is to wait and see. So that's what I did. I had no more challenges to conquer.

When I had started tomcat there was some email addresses one could subscribe to. Through curiousity I decided to subscribe and find out. People were asking questions and people giving answers. I decided to ask a simple question out of curiousity. I got no response. This irritated me so I decided to interrupt an email which said didn't work . I decided I was going to show off and show I am not the kind who needed any help. I made fun of their tomcat and how dark ages they were I didn't realise It was a world wide joint effort of some kind. I then created senario problems on the fly as I wrote the email and solving them on the fly with my make use method I learned in college, recalling some java language features I had read in the JAVA in a nutshell book, while displaying the concepts I had picked up over the years. I knew this would mean nothing to the less qualified but to the most qualified expert(s) they would realised what I had accomplished in an hour or two during my lunchtme, That most I.T. people cannot do without training and then some. I could see that setting up RMI would be difficult for the uninitiated but not for me and my ways. The fact that MBEAN runs on same default port 1099 as RMI, can mean only that the owner, inventor of RMI refused to sell intellectual rights to Oracle leaving RMI as Free Technology to Make Use of for Application Developers. Oracle can only make use of it. Oracle doesn't have control of JAVA application servers either, so what did they buy ? the Oracle architect is proposing to eliminate java.io.serializable claiming it was a mistake. I found RMIs in the j2se jdk bundle with documents. The installation instructions were missing for a long time and I couldn't understand why nobody noticed that or the endless possibilities of RMIs for application development.




Success Lasts

I believed at that time I discovered the RMI I believe it is technology with sustainable future. especially for some one who had hopped from technology to technology. That was a long time ago. Oracle's MBEANS is basically a wrapper on RMI for commercial reasons. They both starts on port 1099. So It is still going with another name. If you want to attach it to a remote sensor and want the remote CPU to do the work, that remote is most likely written in C then java provides C /C++ interface for you can make use of it.


Network Communication

Network communication is very simple as taught at Reading At College of Technology. First there is a Handshake Routine with a hello, how are. These are BITs turning each other ON and OFF on client server , sender receiver. if Handshake successful then the data is sent. The DATA Packet is sent. The data packet has three parts. HEAD, BODY ,TAIL. The HEAD contains the destintion address. The Body contains actually data. the TAIL contains the checkSUM. The checkSum contains the total number of bytes in the body if the socket read programme checks the total number of bytes is equal to the checkSum figure. For speed the data packet is sent in 1s and 0s and converted back with an API then converted back further by an HTML API. The tricky bit is the size of the body you should send. For example an image in one data packet or break it down in to smaller data packets. If so How many pieces. At the same time hardware I/O buffer is a consideration too. SO the algorithm one applies to the body starts to get indecisive i.e.[HTTP 1.0/1.1./2.0 etc ] what you prioritise, what are the limits, hardware improvements. According to a book by o'reilly the communication is very simple know only to a few, but this book fails to mention it is also known to those students who went to Reading College of Technology. It was this knowledge which landed me the job of fixing aircraft bug on an engine monitoring system.
About three weeks later the engineer who gave me the paperwork to the bug asked me how I was doing with fixing the software issues. He also told the original engineer who knew the software had left. I think that was an excuse. Anyway I told him it is fixed, the hardware engineer is testing the fix. I noticed his jaw dropped when he said already!. BOOM BOOM . So little appreciation for the learning of Reading College of Technology.

what is URL ?
When you put the URL in the Internet browser and press enter. The browser request goes to the web server. The URL navigates its way with the destinaton address contained in the HEADER. The webserver then sends the requested page in the BODY, while navigating back with the address to your bedroom contained in the HEADER. So when some one pokes or peeks some one's machine via the internet, while giving their ID first. The address also given away at each router. It is like robbing a bank without a mask and making sure to give you ID first. I have a name for these techies. I call these techies Pindu . The data packet containing address of destination for navigation in the HEADER is Secure by Design. Now you know what a URL would you visit https://letsencrypt.org/. I would personally want the address of the hacker's cellar where he/she sits , sweaty, smelly, unshaven.The address can be found in the header of the data packet he/she sent to you. That is what I pointed out to the Ada Technical Lead when I asked who manufactures the fuel display in the pilot cockpit and the communication protocol between the two systems. I impressed him with that knowledge I had and the understanding of it.




Commercial Awareness

The Easy Sell I completed my thirteen page course assignment on Round Robin, the five Philosophers etc, I used MSword, a word processing software and was ready to print and hand it. I went to FILE -> OPEN -> selected file and selected OK. Instead of seeing the file I got an error saying could not open file. I tried to open it about ten times in desparation. I then mentioned it to MR Dimitri in the next lesson. He open the file in MS DEBUG doing a memory dump. We could see two types of characters ASCII and Binary. As we scrolled down the file we say two strange characters. He pointed that these two characters have been corrupted. So he extracted the top half of the file using memory addresses up to the line above. He then extracted the bottom half of file from the next line below to the end of the file. He then merged both files into one file using DOS Debug. MS word opened the file without any problem and all I lost was two words from the entire file.

I logged an emailing list for products where I made use of the same datawarehousing salemen's method, and applied the same to my competitors. I was working for a uk Software house at the time. Knowing that there were competitors on the line and they had not attended Reading College of Technology, I suggested I had discovered an Easy way of use of MS word to quickly set up websites. The key to this rapid application development system was that you MUST use the correct versions of JVM, Operating System etc. Then I said I had to go and did not have time to give version numbers. Those who were on the line looking to steal ideas would be spending alot of time going through the version numbers, looking to do rapid application through theft of commercial ideas, to put me out of business, actually accomplishing the opposite.
The idea I had suggested was that you can use the drag and drop facillity of MS Word to design the page. wrap it in a zip file, rename the zip file to webapp war file and the server would send the document and the document would show up as is (WYSIWIG). This is because Microsoft had settle their differences with their competitors. I suggested that I was making four to five websites a day using this method.
I knew this idea would be an easy sell because I had worked in commercial software development for four years following the aerospace experience, so had a good idea of software development skills around me.
I can imagine 1000s of developers in third world Software houses being tasked to find out the compatible versions from the unlimited combinations.
Once they had failed to replicate what I had done, then the real fun starts. They would then use their influential contacts with W3c and IETF etc. That is when the real experts would discover what a bunch of pindoos these third world GURUs really are :)
My idea was so convincing for one company that I was given a job. When I found out real reason for recruiting me I left the company in disgust. HOW DARE YOU !! even ask me especially indirectly.
that company is Business Object in Maidenhead UK.


Commercial Sense

It makes commercial sense to me that if I found technology which is simple and flexible and really great for developing applications. whether those applications are large or small to keep it to myself. Technology that I know Industries like aerospace and defence would approve and is inline with their concepts. If using MS Word for developing website is an easy sell then RMI is an even easier sell except RMI is REAL. Why I should I tell my competitors ? RMI is old technology now and I think every body must know by now , so no harm in mentioning it now on my website to show my software development superior skills.


Software Success & Failure

Obviously for me it is incremental learning so it is unfair to say I have no knowledge. Employers expect to send people like myself on a week's training on a product of their choice. I have been on many such courses costing huge sums of money. I do not prescribe to that anymore, so I choose technologies which interest me, cannot be taught in a week, I can use my own sense rather than a trainer who has no development commercial experience. If I find a compatible employer when I am ready so be it otherwise atleast I had a good time learning something of interest to me. It took me in total seven years to get to this point alwys pushing myself. After unwisely joining product maling lists I have been asked questions at interview, but I avoided always giving the actual answers. No free consultancy. I have would be happy to talk if the interview was open and honest. Job Interviews are two ways, I also listen and I make up my mind. If an employer wants to make the most of his investment then he needs to learn to pick the best candidate which doesn't always involve asking programming questions. After all one must have done the job competently to be able to sustain employment for 5 years in Software Development only. It is my experience IT software projects are at high risks failure not because of developers' programming skills but mostly due to lack of skill of those who run the projects. I can tell from job interview questions and the process whether they have chance of success or failure. I believe I know the difference between successful projects and failed projects. I have seen both first hand. Three success and two failures.

The Highlights of my commercial software development time

The SOP

I made some enquiries to find out if there were any real time modules in the SMS customer care and billing system which were not part of the two tier fat client to database infrastructure. I found the senior developer who had developed it and so approached him as I approached the Aerospace Tech lead in my previous employment. I asked him if there any documents on that module because I wanted to see how it worked. He replied it worked same as everything else. I replied back that I know of two real time systems from my experience in the aerospace industry and they both work quite differently, so I don't know what you mean. I put him in his place and walked back to my desk. I have come across people ten times better than him in social skills and technical expertise. You find quite a few in the IT Industry like him. One thing we know about him is that he didn't go to Reading College of Technology, If he had then he would be able to produce documents accompanying the software he development because report writing skills is a mandatory skills in software development.
A few weeks later I was informed I am going to Glasgow, there I was met with an employee who explain the stand alone system from the end user point of view and how they use it. When I came back The sub system was downloaded from the version control system to my Work Station.
The SOP or the standard Operating Procedure as part of software development cycle is to get the developers to meet the end users for the purpose of analysis and requirements gathering so the application developer can get to know what they are going to programme. I think this is one of the keys stages to a successful software application development life cycle. the peep developer episode followed the The SOP.

The developer's developer

The Human Resource officer organised a career development meeting with the project manager and the three permanent application developers. There were two development employees who were long term from the beginning of the company and so were senior developers. The project manager started out the meeting by saying the purpose of the was to progress your skill development, unless you progress further to analysis, with programming skills you will reach a plateau and remain will as juniors. This remarks sparked a uncomfortable exchange of words with the one of the other developers who objected to programmers being referred to as junior. Incidentally the programmer objecting to being called a junior had been trained in OPENROAD {4GL} by an employment agency and then the agency found a job for him. I had heard that the project manager was given a verbal warning by Human Resource officer prior to this meeting because he was rude to one of the Contactors. I did pick up one other tip from the meeting which is that an application test conducted from login screen to the end of a route is called a application thread test .

The next meeting arranged was with what heard was one of the world's top DataBase expert who explained the importance and role of databases. He just got on with the explanations on features and how the databases worked. My take away is that where ever possible get the database to handle the persistence data for you. I believe this was the reason for the enormous amount of tables (250). The were so many two column tables used for user drop down lists, picked up at run time when the screens were launched by the end users. The benefit is of course there is no hard coding in the source code, so flexible.

The 1st power player
The HR arranged a meetting for all staff to let them know the annual revenue, saying that it is remarkable for a company of this size. Thirty days to that meeting the Project Manager has given notice. He comes to me to say goodbye. He ask him where is he going ? He says India. I ask him are you to be close to your family ? He was like me british born Asian with family in this country. He replied yes that's right.I knew he was BS'ing me. Soon I find out his move. He went to India to find an Amercian investor and share the company revenue, at the same time migrate the product four one 4GL to another 4GL. The existing product used Ingres Database and the front end developed in a mixture of Openroad, forms 2.5 ,COBOL, FORTRAN , whatever the contract developers were skilled in to develop the product. Each developer is focused on a separate module to reflect the client business functionalities. The power player's main and only consideration was revenue commission from investor and from Indian Software.

The 2nd power player
The contract developer were given a week's notice and told to document their area of product expertise before they go. The whole group of contract developers with out dated skills all went to same project. Two seniors managers who left bytel a few months earlier, recruited them all at contactor rates. These two senior managers were involved in the company from business startup. Simon Edlin went with them by making use his ability to network with others.

Who of the two power plays got the better deal, The project Manager using an Indian software house with people skilled in Oracle Forms but no knowledge of business they were programming ?
or
Simon Edlin and Siemens and the two senior managers who took the Business Knowledge to produce the same product again ?

What did the new investor gain by paying for a migration from one two tier client fat client technology to another fat client two tier technology ? Consider also the product was scattered modules which needed integration and J2EE with its thin client had come in to the market. It seemed to me with knowledge of J2EE and the product , J2EE was made for that product. Known as SMS customer care and billing system. It was eighteen, months later when I came across J2EE and made the realisation but I didn't work them for bytel anymore.

Datawarehousing experience
I was assigned by David the line manager at bytel ,slough, uk to another new manager Simon Edlin,who just joined the company. Simon says to me our customers have told us that a number of datawarehousing companies have approached our customers wanting access to the database. He says to me we are a software house so we can't have these database warehousing companies offer a service we can offer on our databases. He asks me do you know anything about data warehousing. A few weeks earlier I saw a contractor working on a work station looking up a book. When he picked up the book on one occasion I could see the title, I think it was called unix unleashed or something like that. How strange I thought he is supposed to be contractor so he should know the syntax and what he doesn't know he should be able to look up help (man). If a contractor can use a book then so can I. So I replied to Simon I will get a book and figure it out. He said OK you do that. I got a book on datawarehousing. I flick through the book, data warehousing is basically three dismension cubes or three columns with one column representing time or area. A column one can use to drill up or down by adjusting the where clause range in a select sql statement to measure an activity. An activity can be customers joined, made purchases, customer left etc. So I went to one of the DBA and said can you print me copy of the database meta data. (relational database diagram of all tables). He asked if I wanted it printed on large sheets so it would be easier to read rather than A4 sheets. I said OK. Couple of days later he provided me with double sided A0 size sheets. I was looking through the sheets for columns I can use to make cubes and the recently joined Project Manager walked past. He asked what I was doing. I said I am looking at the tables to see what data warehousing cubes I can make. He said I have been told there are 500 tables. I said No, 250 tables (249). I went back to Simon Edlin and said OK I have the cubes, there are alot of crunching data and they are also graphs involved which need to be clickable for management information. I need a tool to do that so I can connect the cubes to it. He said ok leave it to me.
A week later he said there is an event at the wembley conference centre , datawarehousing companies are going to show case their products, we will go there and find out what tools they use. Here is a a ticket for you. keep the receipts for your travel and you can claim it back from the company.
I met up with him at the wembley conference centre. He said to me go there to the stands and have a look. I went to stands set up next to each other. I went to the first stand and said to the saleman give me a demonstration of your product. He said no , you are not a customer, you are a developer and I am not going to show you. I then went to the next stand , this saleman saw what had happened and said I am not to show because you will take ideas from my product and I will be out of job. Sorry! not happening! he said. I went back to Simon and told him they are not letting me see their proucts. Simon said , Ok never mind I will think of something else.

what are we really saying ? what has this experience taught us ? The salemen was right I can visit some exhibitions, or hunt out some free ware and make it commercial ware like websphere, weblogic or Business Object's webi. I can pick any apache foundation project or product and make them into commercial ware.




Software skepticism.

My software skepticism began with the oracle two tier think client product. After I found tomcat the application server and its functionality I couldn't believe that my instinct about Oracle's Commercial product were correct, moreover this product was free and actually better than the commercial product. Not just any commercial product but ORACLE's product. I was in ecstasy at the time. I could see I could use this product to make a living. When I was given IBM websphere, after I logged on a mailing list, by some nice people, my doubts subsided about tomcat being being commerical quality product. I made a detailed examination and I discovered that IBM Websphere was Tomcat with GUI. I was no longer tied into a vendor. I was amazed to discover these Tech Giants were selling tools which were not design by them but by some world wide collaborative effort. The vendors simply downloaded the raw source code renamed it and added GUI installation. The really great feature is that one can train on these products at their own pace and reach the plateau.

Troll Website
I gathered the information I needed for my ZEN and the Art of the Motocycle Design with one question from somebody who had also read Booch Grady's book and understood the meaning of that phrase. At same time leading my competitors on a wild goose chase. When they realised they have gained nothing by following me mailing list to mailing list. They set up a website in my name saying that I was trolling mailing lists. I was even invited for an interview supposedly for a job where I was supposed to give them results of my smart work not hardwork. I was supposed to tell them the flaw in the ORACLE product. They drew it on the board. I smartly gave it a look so they can see I know, for I am the scarlet pimpernel { they seek him [pause] here , they seek him [pause]there , they seek him [pause] everywhere }. Why don't you do what Booch says prototype , prototype , prototype or if you know what you are doing, like me just do one hello world. That was HP in wokingham, England UK. The Russian guy who couldn't get a job in Russia , but in UK the one who said Bean is an Intraprocess and E-Bean an interprocess. These people did know of the sacred path to the Gold Standard otherwise they would have seen I had what I wanted very early on with question. These people do not know of me that I am the who walk past Iranian phD Student with a wry smile. There is a concept called smart work which is unlike hard work, but to apply it correctly one has to be privy to the sacred path to the gold standard.


Microsoft word as Interpreter and the Internet Browser as Interpreter can be thought of as competing paradigms where Microsoft word is an intraprocess (tightly coupled) and Any Internet browser is an interprocess (loosely coupled). Those are my thoughts on those terms. Meanwhile local objects in Java are called by Reference like * pointers(to memory) in C and Remote objects are called by copy like normal functions pass by value. I think. That is what Mr Dimitri said about C.

Database Normalisation

Why did J2EE compliant websphere website have the Canadian servlet based product ? . The same Canadian servlet product I had gone on a one week training course, the same product also on my company website. The Canadian servlet product which assumed a denormalised or perfect database design ( one to one relationship between form and databse table) and I was expected to learn bespoke vendor specific TAG libraries to use that product. I did go to College and learn normalisation and denormalisation . I hate the word servlets because of that Canadian Servlet Tool Company. The short comings of the same Canadian Servlet product which partly motivated me to search out J2EE compliant product tomcat and JSPs. I think of servlets as useradd linux command then later J2EE designers came up the JSPs which is equivlant to adduser, user friendly utility which auto configures the user environment and also comes with optional prompts i.e. user home tel: user work tel: etc.


I put the J2EE designers, J2EE product vendors including Websphere, the canadian servlet based producer , adduser utility provider, my previous employer in the same category. As an application developer { WARNING} be very careful where you spent your time, energy, talent on. Wait for them to go to adduser from useradd. I could only see they were at adduser stage. I cannot train on a product I do not believe in, at the same time I cannot stop myself learning a product I believe in because that excites me. I feel weird saying that because I am not GEEK. Do keep in mind I own the backbutton and I have explained the importance of it. I believe that qualifies me to make this warning. The only option left for me was to quit so I did !


REACTIONS ... to be continued



Coming from a 4GL background, over a decade a ago I became aware of the BackButton problem and the need to solve it in order to produce Industrial Strength Software. With Quality Software development experience behind me, The approach I adopted was to start from the top level and investigate the architectural considerations first. Implementation second. My approach has stood the test of time. My proof of concept is, I was able to purchase the domain backbutton.co.uk just recently. It has been available all these years. backbutton.com has an image of a game. The HTMLer can't appreciate its value in the same way an application developer can. It is NOT one of their consideration.


ClassPath

I find it quite worrying when I see that software developers do not apply my Make Use Method {MUM} to -cp to add libraries. The powers that be have to supply -classpath and further more recently in jdk 11 --class-path. It is evidence of software crisis .


WORDS in a Dictionary

There are over 1,000,000 words in the English language. An average person only makes use of 5,000. Some Academic may know up to 7,000 - 10,000 words. So make it a habit to look up any word you are not sure of. Never read past a word you don't understand. Stop ! look it up then continue. In the UK there is an organisation called Plain English Campaign, so the issue I described is a recognised issue. It is part of the english culture. Making use of good Naming conventions is a recognised part of good software development. Understanding words is critical to software development. If there is a lack in making use of Naming Conventions then that software could do with improvement. Software development doesn't involve digging ditches so you don't need big muscles just a dictionary.



Very Good Books

I always have at least two or may be three resources on the same subject in case one fails to explains so I can turn to another resource for a better explanation on the same topic or a topic is not covered. If RMIs are in the book essential Java then perhaps it is essential to have not just knowledge but also skills in RMIs.

RMI Java


The Setup

This book is indeed written by a professional, previously a staff writer with Sun Microsystems and now a staff writer with Oracle. If you follow the setup instructions you will indeed have RMI up and running. The author does make use of unsetenv classpath or classpath="" extensively. As you can see from the image above of my protoype, I never use classpath, class-path etc. nor do I have need to do so

When I setup RMI for the first time I did not quite follow the instructions. I started out with the belief the software was written by an expert born from an idea or experience. It was up to me to determine the RMI Environment. Remembering Mr Dimitri's directions, I began with one error at a time starting with the first one. When you get to my level of conceptualisation you will realise, --class-path is for Pindoos.

The Startup

After the rmiregistry has started, it will take with it any byte code you bind up to RAM. The rmiregistry will use reflections to execute object behaviour as requested by the clients. The application developer must keep the byte code compact so as not to oveload the rmiregistry. That is to say the remiregistry should not have to place any byte code on to the disk because you have not made enough RAM available for the rmiregistry. This will slow down the application run time response because disk is over a 1000 times slower than RAM. If you overload the rmiregistry then you have neutralised RMI benefits. I have no scientific proof, this is my observation from the Java Language characteristics.

Java Server Side

With the Internet comes the Server Side Programming. So for a MainFrame manufacturer sponsoring and supporting a language like Java which appears to be designed from ground up as a server side programming language probabaly made sense. However Java is also described as network centric. RMI, is a network centric API, RMI is a java JVM core. we have already discovered RMI gains, simplicity and language neutrality. The purpose of an API is so that an application developer can make use of it instead of re-inventing the wheel. One can say use of an API is a means of rapid application development. so RMI API is a means of rapid application development. RMI API is a means of modular development in a large system. RMI is a means of application deployed on smaller machines [load balancing][Compute Engine]. Should Sun Microsystems have looked further in to Java and realised network centric capabilities ? Where is SUN Microsystems now ? How does an application developer go to Sun Microsystems and say I am interested in Java server side programming NOT because I am interested in mainframe programming, but because I do not have to use expensive mainframes with JAVA ? [AWKWARD!]

KISSS IT


I was on the IBM websphere mailing list, I knew the Aerospace and Defence Industry was behind me when I wrote I follow kis software solution strategy . I waited for a response. A response came. Simple Solution to a complex solution is always wrong. Hundereds of Indians IT on the EJB-INTEREST mailing list cheered and wrote thick!! when I did not respond. I am not the one who was being referred to as thick but the aerospace and defence Industry who who taught me that. As you can see it say Simple Enterprise
is easy . Enterprise JavaBeans was designed because the Indians couldn't understand it so it was made easier for them so they could be imported at a cheaper rate. Simple solution to a complex problems is always wrong , well then EJB was made simple for you (the Indian crowd)and yes it is wrong, so why are you doing it ? Too simple for you ?

What Happened Next ?

I logged on Jini-interest mailing list further to the competing paradigmsdiagram. The first thing I was told was it was the Kernel (home PC). The intermittent error in my Java program was caused by the kernel not the JVM. Another words imperfect environment. More importanty it was just as concerning to them so they investigated it. Anybody seen a lost in space aircraft which couldn't fly in a straight line from A to B. I guess the Aerospace and Defence Industry did not share their fail proof strategy with you ? My chasing the dragon mindset came from Aerospace. India's direct competitor, one seventh in size has a home made jet fighter, on the market, while India haven't been able to get it up forty years. Finally conceded impotence,unproductiveness, disfunctional, and turned to France for their Rafael. It all comes down to a different school of thought

Hobbies

https://docs.oracle.com/javame/8.0/api/dio/api/index.html If I spend two hours a week on this page I will end up with serious number of inventions, probably integrated into Struts and/or Javafx.application.Application. Some Api names sound familiar, blast from the past, i.e jdk.dio.uart, jdk.dio.watchdog, jdk.dio.gpio . I know I will not find any disagreement or issues here. This is strictly by the professionals. I may learn to program a robot arm + hand , turn it upside down and call it a dog, The more versatile the arm + hand is, the more human like the arm is , the more versatile the dog will be.
email