deephealth lab

posted Oct 25, 2016, 10:21 PM by Iman Khaghani Far

Just started a new project, deephealth lab. aim to enable researchers to collect and analyse wearables sensor data
give it a look at

Persuasive Technologies for Active Ageing

posted Mar 23, 2016, 8:57 AM by Iman Khaghani Far

so I went through the defence of my thesis.
Here I would like to share with you the slides.
Later I will update this post and write more about what I've done during my PhD and attach the thesis.

Doing a PhD

posted Mar 23, 2016, 8:42 AM by Iman Khaghani Far

As I reached to the end of my doctoral studies...

Do new technologies care about older adult users?

posted Dec 6, 2015, 9:39 PM by Iman Khaghani Far   [ updated Mar 23, 2016, 8:44 AM ]

Read my article on Pulse.

Gstrap framework

posted Mar 4, 2015, 8:00 AM by Iman Khaghani Far

well, if you are a scientist or an explore, you might want a set of web technologies that let you create modular web apps in minutes.

in this regard, I have just created a js framework that is backed by deployd and can make prototyping a lot easier.

here is the code on github

let me know what you think.

Canvas Video chat

posted Mar 4, 2015, 7:56 AM by Iman Khaghani Far

so I have been exploring different ways that we can broadcast a video stream to all possible devices.
yes, I thought it would be webrtc or many other frameworks out there that use webrtc.

But I think not all browsers are supporting web rtc, so I went on experiencing on a very simple video broadcasting technology,

Here is how it works:
Broadcaster client: capture the media device, read the video stream and display it on a canvas with a defined internal.
then, get the images from the canvas and convert them into dataurls, send the data urls to a simple node server running

the server then gets the images and broadcasts it to the other clients listening to that socket.

the other clients recieve the image dataurl and simply update the src of an image. easy but now very professional. the only good thing about it is that you can almost broadcast to everywhere even on a kindle paper white.

here is a demo

persian pdf converter 2 for windows and mac

posted Nov 24, 2014, 9:20 AM by Iman Khaghani Far

please download the file from the attachment.

Learnings from the Qualifying Exam

posted Sep 17, 2014, 2:51 PM by Iman Khaghani Far   [ updated Sep 17, 2014, 2:52 PM ]

Hello all,

if you are reading this post, you are probably near to your qualifying examination or you will have it next year...

My intention of creating this post was to share with you my learning about how to and how not to prepare for the phd qualifying examination of the university of trento (DISI).

ok, so if you have stress, you better calm down, it is not that difficult and if you have dedicated yourself to your research, there is nothing to worry about...

let me start with the process that I have taken during the last year...

When I came to the university and started my research, I had no clue about what am I going to do during the next three years (or even more). so don't worry, it is the same for many of us that don't know how a research should look like and we are here to learn how to conduct research in a proper way...

for those of us who have the technological background, we sometimes confuse research with development, this is a common problem and most of the times we don't know if our work is accepted as research contribution... So, try to ask the more experienced students...

back to my own phd story, frankly, in the first 6 months, I did not know how to frame my research work and what are the possible dimensions that I have to consider... but after the 6th months, I started to worry and eventually I started to frame something that could be considered as a phd contribution...

DONT WORRY,  you advisor is there to help you when necessary, also your more experienced colleagues and co-advisors; however, it does not mean that you should rely on them all the time, the successful phd student has to be autonomous at the end of the day...



