Front End Developer

“Javascript is to Java as hamburger is to ham; both are delicious, but they don’t have much in common except a name”
I’m javascript lovers and this is my site on witch sometimes wirte what i think, when i have some free time, and remember:
“Homo faber fortunae suae”

Recent article / guide

Complete Guide Ionic 3 Firebase with cordova plugin firebase

Okay let’s start to integrate in our Ionic 3 app the Firebase Google Cloud Message with the cordova plugin firebase.
In the Ionic 3 we can found the native integration with this plugin. For the documentation click here.
It work with IOS 10 and IOS 11 and latest version of Android, i have tested it.

In this guide we can see:
Install cordova plugin firebase on Ionic app
Setting cordova plugin firebase on Ionic app
Setting Firebase Cloud Message

 

Install the Ionic Firebase module

We must to install the npm library and the cordova plugin so let’s start to execute this command:

Then we must to use it on our app, so let’s start to include it in our app.module.ts, import it and then add into “providers” section.

 

Setting cordova plugin firebase on Ionic app

Now we can use it in our app.component.ts, for the grant permission, registration of token.
This is a simplest installation, import it, add in the constructor, and then use this.firebase to attach at the event.

For IOS is very important the method “grantPermission”

Now we must to setting up the account on the firebase cloud messaage, so we can generate two files:
google-services.json (Android)
GoogleService-Info.plist (IOS)

We can add this file in the root directory, with the config.xml and package.json file.

Setting Firebase Cloud Message

To setting up the firebase account remind to this guide: https://engineering.hexacta.com/managing-push-notifications-with-ionic2-3698249c07a

Remember, is very important that you upload you APN CERTIFICATE IOS, if you not load it the notifications not work.
This guide: https://firebase.google.com/docs/cloud-messaging/ios/certs

 

If you have some question write me.

ElasticSearch 5 – NEST Dynamic QueryContainer with QueryContainerDescriptor

How can i create a dynamic QueryContainer with many QueryContainerDescriptor?
How to dynamically build up a Bool query using the NEST client?

I will teach you how to create a dynamic nest query with and logic.

You must to write your QueryContainer:

Then we must to attach to them the many filters that we want

Add in and another filter to out QueryContainer. Just need to create the other QueryContainerDescriptor

We have created a query to extract: (student with age >= XX && age <= YY) && (school with alumn number > 0)

Now we must to use it:

Use the _ in the lambda expressions, because we don’t care about the parameter!
I use the Scroll() method in my query, if you want to know how to manage the Scroll, see this guide.

 

Do you know a simplest method?
There is some error in my article?
Or if you have a question write me!

 

ElasticSearch 5 – How to start using NEST C# .net

In this guide i want to show you how to start in c# .net framework with ElasticSearch version 5, with the library NEST.

WHAT IS ELASTICSEARCH 5

Elasticsearch is a Lucene-based search server with Full Text capability, with support for distributed architectures. All features are natively exposed through RESTful interface, while information is handled as JSON documents.
Is a database that contain many table and date, the table are called “index” and the date are called “documents” is like a no-sql database, as mongodb or couchbase.
In each “index” you can load many “documents” with many different “mapping”.

I suggest to install Kibana to manage ElasticSeach. Starter guide.

CHAPTER MAPPING LINK OFFICIAL DOC.

You can put the mapping on elastic search server throw Kibana dev console.
Mapping is the process of defining how a document, and the fields it contains, are stored and indexed. For instance, use mappings to define:

  • which string fields should be treated as full text fields.
  • which fields contain numbers, dates, or geolocations.
  • whether the values of all fields in the document should be indexed into the catch-all _allfield.
  • the format of date values.
  • custom rules to control the mapping for dynamically added fields.

In the mapping you can define the field, and each field as a datatype. Read the official guide for all datatypes.
Principles datatype:
– boolean
– int | short | long
– date
– text
– keyword
– specialized type (as IP, Completion (autocomplete), Token count datatype)

NEST C#

NEST is a high level client that has the advantage of having mapped all the request and response objects, comes with a strongly typed query DSL that maps 1 to 1 with the Elasticsearch query DSL, and takes advantage of specific .NET features such as covariant results and auto mapping of POCOs. NEST internally uses and still exposes the low level Elasticsearch.Net client.
Link to download NEST.

PRATICAL USE OF NEST C#

Now we must to create the filter query to take data.
Using Nest to take this is very simple, i show you an example:

Mapping of data type and method:
Boolean => Exists
Date => DateRange
Number => Range
Text Like => WildCard
Text Exact => Term

Now i’have used the Bool Query type, but exist other type, remind you to this official link.

USING NEST SCROLL

The scroll API allows you to efficiently page through a large dataset as it keeps the query alive in the cluster. And if you want all / unlimited data, without pagination.

[CVE-2017-1000253] Linux kernel security bug fixed

How to report on zdnet on their article there is a serious bug with linux kernel identified as CVE-2017-1000253:

§ Centos6 con Kernel < 2.6.32-696.10.3
§ Centos7 con Kernel 7.4 kernels < 3.10.0-693

The bug how report zdnet:

This is a problem with how the Linux kernel loaded Executable and Linkable Format (ELF) executables. If an ELF application was built as Position Independent Executable (PIE), the loader could allow part of that application’s data segment to map over the memory area reserved for its stack. This could cause memory corruption. Then, an otherwise unprivileged local user with access to a Set owner User ID (SUID) or otherwise privileged flawed PIE binary, could gain higher-level user privileges.

The bug was fixed so you must to upgrade your kernel.

I used the guide on the site tecmint.com. It was very helpful and easy, consist to install a new kernel and then switch the boot on the new kernel. Suggest to take a snapshot or a backup of your machine / virtual machine.