How to Use FontTools Module in Python

Python
Python

Python comes with the great modules which you can use them to improve your application functionalities. Recently I felt in love with Python and trying to implement some of my daily usages with it. I was always interested in Unicode and Fonts so that I had a glance at Python abilities in these fields and I have to say that Python has a lot to say when it comes to these areas. It is really fantastic and powerful and you have access to whatever you want just a a peace of a cake. In this Article I show you how to use python abilities to save a font as an XML document. It may be wierd for you but sometimes it is necessary to check font tables and the rest of its information.

To start working with fonts it’s worth to add FontTools library to Python; it will extend your abilities to work with fonts. You can download it from here.

Each Python module has its own way for installation. Some of them only needs a simple copy to the appropriate folders and some of them should be installed. FontTools uses the second approach so that you have to follow the following instruction to install it in your Python.

  • Open Windows Command Prompt
  • Go to the folder you download FontTools
  • Write Setup.py build and press enter
  • Write Setup.pyinstall and press enter
Installing FontTools with Command Prompt in Python
Installing FontTools with Command Prompt in Python
Important Note: I first Installed My FontTools and Then take the above photo from my comand prompt so that the command reply may be different for the first time and the second. You just use the mentioned commands instead of considering provided replies by Python

Some lines will appear in your command prompt and then installation will complete within a minute. Now, to use this module in your application you have to load ( or  import or use ) this module in your application, so write the following command in your Python application just like other commands

[sourcecode language=”python”]
from fontTools.ttLib import ttfont
[/sourcecode]

Note that commands are case sensitive so write it in the exact mentioned way.

Till now you are able to use FontTools abilities in your application so that to test it we create a font object and then get a simple export from it.

To create a font object in Python write the below command in your application; just note that you have to use for slash instead (/) of back slash (\) for addressing

[sourcecode language=”python”]
font = TTFont("d:/fontname.ttf")
[/sourcecode]

Till now you created a new object of your font in the object named font. It’s time to use it in our application so that I save the font as an XML document just like

[sourcecode language=”python”]
font.saveXML("d:/YourDesireName.xml")
[/sourcecode]

Save a Font As XML with Python FontTools Module
Save a Font As XML with Python FontTools Module

You can find the rest of the FontTools commands in the documentation. Share your experiences with me if you know another good library to work with fonts.

How to Start Programming with Python

Python
Python

What is Python?

In the official Python website they say that

Python is an interpreted, object-oriented, high-level programming language with dynamic semantics. Its high-level built in data structures, combined with dynamic typing and dynamic binding, make it very attractive for Rapid Application Development, as well as for use as a scripting or glue language to connect existing components together. Python’s simple, easy to learn syntax emphasizes readability and therefore reduces the cost of program maintenance. Python supports modules and packages, which encourages program modularity and code reuse. The Python interpreter and the extensive standard library are available in source or binary form without charge for all major platforms, and can be freely distributed.

Often, programmers fall in love with Python because of the increased productivity it provides. Since there is no compilation step, the edit-test-debug cycle is incredibly fast. Debugging Python programs is easy: a bug or bad input will never cause a segmentation fault. Instead, when the interpreter discovers an error, it raises an exception. When the program doesn’t catch the exception, the interpreter prints a stack trace. A source level debugger allows inspection of local and global variables, evaluation of arbitrary expressions, setting breakpoints, stepping through the code a line at a time, and so on. The debugger is written in Python itself, testifying to Python’s introspective power. On the other hand, often the quickest way to debug a program is to add a few print statements to the source: the fast edit-test-debug cycle makes this simple approach very effective.

How to install Python?

Installing Python is as easy as drinking a coffee. Follow these instructions to install Python

  1. At first provide a coffee for yourself
  2. Download the version you like  from the official website (Python 2 or 3)
  3. Run  the setup
  4. Install it the root drive ( for instance C:\Python )
  5. Start drinking your coffee while it is installing on your computer
  6. Setup will finish before your coffee finishes

That’s all about Python installation but I myself rather to use it in command line wherever in windos so that I have to add its path to windows variables. To do this open the Advanced System Settings (former System Properties) and add Python path to it like the following picture

Add Python Path to windows Environment Variables
Add Python Path to windows Environment Variables

How to Write Hello World Application in Python

Python syntax is ridiculously easy to learn. To write your first application in Python you have two options.

          First : use Windows Command Line

          Second : Use Python Editor (IDLE)

To code within the windows command prompt First Open Command Prompt

Write python and press enter

Python command line will appear and you can start coding. To write first command write
print (“Hello World”) // write print in lower case

and press enter then you will see the result in the next line

Python Hello World with Windows Command Prompt
Python Hello World with Windows Command Prompt

To write your application in IDLE you have to open the editor from Start Menu>Python x.x>IDLE
Then again write print (“hello world”) and press enter

Python Hello World Using Python IDLE Editor
Python Hello World Using Python IDLE Editor

As you can see coding in Python is a peace of cake and I strongly recommend you to start programming in Python for your daily usages if you have such a need. It helped me a lot and I learned a lot from its concept in a short time. It worth to try it even once. You can share your experiences with Python or Ruby or other similar tools here.

A Letter to Atlassian Team

Atlassian JIRA

Recently I’m upgrading JIRA from 3.x to 4.x version for my company. During this upgrade procedure, I learnt a lot from Atlassian. When I was using Jira 3.x, I just using Jira as a simple (but) powerful issue tracking system. I was always content with it. I never felt that I have to upgrade to a newer version. It was good enough to ignore ordering a newer version. I used (a cracked version of) Jira about 3 to 4 years; because my company wasn’t able to afford it.

