My Twitter

Monday, November 12, 2012

Integrate TestLink with YouTrack

The main idea of this post is to describe on how to integrate YouTrack Issue Tracking System by Jetbrains (www.jetbrains.com/youtrack/) with TestLink v1.9 (http://www.teamst.org/) a popular Test Case Management Tool.

By the time of writing this article, the official wiki of YouTrack : http://confluence.jetbrains.net/display/YTHB/Integration+with+TestLink was last updated on Mar 30, 2011. The data it contained was invalid for TestLink v1.9.

So here are the steps,
  1. Navigate to Home page of Test Link. (make sure you have the admin rights)
  2. Click on Issue Tracker Management
  3. Then Click on Create
  4. Type a name you desire.
  5. Select 'Youtrack' for the Type
  6. In the Configuration : include the following lines,
    <issuetracker>
    <username>USER NAME</username>
    <password>PASSWORD</password>
    <uribase>MAIN YOUTRACK LINK</uribase>
    </issuetracker>
  7. For the uribase, an example would be : http://www.youtrack.com:8088
    Please make sure Not to include a '/' at last.
  8. Click Save
  9. Now go to Test Project Management and select your Project
  10. In Issue Tracker Integration select the newly created Issue Tracker and make sure to tick on Active.
  11. Now click on Test Execution and navigate to a Test Case that was already executed. 
  12. You will now see a new column as BUG management. 
  13. Click the BUG icon and Link a YouTrack item or Access to YouTrack directly and create a new issue.
  14. After linking, you will see a new column Relevant bugs and you will also see the YouTrack ID as well as the State of that Item.
  15. We are done !


.

Wednesday, October 06, 2010

Add-on to view Non Unicode Sinhala Websites

Keheliya Gallaba has created a nice addon which we be can use to view Non Unicode Text in their Unicode equivalents.

Currently this addon supports,


Download

Firefox    : http://code.google.com/p/siyabasscript/downloads/list
Chrome   : http://userscripts.org/scripts/show/63613

Screencast http://www.youtube.com/watch?v=TuImKCvvHXY

Friday, April 30, 2010

google-api-translate-javame version 2.0 is NOW available

Google-api-translate-javame API version 2.0 is NOW available.

It now supports 'Auto-Detect Language' feature and has translation support for more than 40 languages.

Link : http://code.google.com/p/google-api-translate-javame/

Tuesday, April 27, 2010

Google Transliterate in SINHALA

.
Google Transliterate (http://www.google.com/transliterate/) now supports Sinhala Language.

I tried entering "subha aluth awuruddak wewa" and below is the output.
















By checking this service I found out that it does more work than Traditional  Phonetic Transliteration.

It has some prediction (AI) capabilities so that in most times it will show the intended word we needed.
I tried the same input with some other similar services and the output was not accurate like in Google Transliterate.

Similar services

Tuesday, April 06, 2010

PInvoke (Platform Invoke) in C#

Recently I had a requirement of calling some functions in a C++ DLL file which i created, via C#. I achieved it by using PInvoke.


So what is PInvoke ?


Platform Invocation Services (PInvoke) allows managed code (code which runs in Microsoft CLR) to call unmanaged functions (code compiled directly to Machine Language) that are implemented in a DLL.












The advantage of using PInvoke in my case is that, C++ DLLs compiled to machine Language runs much faster than compiled to CLR.



How to use PInvoke – Basics


Let's assume you have a function int getValue(char c) { ... } in a C++ App. First you have to change and wrap like below.

#ifdef __cplusplus
extern 
"C" {
#endif   

__declspec(dllexport) int getValue(char c)
{
        //some code
        return 0;
} 

  
#ifdef __cplusplus
};
#endif

 
Now recompile the program as a DLL and we are ready to call this function from C#. 


So in your C# Application, first include  

using System.Runtime.InteropServices; 

Then add below line in the class file.  

[DllImport("YourDllName.dll", CallingConvention = CallingConvention.StdCall)] 
public static extern int getValue(char c);

After that you can call that function just like calling any C# function. 
Eg: int i = getValue('a'); 


How to get a C++ struct from C# 

Let's assume that you have a C++ function which returns a structure. And you need to get the returned C++ structure from the C# code. Here is how you should do it.


In the C++ code, the structure should look like this.


#pragma
pack(push, 8) 

struct Location {  
    int x;
    int y;
}; 
#pragma 
pack(pop) 

And assume that the C++ function (which returns the structure) looks like below, 

__declspec(dllexport) Location getLocation(int a)
    {
        Location loc;
        loc.x = 10;
        loc.y = 20;
        return loc;
    } 

So in the C# code, it should look like, 

[DllImport("YourDllName.dll", CallingConvention = CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.Struct)]  
public static extern MyLocation startProcessing(int a);


And our own C# struct Type  - MyLocation, to which we bind the returned data, should look like below.

  
[StructLayout(LayoutKind.Sequential)]
public struct MyLocation 

 {
    public int x;
    public int y;

 }

Then you can call the C++ methid in C# like,  

MyLocation loc = startProcessing(10); 


Reference

If you have any issues, please add a comment so that I can help you as I can !
 

Thursday, March 25, 2010

After a long time

Hello Dear friends,


I was not able to update my blog for the past 10 months.

But stay tuned because there will be frequent blog posts from now on ...

Thursday, March 26, 2009

My Final Year Project

These days i'm working on my final year project to complete my Software Engineering degree @ APIIT.

The topic of my FYP is "A Universal Translator for Mobile Phones". As soon as you here about the topic you may remember Start Wars because in those films there were inter-galactic translators to communicate with each aliens.

Ok, if i get back to my FYP, it will work as Speech -> Speech translator. It will be helpfull when you are in abroad and you can't speak or understand the local language.

Let's assume that you are in France and you only know how to speak/understand English but you need to talk with a French guy. So all you have to do is,
  1. Install my application in a mobile phone.
  2. Talk to the phone in 'English'.
  3. Then the phone will recognize what you spoke by using it's Speech Recognition Engine.
  4. So the sentence you spoke will be in text format.
  5. Then the phone will translate that sentence into 'French'.
  6. After that the translated text will be spoken by the phone in 'French' by using it's Text-to-Speech engine, so that the other guy can understand.
  7. This can be done vise-versa too so that you can understand French in English.
I think now you have a slight idea that it functions like,
Speech Recognition ==> Language Translation ==> Text to Speech.

There are many challenges I have to face in developing this,
  • I'm building the application to work in an average mobile phone which is still not done yet. All the available solutions are for PDA's which runs Windows Mobile OS and has higher hardware specifications.
  • Homophone Detection - A homophone is a word that is pronounced the same but differs in meaning (Eg. to,too,two) The speech recognition engine is not able to detect those errors. Eg. It may recognition "I need to go home" as "I need two go home" which is incorrect. So I came up with a 'Homophone Detection and Correction' algorithm which is AI based and use 'part of speech' tagging.
  • Sentence recognition - Current speech recognition API's are only capable of recognizing a single word (a command). So i have to enhance the speech recognition to recognize sentences.
  • Pronunciation modeling - A person can understand a sentence only if it is pronounced correctly. But still there are gaps in pronouncing (Text to Speech) in mobile computing. So I have to come up with a better and user understandable pronunciation mechanism.

Currently I have finished the research part and now in the design phase. Hope I'll complete it successfully.