mardi 19 juillet 2011

The Impact of Cloud Computing on the Medical Field

                 The Cloud Technology is an evolution in the world of computers and it has an impact on many fields and domains, it represent a big help for scientists that want to use the compute capacities, for the biologist that want to use the storage and data analysis capacities and of course on the world of IT where this technology present the best solution for several problems. But today I want to write about the impact of this technology on the medical field.
Strange, Cloud and Health Care, In fact the cloud we will provide services that we can only read about it in the science-fiction comic books, imagine an IPhone that can replace a hospital and getting access to treatment just by pressing a button.
Leveraging Cross-Disciplinary Exponentially technologies (Digital Medicine, Robotic surgery, Nano medicine, connected Health....) have a great impact on the quality of our health care services and provide for us
• Low-Cost Gene Analysis
• Computational Bio-Informatics
• Internet Connectivity
• Social Networking
This growth and those new means give us the chance to attack major problems in the world of health care and medicine like (Insufficient use of Information, Cost, Demography, Prostrated Adoption of innovation....). May be with some examples I can better explain this:

My First example will be the Iphone, Great Device that has more than 20000 applications for medicine and health care for example there is a Glucometer attach to some Iphones and of course an app for that to check the blood Glucose and send it to your doctor, also with the same phone you can attach a chip and check you self or your partner from STI (Sexual transmitted Infections)….

Another great news, now the virtual colonoscopy is available, the technique basically simulate the human colon and by using a very complex Artificial Intelligence  techniques doctors will be able to do this exam virtually without touching the patient 
Also the diagnostic devices become cheaper and portable, for example the stenoscope that used to be big and expensive now is available in the size of the hands and cost only 5000 $ of course this device need an application in order for it to work.
Furthermore some everyday objects can be transformed to be diagnostic tools like the mirrors and the watches, imagine at the morning when you wake up you will get a full body check by your lovely Mirror.

In the other hand the medical records are going electronics including the genetics information of the patient in fact in the US only less than 20% of patient’s data are still not electronic.  And finally the medical imaginary evolution that able doctors to look inside a human body or brain distantly in real time with a very high resolution in order to understand better the diseases.
All those example are great, and make our life much easier but there are two major problems that will stop this exponential growth, one how we can make those devices do great amount of calculation and computational operation without losing in term of money or size and two how we can keep tracking, centralize and store the big amount of data flow (yesterday we manage 50 MB per patient, today 20 GB and tomorrow 1 terabyte). Well the answer is simple : cloud computing, the cloud can offer a mean to store data in a secure and scalable way also it have an infinity of computational resources so by simply connecting a mirror to a cloud  it will be able to have the same capacities that have a calculation grid.
The Cloud will not help only in storing data and provide the compute resources that tools needs, it will help doctors to diagnose diseases by using A.I(those techniques need a big computational resources)  so we can get more and more precise diagnostic and reduce the errors probability, in addition cloud will offer a great reports on your health providing you with advices based on your current state of health and by doing some complex data and genetically analysis it well be able to predict and prevent diseases on some regular basis (T4 medicine) 

Also the cloud will provide great resource for studying the patients so pharmaceutical companies provide better cures that consider human variety.
And finally the cloud will offer cheaper services because what we use to pay for 10 MB hard disk now will get us thousands of Gigabytes
The cloud computer will be the central system that provides storage and computational resources for hundreds of medical and non-medical devices that are distributed everywhere (inside and outside the body) and that keep tracking the human health state so we can have a health system that:
·         Empower the patient
·         Enable the doctor
·         And Enhance wellness

Cloud computer is a fact and has its own impact in many fields, it opens doors for scientists and researchers to innovate and create without thinking about resources or means.

vendredi 4 mars 2011

The Great Cloud