Jira used a simple UI in 3.x version, honestly I should say that I never impressed by it. By the way, I changed my career and in the new company they are using a licensed Jira 4.x version. After two weeks of using new Jira, I wondered that, how much changes happened on Jira. I couln’t believe that they redesigned UI completely, in a way that amazed me. Almost everything relocated and new menu works great. New Plug-ins, especially Green Hopper, forced me to confess that all in all, Jira is the best web application I’ve ever used.

Jira Project Browser
Jira Project Browser

One of the things that is really special to me, is that new version has a really affordable price. 10$ for 10 users! Most of the small companies don’t have more than 10 active users (developers) so that they can easily afford it. I have to mention that Atlassian give all of these (10$) prices to RoomToRead charity organization and they are going to raise it to 1,000,000$.

Here I want to appreciate Atlassian team because of their good software and their effort for education. I also obliged to ask for an excuse from Atlassian, because of my unfair usages at past. I write this to say that this is the first time that I really have a shame of using a cracked version of a software. I wish they forgive me for this.

How to Localize JDK for fa-IR

Java

Atlassian is an Australlian corporation which has some cool products like JIRA, Confluence, Fish Eye, Green Hopper, JIRA Studio and etc. For last 5 years I’m using Jira as an Issue Tracker and I’m really content with it. Attlasian helps Open Source and Free Software and give its software free to the open community. They also help some charities and let their customer help charities by their hand. Actually they pay total price of Standard verions of their products to charity so thatif you buy one, you help charity too. Because of all these good things and these useful application I decided to localize Jira totaly free a year ago.

I was trying to localize Atlassian JIRA because it is really a good issue tracker system. I had started translating it to Persian a year ago. After a while I contacted to JIRA team to include my resource file into JIRA and make it available for the next possible version. It took a month that I get a wondering answer from JIRA team.

Hi Nasser,

There is a problem with Persian (fa_IR), it is not supported by JDK. There is no support for the fa_IR locale.

Do we have the wrong locale? It sounds like we may.

Alternatively, if the locale is correct we will have to postpone the implementation. There are two solutions we can explore, but neither in the short term:

 try to force java to support fa_IR

 refactor TAC so having locale is optional

Thank you Nasser, I appreciate your patience,

Nick

I really amazed that JDK doesn’t support fa-IR locale! I’m not a Java man, but if a java geek is reading this, I kindly ask him do a favor to Iranian people. Start localizing JDK for Persian. To start you can go to this page and follow the manual to add Persian to JDK.

I use this blog to thanks Jira team, You guys really rock. I wish you keep on your nice job.

How to Build your Solution with Visual Studio Command Prompt

Working with command prompt always been a nice job, it helps you to schedule your routines and gives you more understanding of what’s going on the background. You will give more and on-time information; you can check the result as they happen. You can create a batch fileto build your solutions one after another and many other advantages.Visual Studio command prompt gives you all of the simple windows command prompt abilities plus some tools to control build and publish your source codesand many other abilities which you can find here. You can run Visual Studio command prompt from

[source code=””xml””]
Start Menu \ Visual Studio [2005|2008|2010] \ Visual Studio Tools \ Visual Studio 2008 Command Prompt
[/source]

You can use other prompts like – Visual Studio 2008 x64 Cross Tools Command Prompt – for general x64 system. None of them are different; the only difference is that they are provided for different platforms. As it is hard to run Visual Studio Command Prompt from Windows Task manager, you have to call it from a simple Command Prompt; it means that you have to run the following command in your Command Prompt. After that Visual Studio tools will include into your simple command prompt.

[source code=””xml””]
call "C:\Program Files (x86) \ Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_amd64
[/source]

x86_amd64 will call x64 Cross Tools. To build your solutions you can use following commands

[source code=””xml””]
MSBuild YourSolution.sln /p:Configuration=Release
[/source]

Note that you can use a path like MSBuild D:\src\YourSolution.sln for your projects. As you all know .NET provide two different type of output for each project, Debug & Release. To specify the type of output you can use following code

[source code=””xml””]
MSBuild D:\src\YourSolution.sln /p:Configuration=Release
[/source]

How to publish Asp web sites with command prompt

I wanted to run a Continues Integration for my company and I set up Team City at first. It is a great application which works very nice and I configured it easily. Unfortunately our portal is one of the old asp.net website so that I couldn’t use Team City to publish my website because it work just with Web Application.

Then I try to use MSBuild for compiling and publishing my website and it wasn’t a good solution in order to the type of projects. Finally I had to use AspNetCompiler. It is a compiler to publish and build Asp.net website and you have to customize it to work with your project. Here are steps in which I did to publish my website via command line.

1 – Create a XML file with desire name next to your Portal Solution (portal.sln). I use this name “AutomateBuildConfiguration.xml”.

2 – Then you have to configure this XML file with this instruction. For me following configuration was enough:

[source code=”xml”]
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="PrecompileWeb">
<AspNetCompiler
VirtualPath="/Web"
PhysicalPath="F:\Build_Automation\trunk\src\Portal\Web\"
TargetPath="F:\Build_Automation\trunk\src\Portal\PrecompiledWeb\Web\"
Force="true"
Debug="true"
FixedNames="True" />
</Target>
</Project>
[/source]

3 – You have to open one of the visual studio command line from this path :

StartMenu > All Programs > Microsoft Visual Studio 2008 > Visual Studio Tools > Visual Studio 2008 x64 Cross Tools Command Prompt.exe

I used a x64 system and chose above command line, you are free to use your own.

4 – change your path up to your XML file

5 – Use below command to publish your website

MSBuild AutomateBuildConfiguration.xml /p:Configuration=Release

6 – Enjoy your coffee, and after a while, It’s finished you already publish your website.