Wednesday, December 4, 2019

IEOD Data Import in AmiBroker (1minute)

IEOD Data Import in AmiBroker (NSE F&O Segment) :
This manual describes how to import IEOD data of NSE Futures & Options Segment in AmiBroker (which is sent everyday evening after market hours) . If you are using any other charting platform, please refer to platform specific help.
The details of the data sent are as follows:
  • Intraday data with 1min timestamp
  • entire NSE F&O Segment
  • Contains Open, High, Low, Close, Volume and Open interest.
  • in CSV format
To import the data in AmiBroker for the first time, you will need to create the database in AmiBroker and use Import Wizard. Once this is done, you can import the data next time onwards just by selecting the file(s) to be imported. Following procedure explains how to do this step-by-step.
  • Start AmiBroker.
  • Click on File>>New>>Database which opens a dialogue box as shown below.


  • Enter the new database name (you may select any name as per your choice), uncheck ‘Load this database at startup’ checkbox and click on Create button.
  • Then select ‘Local Database’ as Source, 25000 as ‘Number of Bars’ and ‘1 minute’ as base time interval as shown below and click on ‘Intraday Settings’ button.
  • In the window that opens, do the settings as shown in the screenshot below. Once done, click on OK of both the open windows.

  • After creating the database as explained above, click File>>Import Wizard.

  • Select the file to be imported by using ‘Pick Files’ button and then click Next.


  • In the Window that opens, do the settings EXACTLY AS SHOWN in the screenshot below and click next.
Save this format with some name as shown in the screenshot below (so that you can use the same format every time) and click OK.


If you have followed the procedure correctly then the data of the first file will be imported in AmiBroker. You can then select the symbol of your choice from Symbols Window to see its data. See below.

Next time while importing the data file, simply select File>>Import ASCII and from the dialogue box that opens, select the file to be imported and correct format in ‘Files of type’ as shown below and click on Open.




  •  

Monday, November 25, 2019

Splash screen in java application.

The splash screen can be displayed at application startup, before the Java Virtual Machine (JVM) starts. The splash screen is displayed as an undecorated window containing an image. You can use GIF, JPEG, or PNG files for the image. Animation is supported for the GIF format, while transparency is supported both for GIF and PNG. The window is positioned at the center of the screen. The position on multi-monitor systems is not specified. It is platform and implementation dependent. The splash screen window is closed automatically as soon as the first window is displayed by Swing/AWT (may be also closed manually using the Java API, see below).
If your application is packaged in a jar file, you can use the "SplashScreen-Image" option in a manifest file to show a splash screen. Place the image in the jar archive and specify the path in the option. The path should not have a leading slash.
For example, in the manifest.mf file:
 Manifest-Version: 1.0
 Main-Class: Test
 SplashScreen-Image: filename.gif
 
If the Java implementation provides the command-line interface and you run your application by using the command line or a shortcut, use the Java application launcher option to show a splash screen. The Oracle reference implementation allows you to specify the splash screen image location with the -splash: option.
For example:
 java -splash:filename.gif Test
 
The command line interface has higher precedence over the manifest setting.
The splash screen will be displayed as faithfully as possible to present the whole splash screen image given the limitations of the target platform and display.
It is implied that the specified image is presented on the screen "as is", i.e. preserving the exact color values as specified in the image file. Under certain circumstances, though, the presented image may differ, e.g. when applying color dithering to present a 32 bits per pixel (bpp) image on a 16 or 8 bpp screen. The native platform display configuration may also affect the colors of the displayed image (e.g. color profiles, etc.)
The SplashScreen class provides the API for controlling the splash screen. This class may be used to close the splash screen, change the splash screen image, get the splash screen native window position/size, and paint in the splash screen. It cannot be used to create the splash screen. You should use the options provided by the Java implementation for that.
This class cannot be instantiated. Only a single instance of this class can exist, and it may be obtained by using the getSplashScreen() static method. In case the splash screen has not been created at application startup via the command line or manifest file option, the getSplashScreen method returns null.

Sunday, November 24, 2019

How To Install Apache Tomcat 8 on Ubuntu 16.04

