Posts

Showing posts from September, 2023

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...

Web Technology Evolution & HTML5

Image
World Wide Web + HTML + CSS + XML + SVG is what that makes sense to me as today's Web Applications & Multimedia. For development of web application and keeping it up to date, one requires understanding of the evolution of the above said technologies, hence I was searching for some blogs or articles which could brief about it. Fortunately, I came across this  Info-graphic . It is something, which is more informative and I have not seen any visualization as such depicting so much of information in such a very concise format.  CanIUse.com  is one place where one could find more information in detail for further use in the same line as the info-graphic itself took its base info from  CanIUse.com . I know that for a developer the above info-graphics &  CanIUse.com  should be sufficient, but to get an edge over other developers, one should know who is making these change, the below info-graphic given that detail but not the development specific detail as ...

Information Technology Evolution & Intelligent Data Crunching

Image
  Today's Data   The Information Technology is being driven by intellect and intelligence obtained based on  data . Initially Databases were at one place and it was sufficient to provide all required data. when networking among people flourished through internet, networking among department and organizations mandated Data Warehousing units, to manage data stores. Social Networking brought many data which were considered irrelevant earlier to a relevant state and it has made a mesh of inter networking among individuals, systems, devices and organizations which was not feasible earlier. Today Data Sources are not just in personal computers, but are on Embedded Devices & numerous embedded devices are flourishing. And Data consumers lies through out the Internet in the form of manufactures, retailers, eCommerce vendors etc., The below depiction is relevant only to show that today static Intelligence is bare minimum and Adaptive Intelligence is on demand with the kind of d...

Is JSON surpassing XML or it is just a mirage with the advent of new supporters of JSON?

Image
  Is JSON surpassing XML or it is just a mirage with the advent of new supporters of JSON? The  3 Main Reason  for the thought. 1. With the advent of many NoSQL DBs like MongoDB, CouchDB etc., JavaScript framework like AngularJS, Backbone.js etc., and server side runtime Chrome V2 Engine & platform Node.js, usage of JSON format for data files has got increased when compared to XML. 2. Even in Java, we have been moving away from XML configuration by replacing them with Annotations. Which also makes things look like we have become less bent towards XML. 3. Micro services can expose data in either XML or JSON format. People prefer Micro services in order to reap the elasticity to form Agile teams and leverage cloud computing. More & More I find myself working on many micro services in now & in future. Here is a  reference  with data stating JSON surpassing XML from 2013 in its Usage. Why & When the Question rose? Currently I am working on a Java app...

Raspberry Pi & DIY IoT

Image
"Cloud Computing, Big Data & IoT connects one another in a natural way and they have the ability to stand alone." What is IoT? The Internet of Things (IoT) is a scenario in which objects, animals or people are provided with unique identifiers and the ability to transfer data over a network without requiring human-to-human or human-to-computer interaction. What are the Minimal requirement to form an IoT? If we consider the objects, animals or people to be "Things" in order to get into IoT Scenario, 1. Connection to Internet - Some way to connect to internet automatically to receive and send data about "the thing". 2. Minimal Processing & Storing capacity to collect & process data about "the thing" and store simple logical programs for processing data. 3. Natural Sensors or Built Sensors to sense the data. What is Raspberry Pi? A small Computer when compared to PC or Laptop. A small Operating System can be installed, so we don't str...

Make Raspberry Pi Independent of Peripheral Devices & Connector Cables

Image
I had posted " Raspberry Pi & DIY IoT " & " Pre-requisites to get started with Raspberry Pi " earlier. This post is a continuation of the series, here we shall investigate how to make Raspberry Pi Independent of peripheral devices & Connector Cables. The Idea here is to make Raspberry Pi portable & mobile and to connect to Raspberry Pi via Remote Connection or Remote Desktop Option. What components are required for making Raspberry Pi Independent of peripheral devices & Connector Cables? we require connector replacements like 1. Wifi USB Adapter. 2. Power Bank / Rechargeable power supply. Experience: I bought 2  WiFi USB Adapters . Actually 1 is enough, I used the other one for my desktop. I have not bought any power bank so far. Still dependent on wired power supply. We will require an another Laptop or Computer to connect with Raspberry Pi as a Remote component. In this post we shall see how to use Wifi Adapter and connect to Laptop/Desktop via...