Since I was interested with the cloud I was looking around everywhere in articles, interview and videos to know about this « new technology » that everybody is talking about..
In the beginning I was scared, I found in front of my face a big number of new terms and paradigms was also the term cloud is over-applied “it’s the new trend” , “the new technology choice FOR the IT in the future”, “everybody will go to the cloud” cloud here and cloud there. Also in almost articles and video the authors suppose that you are a great IT and he suppose that you know all about the cloud and he start talking about his own cloud or predicting about the future of the new cloud solution that exist. But in this article I like to answer the basic questions that I got when I started goofing around:
  • What is the cloud in first place (Clear definition)??
  • After I move to the cloud what are the management tasks removed and what I still have to do (I have to do something right)
  • What are the solutions that exist and what is the difference between them??
  • What I need to know before starting use the cloud??

I will Start by an abstract definition for the cloud and I think it is the best definition I ever read:
“The Cloud is a utility computing environment where the developer can treat the compute and the storage resources as infinite”.
Great Definition and great news not only for the IT guys who doesn’t like to manage storage issues but specially for every creator and innovator that he can’t find great resource to apply or to create his idea which can be the next million dollar idea, it’s a great news for people who like game development and 3D simulation and of course it is great news for science because now Scientist everywhere can use the cloud capacities to do hard and complex calculations that used to be done in some specific high cost grid calculation. There is a project done by a Tunisian engineer called Karim Chine this project allow scientists to do and share hard calculations and simulations by implementing the R platform on the cloud this project called Elastic-R and finally is a great news for people who like to test their startups “Now only with a pc we can start our own business”.

Now let’s talk about what it was removed and what it still you have to worry about, I will start by the good things:
  • All ITs must do some theoretical calculation and estimation about the maximum load, with the cloud you don’t need to do this anymore you have infinite resources.
  • No more replication strategy
  • No more Platform Patching/maintenance strategy
  • Don’t think about Storage “Head Room”
  • And Finally no more Data Center setup (Redundant Power, Redundant cooling, redundant internet connectivity….)

Cool!!!!!!!! Ok don’t be so sure because you still have a bunch of headaches that you need to worry about:
  • Data Storage: Nosql style or SQL style
  • Maximum concurrency in application
  • If Sql : storage sharing??
  • If no SQL: partition and row keys??
  • Programming language

  • Monitoring software
  • When to adjust capacity (especially that you pay for what you use)
So If you like this and actually you decided to move to the cloud there are many solution exposed out there by the big players (Microosft, Google,Amazon…):
  • Rackspace Hosting
  • Google App Engine
  • Amazon Web Services
  • Azure Services Platform
All those platforms are cloud based platform but there are different in term of services for example Amazon offers Virtualization other don’t, Also in management for example with Amazon you manage your virtual machine and add ones when you need it, but Azure manage for you the virtualization and add capacity when the application need it and finally in paying mode some of them offer a bill on timing others on operations and queries.
Is not something easy to move to the cloud you need to be familiar with distributed architectures and design patterns also you need to have a strong knowledge about security and of course managing Data Bases.
This is a little introduction about the cloud all you have to do now is to go out there and find the most solution that is suitable for your application or for you enterprise and be the first that present it to your boss.

dimanche 6 février 2011

MonoDroid Project

.Net Developers can start now developing for Android using c# and visual Studio.

Android is the winning cart in the world of smartphones it is the most popular with more than 100000 applications in the MArketpalce also many devices use it as an OS, in one word it is the windows of the smartphones.

But before the monoDroid project .Net developers was filling envy and frustrated because they are disable to share the goodness of the Android world and they will have to learn a new Framework. Also
the people who use the Visual Studio IDE will have problems using Eclipse.
So with the mono project (open source project to make .net compatible with different platforms), Nouvel( the same company than introduced the MonoTaouch (framework able you to develop for iphone using .net) in 2009) has stepped up and presented the MonoDroid project. You can start developing for Android after you download the monDroid for visual studio and some other tools all the download instructions are found in this Link Later more Tutorials will come up in order to introduce bettter the MonoDroid Project

mercredi 2 février 2011

Initiation à ASP.Net MVC

Cet article sera divisé sur trois parties

            Asp.Net MVC définition et introduction
            Asp.Net MVC Comment ça marche ???
            Asp.Net MVC application démos 

Asp.Net définition et introduction (partie 1)

