Wednesday, February 27, 2019

JSAC Submission Error: "Upload failed: One or more fonts are not embedded."

This is a very common problem that JSAC needs to fix.
Understanding the problem: 
Lets say we generate the PDF by using some Latex editor such as TeXstudio. 
By default the all the font are not embedded to the PDF itself. This is to keep the PDF size small. Embedding all fonts is not necessary because some fonts are common to all modern OS. So it does not make sense to embed all the fonts in the PDF itself.

You can check the list of fonts embedded by following steps:
1. Open the PDF
2. Right click on any place
3. Click on "document properties."
4. Click on "Font" tab.

 
But, the EDAS system, through which we usually submit the manuscript, expect all the fonts to be embedded into the PDF.

How to solve (Windows OS)?
    1> After generating the PDF using any Latex Editor, find the corresponding .ps file, probably in the same directory
    2> Open the Windows command prompt 
    change the current directory to the directory of PS file. 
Now enter following command 


    ps2pdf -dPDFSETTINGS#/prepress -dEmbedAllFonts#true -dMaxSubsetPct#100 -dCompatibilityLevel#1.3 file_name.ps file_name.pdf

  3> Give the ps file name and the output pdf file name. 
Now in the new pdf file, you can see the embedded fonts.





EDIT (23 Jan 2020):
How to Solve (Mac OS)?
- Open the PDF with Preview app (I am using MacOS Catalina)
- Under "File" menu select "Export as PDF..."
- Give different filename and click on "Save" button.
Be default this should embed all the fonts.



Tuesday, February 12, 2019

Working with Cloudify and ARIA TOSCA - Beginner

Before you start reading this post, it is recommended to have the knowledge of cloud computing concept: how the cloud specific applications are developed and deployed, how those are tested, scaled according to users requirements etc. In this post we will see what is Cloudify and the brief of TOSCA standard.

 

Cloudify 



> This is an open source cloud orchestration framework. This allows to manage the entire life cycle of the cloud application, which ranges from: application modelling, life cycle automation, cloud deployment, monitoring, detecting issues and failures, handling on going maintenance tasks etc. 
> This entire software tool comprises of other different open-source components, such as Nginx, Elasticsearch, Logstash, RabbitMQ, Riemann, InfluxDB, Grafana, Flask, Gunicorn, Celery, Fabric, diamond, Jinja2 etc. This means, the installation of Cloudify includes the installation of all above-mentioned open-source components. 
> This open-source tool is written in Python programming language
> Its Domain Specific Language is based on TOSCA standard. 
> Each application is describe in a YMAL file called blueprint. Application description represents the logical representation called topology, dependencies of the applications etc.



TOSCA



> TOSCA: Topology and Orchestration Specification of Cloud Applications
> It is a standard created by group of industrial experts.
> The first version (version 1.0) of this standard came on 16 January 2014.
> It is used to describe the topology of cloud based web services, the components of the web services and their relationships and the processes that manage them. 
> Cloudify is an open source cloud service orchestration frame based on TOSCA
> Similarly, Alien4Cloud is an open source cloud application lifecycle management platform based on TOSCA
> Ubicity provides tooling and orchestration  cloud environment which is base on TOSCA
> SeaCloud and DICE are some of the related research projects that are based on this standard.

Monday, February 11, 2019

Service Deployement on local machine using Cloudify CLI

Prerequisite: It is assumed that Docker and Cloudify CLI is already installed on the local machine.
Basic knowledge of Docker commands.

If Cloudify is NOT yet install follow the previous post HERE.
If Docker is NOT yet install follow the previous post HERE.


In this post we will see how to deploy a web service on the local machine using Cloudify CLI. We will follow the TOSCA standard of blueprint file.


The deployment can be done in two ways: (a) using command line console and (b) using Cloudify web interface. We will deploy a simple web service or the blueprint available in 
or 

Deploy the Hello World Example on your local machine using console 
 
Step - 1 : Open terminal byAlt+Ctrl+t
pressing the key combination
Step - 2 : Run the following command to start 

sudo docker run --name cfy_manager_local \
    -d --restart unless-stopped \
    -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
    --tmpfs /run \
    --tmpfs /run/lock \
    --security-opt seccomp:unconfined \
    --cap-add SYS_ADMIN \
    -p 80:80 \
    -p 8000:8000 \
    cloudifyplatform/community:18.10.4

Step - 3 : Run following command the install the Hello World web service

sudo docker exec -it cfy_manager_local sh -c "cfy install https://github.com/chinmaya-dehury/local-simple-python-webserver-blueprint/archive/master.zip"
The entire Git directory will be copied to /opt/manager/resource directory

Step - 4 : Open the web browser and goto localhost:8000. You can see the output.


Deploy the Hello World Example on your local machine using web interface 
Step - 1: Open web Browser:
Step - 2: Goto localhost or enter the IP of the local computer
Step - 3: Enter admin as username and password


Step - 4: After login, the interface would look like below.


Step - 5: Click on "upload Blueprint" option 
Step - 6: Enter the URL  https://github.com/chinmaya-dehury/local-simple-python-webserver-blueprint/archive/master.zip
Change the Blueprint name to "local-simple-python-webserver-blueprint"
Click On "Upload" button




Step - 7: Click on "Deployments" Page. Then Click on "Create Deployment" option



Step - 8: Enter "MyfirstDeploymentUI" as the deployment name
    From the dropdown list of blueprints, select the newly created blueprint.
    Click on "Deploy"  button.


Step - 9: Click on "Install" option.


Step - 10: Now click on "Execute" button.

Step -11:  Enter localhost:8000 in your browser.
The web server application is deployed. The output should look like below.




Installation of Cloudify CLI on Ubuntu 14.04 for service deployment using TOSCA standard

In this post we will see how to install Cloudify CLI, through which we can deploy, scale and monitor the different cloud service. For better understanding lets install this in local machine. The basic steps can be refereed and extended for actual cloud environment.

The steps are as follows:
Environment: we will be using Ubuntu 14.04, Python 2.6/2.7
Cloudify  does NOT support Python 3

Step 1: Install Docker on local machine. [ How to install Docker on Ubuntu 14.04? ]
Step 2: Open ubuntu terminal
Step 3: Run the following command

sudo docker run --name cfy_manager_local \
    -d --restart unless-stopped \
    -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
    --tmpfs /run \
    --tmpfs /run/lock \
    --security-opt seccomp:unconfined \
    --cap-add SYS_ADMIN \
    -p 80:80 \
    -p 8000:8000 \
    cloudifyplatform/community:18.10.4


Step 4: Now go to web browser and enter localhost or enter your own IP
             You can see the web interface of the Cloudify Console
Step 5: Enter admin as both username and password.


NEXT: Service Deployement on local machine using Cloudify CLI