Monday, November 16, 2015

Grocery Checklist: Windows 8.1 app

Grocery Checklist is a Windows 8.1 app which enables users to create their checklist and then in the grocery store to review items. Forget about situations when you were in a grocery store, trying to remember what else you have to buy.
App provides catalogs from where you can choose which product you need to buy. Catalog is hierarchical. First level is Categories like fruits and vegetables. Second lever, under categories, are products. By selecting product, you are adding it to your checklist.
Checklist is also simple, just a list of products you need to buy.
Above checklist is a quick add text box. You can type a name of product and while you are typing, system will suggest you options to choose, without need to wholly type lengthy product names.
Windows 10 version of app is under development. It should be available to download from Store in a next week.

Monday, January 12, 2015

The Weather of Westeros: Weather in a fictional land of George R. R. Martin

I am a huge fan of George R. R. Martin (TV series of Game of Thrones and A Song of Ice and Fire books). When I have a free time, I am watch Game of Thrones Season 4: Episode #6 Clip - Tyrion's Breakdown (HBO) or video clips like this. I am sure I am not alone.

I got an idea to create an application, which will show the fictional weather in a fictional land of Westeros. It makes user feel like it is as real as it is in his or her mind. Most of use using weather applications to see weather in our current location, home, place when our friends and relatives leave. Why not to have an app that will show weather of a place where our favorite characters live.

A little bit about the platform and technical details. Application is available in two platforms: Windows 8 and later and Windows Phone 8 and later. Application shows weather in Celsius and Fahrenheit, based on user's regional settings. Application also includes Game of Thrones opening soundtrack.

In order to obtain the application on your device please visit the official product page http://www.tiksn.com/Product/TheWeatherOfWesteros.

If you have any ideas how I can improve the application please leave your rating and your comment on Store.

Monday, October 20, 2014

Multilingual App Toolkit: Guideline

What is it?

Multilingual App Toolkit is a tool to enable developers easily localize their applications. You can localize any application written in Visual Studio. It can be Windows Phone app, Windows app, Windows desktop application, ASP.NET Web Application, ASP.NET Web API, and so on and so forth.
Started from version 3, MAT supported by Visual Studio Online (formerly Team Foundation Service) so you can build your MAT localized application on VSO.

How it works?

When Visual Studio project enabled to use MAT, you can add new language/culture to your localizations list. When developer adds new language, Visual Studio does two things. First, it adds localization resource files to that particular language for all existed resources in the project. Than it adds language to the language list. In case new resource file added to the project, system will automatically add localization files to all languages.
For each globalization or base resource file it adds 2 localization files .RESX and .XLT. .XLT is widely supported text localization file format. Developer can open and edit localizations, change its status, export and send to review to professional translator and import reviewed version of translation.
During build, it compiles .XLT files into .RESX files. Localized .RESX files work just they are in ordinary projects.

Testability

Usually developers from Europe know more than a one language. That is why language testability is not a big deal for them. However, vast majority of developers from US do know only English. It makes harder for them to create and test properly globalized application ready to localize in any culture. However, unique feature of MAT can be helpful even for multilingual developers.
MAT registers quasi-culture in current machine. You can test under than culture to see whether your globalization is localizable. In quasi-culture translation English characters replaced by lookalike letters (for instance A with Ä) so you know it is been localized, and you know what it means, should it be there or not. In addition, it adds unique number so you can identify all localization records. In addition, localization becomes longer than the original English text. In some languages, Like German and Armenian, in average sentences are longer than the same sentences in English. Each localized text is in square brackets in order to differentiate localization units.

Best practice

It is best practice to have all localizations in single Portable Class Library project so you can share your localizations between Windows apps, Windows Phone apps, Windows desktop applications, Web Applications and so on and so forth.
In addition, it is a good idea to have quasi-culture in your supported cultures list under the debug mode, but not in the release mode.

See more

Get Multilingual App Toolkit
How to use the Multilingual App Toolkit
Introduction to the Multilingual App Toolkit
Foreign Exchange Multilingual App

Tuesday, July 15, 2014

Branching and Merging in Team Foundation Server

I found that there are many tutorials and blogs explaining Git branching, but there are not as many blogs and articles about Teams Foundation Service branching. First, let me clarify what I mean by saying Team Foundation Service branching. Visual Studio Online (in cloud) and Team Foundation Service (on premises) run Team Foundation Service as a source control. Team Foundation Service has two ways of source control. First, let us call it just "TFS" version control and second, Git. We are going to explore TFS branching.
I will bring an example on my personal website (www.tiksn.com).
Recently I decided to enable Multilingual App Toolkit on my website. I thought it could mess up my code so I need isolation. Branches made for isolation.
One nice advantage of TFS branching over Git branching is that you can have all versions in separate folders on your local machine. Just like Git, on server or in cloud, creating a branch costs nearly zero byte.
Here is how I did it and how you should do it too. I included all images so it will be easy for you to grasp and replicate.
First, I opened Source Control Explorer.
Then clicked on Branch
Gave a name of location where I want to save a "copy" or current branch.
  
After mapping with a local folder and checking in all changes, I had two branches to work with.

  
After enabling Multilingual App Toolkit and making sure that all features work, I decided to merge localization branch with my "primary" branch. Once more, I opened branch menu from Source Control Explorer and selected View Hierarchy.
  
From hierarchy I selected localization branch and from context menu selected merge action.
  