C’est quoi le MVC???

MVC (Model Vien Controller) est un pattern architectural qui sépare l’application en trois composants : The model, The View and the Controller.

        Models : L’objet model ce sont les parties de l’application qui implémentent  la logique de domaine des données de l’application, l’objet model charge et enregistre des états de model dans une base de données. Par exemple, un objet produit peut charger des informations de la base de données, faire un traitement sur les données et enfin mettre à jour la base de données dans le serveur.
       Views : Ce sont les composants qui affichent l’interface utilisateur de l’application. Typiquement cette UI est créé suivant un modèle de données. Par exemple si on veut créer un édit view pour un tableau de produits qui affiche des zones de textes, des listes, des cases à coucher… suivant l’état actuel de l’objet produits.
       Controllers. Les contrôleurs sont les composantes qui traitent l’interaction de l’utilisateur avec le système. Ils choisissent un view et l’affichent. Dans le pattern MVC le view affiche seulement l’interface mais le contrôle des données se fait par les controllers qui passent ces données aux Models.

MVC Pattern offre une séparation entre les différentes aspects de l’application (logique de présentation, logique  de métier et logique des données), en même temps ils offrent un couplage libre entre ces composants. Le patern indique où chaque élément appartient dans l’application, la logique de métier appartient au model, la logique de présentation appartient au view et la logique des données appartient au controllers. Cette séparation permet de Controller la complexité pendant la création de l’application. Parce qu’il vous permet de concentrer sur un aspect de l’implémentation chaque fois. En plus il diminue la complexité des Tests et enfin cette séparation vous permet de créer les différentes parties de l’application en parallèle.

Quand je choisis de créer une application MVC ???

Vous pouvez choisir soit une application classique basé sur les web_forms ou choisir une application ASP.Net MVC mais pas les deux.
Avantages d’une application basée sur MVC
Rendre le control de complexité de développement plus facile à manager
MVC Framework est idéal pour les développeurs qui aiment avoir le contrôle sur tout le comportement de l’application.

Il utilise un Front Controller patterns qui traite les web application requests comme un seul controller qui vous permet de développer une application qui supporte une riche  routing infrastructure.
Supporte mieux les TDD(test-driven-developpment)
En général il sera très intéressant d’utiliser le MVC pour des applications complexes qui engagent un grand nombre de développeur et des Web designers qui ont besoin d’un dégréé supérieur de control sur le comportement de l’application.

vendredi 21 janvier 2011

The New JSR ( Java Specification Requests)

Finally JSR for java 7 & 8
JSR are primordial documents for Java Community Process:

The new Java 7 JSR:

JSR 334 : Small Enhancements to the Java™
Programming Language (The coin project for
Java 7) : 

JSR 335 : Lambda Expressions for the Java™
Programming Language (the lambda project for
Java 8) :  

JSR 336 : Java™ SE 7 Release Contents 

JSR 337 : Java™ SE 8 Release Contents 

3 principals JSR for Java SE7

JSR 203 : More New I/O APIs for the Java
Platform ("NIO.2") : 

JSR 292 : Supporting Dynamically Typed
Languages on the Java Platform :

JSR 334 : Small Enhancements to the Java
Programming Language (OpenJDK Project

For Java 8 is a lot more interesting because we discover and for the first Time the JSR that compose it

JSR 308 : Annotations on Java Types
JSR 310 : Date and Time API 

JSR ???: More Small Enhancements to the Java
Programming Language (OpenJDK Project Coin)

JSR 335 : Lambda Expressions for the Java
Programming Language (OpenJDK Project

JSR ???: Java Platform Module System
JSR 260 : Javadoc Tag Technology Update :

JSR 295 : Beans Binding 

JSR 296 : Swing Application Framework

Some dates:
JDK7 is available from jule 2010 but the JDK8 will be available in 2012

With Those amelioration Java is really catching up with the .Net framework witch contain many functionalities that we can’t found it with java and I hope that the open source community  with Oracle people  create many cool features that us developpers can use.
PS : Java now is supported by The Windows Azure