Introduction

Apache Tomcat is a web server and servlet container that is used to serve Java applications. Tomcat is an open source implementation of the Java Servlet and JavaServer Pages technologies, released by the Apache Software Foundation. This tutorial covers the basic installation and some configuration of the latest release of Tomcat 8 on your Ubuntu 16.04 server.

Prerequisites

Before you begin with this guide, you should have a non-root user with sudo privileges set up on your server. 

Step 1: Install Java

Tomcat requires Java to be installed on the server so that any Java web application code can be executed. We can satisfy that requirement by installing OpenJDK with apt-get.
First, update your apt-get package index:
  • sudo apt-get update
Then install the Java Development Kit package with apt-get:
  • sudo apt-get install default-jdk
Now that Java is installed, we can create a tomcat user, which will be used to run the Tomcat service.

Step 2: Create Tomcat User

For security purposes, Tomcat should be run as an unprivileged user (i.e. not root). We will create a new user and group that will run the Tomcat service.
First, create a new tomcat group:
  • sudo groupadd tomcat
Next, create a new tomcat user. We’ll make this user a member of the tomcat group, with a home directory of /opt/tomcat (where we will install Tomcat), and with a shell of /bin/false (so nobody can log into the account):
  • sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Now that our tomcat user is set up, let’s download and install Tomcat.

Step 3: Install Tomcat

The best way to install Tomcat 8 is to download the latest binary release then configure it manually.
Find the latest version of Tomcat 8 at the Tomcat 8 Downloads page. At the time of writing, the latest version is 8.5.5, but you should use a later stable version if it is available. Under the Binary Distributions section, then under the Core list, copy the link to the “tar.gz”.
Next, change to the /tmp directory on your server. This is a good directory to download ephemeral items, like the Tomcat tarball, which we won’t need after extracting the Tomcat contents:
  • cd /tmp
Use curl to download the link that you copied from the Tomcat website:
  • curl -O http://apache.mirrors.ionfish.org/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz
We will install Tomcat to the /opt/tomcat directory. Create the directory, then extract the archive to it with these commands:
  • sudo mkdir /opt/tomcat
  • sudo tar xzvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1
Next, we can set up the proper user permissions for our installation.

Step 4: Update Permissions

The tomcat user that we set up needs to have access to the Tomcat installation. We’ll set that up now.
Change to the directory where we unpacked the Tomcat installation:
  • cd /opt/tomcat
Give the tomcat group ownership over the entire installation directory:
  • sudo chgrp -R tomcat /opt/tomcat
Next, give the tomcat group read access to the conf directory and all of its contents, and execute access to the directory itself:
  • sudo chmod -R g+r conf
  • sudo chmod g+x conf
Make the tomcat user the owner of the webappsworktemp, and logs directories:
  • sudo chown -R tomcat webapps/ work/ temp/ logs/
Now that the proper permissions are set up, we can create a systemd service file to manage the Tomcat process.

Step 5: Create a systemd Service File

We want to be able to run Tomcat as a service, so we will set up systemd service file.
Tomcat needs to know where Java is installed. This path is commonly referred to as “JAVA_HOME”. The easiest way to look up that location is by running this command:
  • sudo update-java-alternatives -l
Output
java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
The correct JAVA_HOME variable can be constructed by taking the output from the last column (highlighted in red) and appending /jre to the end. Given the example above, the correct JAVA_HOME for this server would be:
JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre
Your JAVA_HOME may be different.
With this piece of information, we can create the systemd service file. Open a file called tomcat.service in the /etc/systemd/system directory by typing:
  • sudo nano /etc/systemd/system/tomcat.service
Paste the following contents into your service file. Modify the value of JAVA_HOME if necessary to match the value you found on your system. You may also want to modify the memory allocation settings that are specified in CATALINA_OPTS:
/etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target
When you are finished, save and close the file.
Next, reload the systemd daemon so that it knows about our service file:
  • sudo systemctl daemon-reload
Start the Tomcat service by typing:
  • sudo systemctl start tomcat
Double check that it started without errors by typing:
  • sudo systemctl status tomcat