Lets talk about how to prepare, what I write here is my personal view, it is not confirmed instruction about how to do qualifying.... it varies from research to research and I know that many of you already know it much better than me...


  1. Read as much as you can, reading is good, search google scholar with all the possible combination of the keywords that is somehow related to your research work, download the papers and store them in mendeley. mendelely is a very helpful tool for you to organize your papers. after downloading the papers, start fixing their citation and titles (there is an option in mendeley that fetch the meta data about the article from google scholar and help you automatically organise your papers). (during you entire phd work, download more paper and add them to your mendeley bibliography . Now you are ready to read... read the papers, first the abstract and then the conclusion, if it is interesting to you, read the whole paper and highlight the important parts that are related to your research goals, on the right side of the mendeley window, there is a box for taking notes, always write YOUR MANING UNDERSTANDING from the paper, because you will forget it later and then you have to go through the paper again.
  2. Now that you have a list of papers, you will have some understanding about the problem and the works that have been carried out by other researchers in your field, However, to identify the dimensions of the problem and to find the research gaps, first you need to define some objectives based on your reading and then, use google spreadsheet, put all the interesting papers in a table and evaluate them according to your objectives in different cells, this will help you to have an overal view on the problem and the things in the state of the art... try to proceed the table and divide your work into segments (continue this until you realize that there are not more interesting papers with new dimensions in your research work...) WHEN YOU FELT THAT YOU KNOW 80 PERCENT OF THE RELATED WORKS, AND YOU ARE NOT ABLE TO FIND ANY OTHER RELEVANT PAPERS, THEN YOU ARE SAFE FOR ALMOST 6 MONTHS...
  3. Writing the qualifying paper: define the sections, write the state of the art, then introduction and then the problem and solution... define your research goals and plans precisely, try to come up with something rational and when you are planning, try to imagine the work you are planning to do in reality... is it possible?  DO NOT TRY TO SHOW THAT YOU ARE GOING TO DO A LOT OF WORKS IN THE NEXT TWO YEARS... NOBODY WILL BUY THAT...
  4. Preparing for the presentation: I believe this is the most important part, first of all, calm down, the more you are calm, the more you have the chance to do a greater presentation... the jury are also human and they have sense of humor... they are not going to kill you or kick you out of the school in the first round... worst thing that could happen is that you get a retry... Believe in yourself and your research and your phd career... you have worked for a year, and your research is unique... try to understand that, maybe the topic that you are talking about is very easy and understandable for you and your advisor, but explain it very carefully and introductory for the jury, since they have no idea about what ever you did in the last year and they only have 20 minutes to perceive your research work. STAY CALM, STAY PASSIONATE... BELIEVE IN YOUR SELF AND DO NOT TALK TOO MUCH... YOU HAVE A GOAL, WHICH IS CLEAR, HAS DIMENSIONS AND THERE ARE RESEARCH CHALLENGES THAT YOU ARE GOING TO SOLVE AND YOU WANT TO PROVIDE SOMETHING TANGIBLE AT THE END OF YOUR PHD... 
  5. If you can clearly answer your research work in four small sentence of : WHY, WHAT, HOW AND FOR WHOM. then you are ready... and you will pass the qualifying for sure... 

Good luck with all of you and please, add your experiences about qualifying and in general, how to and how not do to research in the comments...


Rapid software development

posted Sep 17, 2014, 2:48 PM by Iman Khaghani Far

been 2 years an active programmer, and more importantly dealing with the edge technologies, I kinda figured out how to develop applications for testing, small start ups and proving an idea... this does not mean that your final product will fail in a larger scale and at the production phase. Rapid development means using the edge technologies and frameworks and ease your development journey. 

so, what should we do? what are the situations that your are going to face during the development?

A: choose the right framework and language, don't go necessarily with c++ or Java, find something that makes your life easy and scale fast... we have a lot of opportunities nowadays and if you are smart enough, you would want to try new technologies because old tech belong to the old times :).

B: if you are developing for mobile, try the common practice frameworks, give a chance to HTML5 and phonegap. you wont be disappointed...

C: choose the right backend. Surely you want to come up with a strong and easy to scale backend that feed your front end, whether it is a mobile app, or web. Keep the backend clean and separated from the front end. Mind that modularity is the utmost importance once you want to scale and rapid dev in a project. never leave modularity, encapsulation and creating your own packages and classes, even in the backend. these might help you to switch on and off modules and modify your backend in a some hours... The choices are many here as well, but I'd recommend to take node.js very seriously and mind that there are over 72000 modules on your fingertips while you are developing with node. Node and NPM make life a lot easier. In addition, please consider how fast and scalable is node and its non-blocking architecture makes it the best to deal with millions of users... Also check out node clusters....
For the framework, take a risk and have a look at the excellent framework that help you build robust and secure backend in some hours... or if you want something more concrete that also bootstrap your frontend, then try framework.

D: hand on front end, never ever forget that front end dev does not mean you have to forget about modularity. Practice with the right frameworks suck as Angular.js or google closure. These might help you to stay modular all the way in your FN dev. If you are dev a portalish kind of front end for the web, then maybe you might want to consider angular.js for the controllers and twitter bootstrap along with bower to manage the dependencies... If you are hitting the mobile world, then the possibilities are wide, you can hand on with ionic framework, phonegap itself or native solution and even titanium.


posted Jul 9, 2012, 3:13 AM by Iman Khaghani Far

Google docs are awesome solution for collaborative work, currently I am working on several projects using google docs. 

the lesson learned in using google docs, is that it is better if everyone use a different color!
and do not delete each other text, but use strike line or highlight the text, no matter what you do, but dont delete the text, cuz using the revision system is a bit hard and not confortable ;)

1-10 of 17