Posts

Legacy Java Interfaces

Dated: 19-3-2014 Interface is a Contract between two parts of program/system/component.They are important design construct for any component/system/systems of systems. Some of the languages do not have any construct to support interfaces, they have to be realized conceptually. But almost all of the upcoming coming languages targets productivity, lesser typing drudgery, hence they do support them with language constructs. JAVA being a language highly hailed for Productivity and claimed as productive language supports interface concept by providing language construct "interface". Here are few of the important aspects of the language which any serious JAVA language speaker supposed to understand to gain fluency. These features or semantics are good for the "Legacy" Java Interfaces as few of them have changed in JAVA 8 version. 1. All interfaces are public and abstract by default/Implicitly and always. 2. Interface member type can only be public. 3. All methods in the i...

Java Interface in JAVA version 8

Dated: 20-3-2014 In my earlier post on JAVA Interfaces, I was denoting the existing interfaces of java as "Legacy Interfaces", as they have changed in Java 8. In Java 8, 1. Interfaces allow static method Implementation. 2. Interfaces also allow default Instance method Implementation called as default methods. 3. Interfaces support Multiple Inheritance for the implemented methods present in Interface. 4. SAM- "Single Abstract Method" Interface (Interface with single abstract method only) are called "Functional Interfaces" 5. Functional Interface Types (Object/Class/Interface type) are called as "Target Types" as they will be inferred during the Lambda expression evaluation based on the context. 6. Anonymous Implementations of Functional Interfaces can be replaced by "Lambda Expressions", if no state/field required to be present. Lambda Expressions actually allows us to create Anonymous methods instead of Anonymous ​class Implementations,...

JavaScript Debut as a Full Fledged Language for Production in the Age of Cloud, Big Data and IoT

Dated: 11-4-2014  "YUI","DHTMLX","JQuery","ProtoType", "GWT" & "DOJO" are few JavaScript Libraries and Frameworks which I will mention, if have been asked to state any. Mostly all the libraries and frameworks mentioned so far are building client end User Interfaces, Widgets and for applying Unobstructed JavaScripting either with CSS selectors as in JQuery or by extending the attribute for decorating the UI elements, i.e., nothing but the HTML Tag elements or XML Tag elements. During the year 2005, AJAX became a hit to bind the user data to the server asynchronously with XML to create Dynamic responsive Web pages. All the above framework do support AJAX for binding data. But, it seems that it has been lately realized irrespective of what kind of UI/Widget being employed on the front end, it has to do nothing but to collect the data from the User and pass it to server, hence data binding seems to have found its importance. I...

Following Java, Exploring Projects JIGSAW and KULLA - Intro

After my last post on  Following Java, Post Java 8 Release , I was able to Introduce  Value Types ,  HTTP 2  to Java Enthusiasts attending  MadrasJUG  Sessions and there by I too learned about them. Value Type Feature has been deferred to Java 10 Version, any way we had a sneak peek. Click  Here  to checkout the list of features proposed for JDK 9. JDK 9 will be hopefully released on 23-Mar-2017. Check Takipi's  page  to see more information on the dates of various phases of JDK development. In  August, 2016 Madras JUG meet , I was able to run few Quick Start Programs of  Project Jigsaw  to learn how Modular JDK is going to look like and how to write Modules in JAVA in Java 9. We also saw how Jshell works and  Project Kulla . Here are Steps to get a Sneak Peek of Modules of JDK 9, 1. Download  JDK 9  EA edition 2. Set JDK bin path in PATH variable and ensure Java version is Java 9 EA version 2. As per...

Journey with Helm charts

I have been working on kubernetes, docker and helm charts for quite sometime installing elasticsearch, jaeger and spark applications in kubernetes cluster. despite having been worked, never created a helm chart from the k8s files. It is getting too much clutter despite the reduction of k8s files moving away from pods, services, deployments, ingress towards Operators. Helm charts seems inevitable to produce our product as one single deployable file with few no. of parameters. So far i have used helm, https://helm.sh/docs/intro/using_helm/ Just 3 steps, 1. Install helm & minikube or point to existing k8s cluster from local 2. Install Helm Repository 3. Install required application  I use to install helm repo and install applications of required version and configuration.   https://hub.helm.sh/  - Wonderful helm repository with all charts required. Just like maven repository for jars. Post getting familiar with Operators, I happen to install Operators. https://operatorhu...

Elasticsearch Upgrade to 8.0

Breaking changes of elasticsearch have been places in below page, https://www.elastic.co/guide/en/elasticsearch/reference/master/breaking-changes-8.0.html https://www.elastic.co/guide/en/elasticsearch/reference/master/migrate-to-java-time.html Below are my notes on my learnings on elastic search with the upgrade. 1. In Elasticsearch 7.x, allowing multiple types in Indices were removed. Upgrade to 8.0 possible only from 7.x, no upgrade offered from 6.x 2. There is a REST API _xpack change, not sure why this has been changed, not sure of its usage except for login & security options provided by Elasticsearch as a proprietary soln. 3.  The  percentiles  aggregation’s  percents  parameter no longer supports duplicate values. I could learn what is a percentile, percentile range and how rankings are calculated. One of my reference is  here . It is an interesting topic in terms of algorithms. Elasticsearch reference https://www.elastic.co/guide/en/elasticsearc...

Following Java, Post Java 8 Release

Image
Dated: 18-7-2015 Following Java, What is Next in Store for us in Java? "I dream and so you and what if we could dream together to make it a reality." Understanding Language remains important to increase your programming aptitude. One of my dreams is to follow Programming Languages & their impacts and to feel good about their understanding while I build and manage systems. I follow "Java", one language after C has got most Users and attributed as the base for various languages. Java 8 brought us features like, Lambda Expression Streams API Type Annotations (Annotation at all places where type is used) Compact profiles and no more premgen Date and Time API Security API Enhancement Reflection API enhancement Nashorn (JavaScript Engine) JavaFX Enhancements I really feel and like the way Java language evolves with JSRs, JEPs and JCPs. When Lambdas were introduced, I enjoyed Interface evolution, functional programming, currying, functional Abstraction & Partial ap...