After merge I checked all in and deleted localization branch.
  
After which, once more, I checked everything in and deleted local folder of localization branch.
See, it is too simple.

Happy coding.
Tigran TIKSN Torosyan

www.tiksn.com
www.tiksn.info

Sunday, June 22, 2014

Interest rate calculation in Small Basic

If you are reading this probably you are junior developer seeking your way in software development industry. For all of you guys I created GitHub repository where I will store Small Basic educational samples.

As we all know, banks or other financial institutions are landing money for some interest. Interest is additional amount of money that they are earning during the time while original money is in your pocket. The initial amount called principal. It is logical that interest should be proportional to principal.

There are several ways of calculation of interest.

Simple Interest

Each year interest is some percentage of initial amount of money. Let us say original amount is $100 and annual percentage rate is 10%. In this case one should pay $10 (10 percent of $100) annually. In year 1 total loan will be $110 ($100 + $10). As because annual interest is calculated based on initial amount. It will not change. Each year one should pay the same $10. In a year 2 loan will be $120 ($110 + $10).

Simple interest calculation formula will be I = P×R×N and A = P× (1 + R×N) where P is principal, I is interest, R is interest rate, N is number is years and A is total amount of loan after N years.

Let us not forget that our main purpose is not only to understand interest calculations but also to learn programming in Small Basic. Here is the link of simple interest rate sample.

Compound Interest

In case of simple interest, interest is not that high. Usually it does not provides people and financial organization enough motivation (money) to land money with simple interest. Instead of adding same ratio of principal as it done in simple interest calculation, in compound interest calculation each year interest will be calculated based on previous total loan. Let us to clarify a bit. For instance our principal is once again $100 and annual percentage rate is 10%, same as it was in previous example. In year 1 interest will be 10 percent of $100 which is $10, after which total loan will be $110. In year 2 we interest will be 10 percent of $110 and not $100. So in year 2 interest will be $11 and total amount of loan $110 + $11 = $121.

Compound interest calculation formula will be I = P×(1+R)N -P and A = P×(1 + R)N where I is interest, R is interest rate, N is number of years, A is total amount calculated during N years.

Here is Small Basic source code of compound interest rate calculation sample.

Hope this was helpful guys. Leave me your feedback and comments on Twitter (@tiksn).

References

Microsoft Small Basic official website.

Microsoft Small Basic Wikipedia article.

Educational samples GitHub repository.

Simple interest sample Small Basic source code.

Compound interest sample Small Basic source code.

My Blog.

My Website.

My Twitter account.

Wednesday, October 2, 2013

Language Code for Armenian language

In multilingual (multicultural) websites, mobile and tablet apps and desktop applications there is a need to identify/specify or change the current language. Of course you can use full native name of language, but in cases like URL it is not convenient, so we need some sort of language identifiers. In most cases you know which language your site is going to support, so identification is actually about two or three languages. Currently there are different ways of doing it.

Numerical

You can identify language by numbers. Usually this choice is the most non-controversial, but there is one little problem. Users cannot easily identify the language. You have to memorize, it is not intuitive and depends on the web developer definitions.

HY

HY is ISO 639-1 language code for Armenian language. I think this is the best option. It is standard, widely used by international corporations and institutions, it is based on endonym, so it is easy for  an Armenian, who even does not know English (but knows Latin alphabet) to intuitively identify his or her mother tongue.

AM

AM is 369-1 language code for Amharic language. It is totally wrong to use for Armenian language. Amharic has nothing to do with Armenia. Language family, alphabet, people have nothing in common. People use this by mistake, thinking that it is abbreviation of "Armenian" word. It is correct to use AM as a country code for Armenia but not a language code for the Armenian language.

HYE

HYE is ISO 639-2/T language code for Armenian language. Usually three letters are too much because most of the websites are supporting 2 or 3 languages. It is good if you have 50 or 100 language support.

 ՀԱՅ

This is not official code. It is abbreviation from word Հայերեն (Hayeren, Armenian). It is intuitive for native speakers, but it is not convenient in URL. For language label it is OK.
Conclusion
I will suggest you to use HY anywhere when you need to identify Armenian language. Never use AM because it stands for a completely different language.

Thursday, May 9, 2013

Serj Tankian: Exceptional Individual



Very first time when I heard about Serj Tankian it was a couple of years ago, in my teen ages. I was proud to hear about another successful Armenian-American. I was treating him as a worldwide famous Armenian.  At that period I was not good at English and was not interested in English at all. Years passed. I started to learn English. Now when I am listening to music of Serj Tankian I feel in a completely different way. If I say that he is brilliant, he is genius, he is one of his kind it would not be enough to describe that person. His words are pure, straightforward, simple and contagious. Issues that he discusses are not related to one nation, one ethnic group, one region, they are global, urgent, and real but ignored.
Nowadays people are into solving only questions like “What to eat?”, “Where to shit”, “With whom to fuck?” Who cares that in another side of the world thousands of people were killed by their government in expense of his or her paid taxes. He is like radio station of self-awareness, sending constant messages, constant warnings entitled “wake-up”. He is one of few in our reality who stood up against ignorance, against crime permitted by humans against human, against crime permitted by governments against people, against war crime. Sounds like this issues should have already been solved, is not it?
It is possible to write even books with one breath about this inspirational person but I am going to conclude. I think the best thing you can do after reading this blog post is to visit his official website and read more about him from Wikipedia article.

Disqus for TIKSN Blog