Step 6: Adjust the Firewall and Test the Tomcat Server

Now that the Tomcat service is started, we can test to make sure the default page is available.
Before we do that, we need to adjust the firewall to allow our requests to get to the service. If you followed the prerequisites, you will have a ufw firewall enabled currently.
Tomcat uses port 8080 to accept conventional requests. Allow traffic to that port by typing:
  • sudo ufw allow 8080
With the firewall modified, you can access the default splash page by going to your domain or IP address followed by :8080 in a web browser:
Open in web browser
http://server_domain_or_IP:8080
You will see the default Tomcat splash page, in addition to other information. However, if you click the links for the Manager App, for instance, you will be denied access. We can configure that access next.
If you were able to successfully accessed Tomcat, now is a good time to enable the service file so that Tomcat automatically starts at boot:
  • sudo systemctl enable tomcat

Step 7: Configure Tomcat Web Management Interface

In order to use the manager web app that comes with Tomcat, we must add a login to our Tomcat server. We will do this by editing the tomcat-users.xml file:
  • sudo nano /opt/tomcat/conf/tomcat-users.xml
You will want to add a user who can access the manager-gui and admin-gui (web apps that come with Tomcat). You can do so by defining a user, similar to the example below, between the tomcat-users tags. Be sure to change the username and password to something secure:
tomcat-users.xml — Admin User
<tomcat-users . . .>
    <user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>
Save and close the file when you are finished.
By default, newer versions of Tomcat restrict access to the Manager and Host Manager apps to connections coming from the server itself. Since we are installing on a remote machine, you will probably want to remove or alter this restriction. To change the IP address restrictions on these, open the appropriate context.xml files.
For the Manager app, type:
  • sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
For the Host Manager app, type:
  • sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
Inside, comment out the IP address restriction to allow connections from anywhere. Alternatively, if you would like to allow access only to connections coming from your own IP address, you can add your public IP address to the list:
context.xml files for Tomcat webapps
<Context antiResourceLocking="false" privileged="true" >
  <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->
</Context>
Save and close the files when you are finished.
To put our changes into effect, restart the Tomcat service:

  • sudo systemctl restart tomcat

Friday, November 22, 2019

Fee SSL Certificate with getssl and letsencrypt.org in ubuntu.

Thanks to Letsencrypt the first non-profit CA. It's great. 
This tutotial just show how you use the getssl command for getting the free  SSL Certificate from letsencrypt.org in ubuntu.

The getssl  need the nsloolup. So, we have to install it first:
sudo apt-get install dnsutils
Install getssl with command below:
curl --silent https://raw.githubusercontent.com/srvrco/getssl/master/getssl > getssl ; chmod 700 getssl

The getssl will save the settings in the HOME folder. We can't export the HOME folder to save to the other folder(ex: /acme folder).
mkdir /acme
export HOME=/acme

Create config for you domain( ex: domain is etrader.ddns.net)
getssl -c etrader.ddns.net
It will create the config for your domain (ex: domain is etrader.ddns.net) in $HOME/.getssl/[domain]/getssl.cfg
You have to modify these setting by add below settings
CA="https://acme-v02.api.letsencrypt.org/directory"
ACL=('/var/www/html/.well-known/acme-challenge')
USE_SINGLE_ACL="true"
RELOAD_CMD="systemctl restart apache2"

Get free certificate 
getssl etrader.ddns.net
It will download create the private key and certificate at $HOME/.getssl/[domain]/
Private key: $HOME/.getssl/[domain]/[domain].key
Certificate: $HOME/.getssl/[domain]/[domain].crt

In the apache2 you have to point to these files like:
SSLEngine on
SSLCertificateFile      /acme/.getssl/etrader.ddns.net/etrader.ddns.net.crt

SSLCertificateKeyFile /acme/.getssl/etrader.ddns.net/etrader.ddns.net.key


Restart apache2 to take effect.
systemctl restart apache2

And test it

Install and use xorg-server on macOS via Homebrew

  The instructions to install and use xorg-server on macOS via Homebrew: Install Homebrew (if you haven't already): /bin/bash -c ...