GET STARTED WITH JAVA ENTREPRISE EDITION

Did you ever imagine that you only need three files to build your JAVA EE first application

Well it is that easy ! 


Create your maven project :



ignore errors :) 




copy this to POM.XML
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.formation</groupId>
 <artifactId>my-jee-app</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>war</packaging>

 <dependencies>
  <dependency>
   <groupId>javax</groupId>
   <artifactId>javaee-web-api</artifactId>
   <version>6.0</version>
   <scope>provided</scope>
  </dependency>
 </dependencies>

 <build>
  <pluginManagement>
   <plugins>
    <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-compiler-plugin</artifactId>
     <version>3.2</version>
     <configuration>
      <verbose>true</verbose>
      <source>1.7</source>
      <target>1.7</target>
      <showWarnings>true</showWarnings>
     </configuration>
    </plugin>
    <plugin>
     <groupId>org.apache.tomcat.maven</groupId>
     <artifactId>tomcat7-maven-plugin</artifactId>
     <version>2.2</version>
     <configuration>
      <path>/</path>
      <contextReloadable>true</contextReloadable>
     </configuration>
    </plugin>
   </plugins>
  </pluginManagement>
 </build>
</project>

and this file to src/main/java/FirstServlet.java
package app1;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet(urlPatterns = "/first")
public class FirstServlet extends HttpServlet {

 @Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
  PrintWriter out = response.getWriter();
  out.println("Formation JEE Freeways");
  

 }

}


also this file to src/main/java/WEB-INF/web.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 version="3.0">

 

 <welcome-file-list>
  <welcome-file>first</welcome-file>
 </welcome-file-list>

</web-app>


and run it as Maven Built


Tara you have your first app ! what a champion !

نظرة عن قرب على التعلم الآلي -Machine Learning

منذ عدة أشهر بدأت في البحث عن طرق للخوض أكثر في التعلم الآلي ، لم أعرف أين ابدء أولاً ، فبحثت في مجموعات الفايسبوك لأجد العديد ممن ينصحون بدرس Andrew Ng على كورسيرا. أمضيت 5 اسابيع من أصل 11 أسبوع  في متابعة الدرس، لكن في لحظة ما أدركت أنه يجب أن أتوقف لبعض الوقت لأقوم بتجريب ما تعلمته في مشاريع صغيرة لتثبيت المعلومات و فهمها على نطاق أعمق.

هنا سوف آخذكم خطوة بخطوة في أهم النقاط في تطبيق تقنيات أو algorithm التعلم الآلي وأحاول تفسير ما قد تعلمته.
 يسعدني أن تشاركوني في تجاربكم في التعلم الآلي فأنا أريد التعلم منكم ومن تجاربكم خاصةً أني مازلت في أول الطريق.

ماذا تستحق للعمل على مشاريع التعلم الآلي؟


-يجب أن تختار لغة البرمجة التي ستعملها، أنا اخترت python
-في مشاريع التعلم الآلي تستحق دائماً قاعدة بيانات لتطبيق algorithms. هناك العديد من قاعدات البيانات والأكثر شهرةً هي  IRIS FLOWER DATA SET يمكنكم القراءة أكثر عنها  هنا .

 ماهي مراحل المشروع ؟


 نحن لا نعرف حجم البيانات ولا ماتحتويه لذلك من البديهي أولا أن نحاول اكتشفها. سنرى حجمها ،عدد صفوفها واعمدتها ، أصغر وأكبر قيمة لها وربما نحاول رؤية علاقتها فيما بينها بإظهار رسوم بيانية.

لاحقاً سيتم تقسيم البيانات على قسمين  80% لتدريب البرنامج بها و- 20% لنقيس بها دقة النتائج.  ماذا أعني بالتدريب؟ تخيل معي أنك تدرس تلميذ كلما أجاب الاجابة الصحيحة تزيد نقطة في رصيده ، ليدرك أنه في الطريق الصحيح لإيجاد الحل كذلك هو الأمر بالنسبة لخوارزميات ال-algorithm التعلم الآلي.
 بعد تدريب البرنامج نقوم باختبار مدى صحته في التنبؤ  بال-20% من قاعدة البيانات التي تركناها سابقاً. سنقوم بتجريب العديد من ال-algorithms ونختار منها الأدق.
هكذا أصبح لدينا برنامج يقوم بالتنبؤ بالنتائج المستقبلية للمدخلات الجديدة.
يمكنكم القراءة أكثر هنا وهنا .
يسعدني تواصلكم معي لنتشارك تجاربنا في العمل على مشاريع التعلم الآلي
يمكنكم قراءة مقالتي السابقة على التعلم الآلي هنا






مواقع جد رائعة يجب عليك ادمانها


لو سألتموني ماهي المواقع التي اعتبرها الأفضل على الإطلاق فحتماً ستكون Quora و Linkedin .

لكل من لا يعرف  Quora هو موقع يمكنك أن تسأل فيه أي سؤال وستجد إجابات له من اخصاء وأناس مروا بنفس
تجربتك .يعني بعبارة أخرى سيكلفك عناء الدفع من أجل استشارات أو البحث عن مختص ليعطيك نصائح.
Quora هو عبارة عن مجتمع إفتراضي يمكن الحديث فيه عن كل المواضيع الدينية و السياسية و العلمية و النفسية و حتى الشخصية منها ... يمكنك طرح سؤالك بصيغة مجهول أو بهويتك. و أيضا يمكنك متابعة الأشخاص الذين تعجبك اجابتهم و تستطيع بدورك أن تجيب على اسئلة الآخرين . 
فقط أدخل الرابط وسجل ثم ضع أي سؤال يطرحه عقلك ، في غالب ستجد معضم الإجابات موجود لأنك لن تكون الوحيد الذي طرح هذا السؤال لكن يمكنك بالطبع أن تسأل من جديد وتضيف فيه طابعك الشخصي.



أما الموقع الثاني المفضل لدي فهو Linkedin .

أظن أن أي طالب أو مهني يجب أن يكون لديه حساب في Linkedin نظرا لأهميته في تكوين شبكة علاقات مهنية واسعة والحصول على فرص عمل في جميع أنحاء العالم وأيضا إكتساب خبرات من مختصين و التعرف على شكل الملفات الشخصية أو CV الذي سيمكنك من الحصول على مهنة أحلامك.
 أيضا يمكنك من عرض خبراتك في البروفايل الخاص بك مما يمكن الشركات من العثور عليك.
 كما يحتوي على كورسات  تعلم عن بعد linkedin.learning  و-  university.linkedin يحتوي على معلومات للطلاب والأساتذة على حد السواء إضافة إلى slideshare أين يمكن مشاركة slides الخاص بك أو الإستفادة مما يضعه الآخرون .
يمكنكم اضافتي على  Aya Ayari Linkedin

إن كنت تظن أن هناك العديد من  المواقع المهمة مثل Quora و Linkedin  فأرجو أن تضيفه في تعليق.




الفرق بين علم الإحصاء statistics و التنقيب في البيانات data mining و- التعلم الآلي machine learning والذكاء الإصطناعي artificial intelligence


يمكن أن نقول أن جميع مفاهيم  علم الإحصاء statistics و التنقيب في البيانات data mining و- التعلم الآلي machine learning  والذكاء الإصطناعي artificial intelligence مترابطة لكنها أيضا مختلفة و أيضا هناك بعض المفاهيم التي تنتمي لهم جميعاً في نفس الوقت. 
هنا في هذه المدونة سأحاول شرح الفرق.




علم الإحصاء أو statistics هو فرع من فروع الرياضيات بشكل بحت لكن استعمالاته ستكون ذات أهمية مركزية في كل من  التنقيب في البيانات و- التعلم الآلي لذلك للخوض في هاذين العالمين يجب أن تكون لك معرفة بقواعد الإحصاء. 



  التنقيب في البيانات أو data mining تستعمل الإحصاء  statistics والبرمجة programming لإيجاد أنماط patterns  أو لتفسير بعض الظواهر داخل البيانات. فهي تسعى لإيجاد معلومات جديدة داخل البيانات. يتم استخدامها في بيانات محددة ويكون للمستعمل تأثير عليها لتحديد الهدف من التنقيب داخل البيانات ويمكن إستعمال تقنيات التعلم الآلي ضمنها من  أجل الحصول على النتيجة لكن هي مبنية على الرياضيات أكثر من البرمجة. 




  التعلم الآلي أو  machine learning يستعمل تقنيات التنقيب في البيانات و- algorithms لبناء نماذج حول ما يحصل خلف البيانات حيث يمكن التنبؤ بالنتائج المستقبلية . الكثير من البرمجيات  في التعلم الآلي مبني على الرياضيات لكن ستكون البرمجة هي الأساس. 



الذكاء الإصطناعي أو artificial intelligence يستخدم نماذج التعلم الآلي وتقنيات أخرى لإنشاء سلوك ذكي. حيث أنه يقوم بتحليل العالم وإيجاد طرق الأنسب من أجل تحقيق هدفه دون تدخل خارجي. وهو يحاول تقليد العقل البشري . وهو يرتكز على البرمجيات بصيغة أولية وأساسية. 

بصيغة أخرى 
الإحصاء يهتم بالأعداد والأرقام
التنقيب في البيانات  يهتم باستخراج النمط patterns
التعلم الآلي يتوقع المستقبل من النماذج الفارطة
الذكاء الإصطناعي تقليد العقل البشري في التفكير والتصرفات 

أرجو أن تكونوا قد استفدتم وأن تكون مدونتي قد حمستكم للبحث أكثر في هذه المواضيع.


مقدمة للتعلم الآلي-Machine Learning



التعلم الآلي هو جزء من منهج الذكاء الإصطناعي يسمح للحاسوب بالتعلم من الخبرات السابقة ليصبح قادر على ألإختيار بشكل تلقائي وذاتي. 
من أشهر الخوارزميات أو algorithms المعروفة في التعلم الآلي هي :
  • supervised learning
  • unsupervised learning

سأتطرق في مابقى من المقال للتعريف بمفاهيم هذه الخوارزميات باعتماد بعض الأمثلة لكن هذا سيكون فقط تعريف سطحي دون التطرق للكود لكن سيكون بإذن الله في المرات القادمة تطرق لدورة تعليمية في كيفية إستخدام هذه الخوارزميات في أمثلة عملية. 

Supervised learning 

في هذا النوع من الخوارزميات هناك علاقة بين المدخلات inputs والمخرجات outputs ودائماً مايكون لدينا فكرة عن نوعية المخرجات فمثلاً علاقة مساحة المنزل بثمنه حيث نعلم أن inputs هو مساحة المنزل و-output هو ثمنه وهناك دائماً علاقة بين الثمن والمساحة. 
و-supervised learning ينقسم إلى نوعين regression و- classification حيث أن الأول يعتمد على تكهن output إعتماداً على إستمرارية continuity الإحتمالات الفارطة بأن يجد نمط معين ويقوم باخراج output إعتماداً عليه أما النوع الثاني classification فهو يعتمد على تقسيم outputs إلى فئات مثلاً "نعم" أو "لا" ، "0" أو "1" ، "يمكن" أو "لا يمكن"، فئة "أ" فئة "ب" فئة "س".

المثال الذي في صورة يمثل النوع الأول وهو regression 


نعلم نوعية output----> إذاً هو supervised learning 
يتم تكهن النتيجة إعتماداً على الإستمرارية continuity حيث أن لو أردت أن أعلم ثمن المنزل الذي يوافق 2500 square/feet يمكنني فقط أن أتتبعه على الرسم البياني وأقوم بإسقاط  النقطة الموافقة للمساحة على price-->إذاً هو regression problem

أما إذا اردنا أن نجعله classification problem فقط يمكننا أن نختار أن يكون تقسيم المنزل إلى منزل أقل من 250k أو أكثر من 250k . مثال اخر بناءً على input فيها مريض له ورم سيكون تقسيم هل الورم خطير وليس خطير. 

 Unsupervised learning
في هذا النوع من الخوارزميات يهتم بنوعية المسائل التي لا نعلم ماذا يمكن للنتيجة أن تكون حيث نستعمله لنجد structure للبيانات التي نمتلكها.



  

مثلاً يمكن أن نقوم بادخال بيانات العديد من الأشخاص، الalgorithm سوف يقوم بتقسيم الناس حسب العديد من الخصائص المتاحة في بياناتهم.
  وهذا algorithm يستعمل في جوجل news، و في وكالات الفضاء لتحليل البيانات، وفي تحليل الجينات ..


أرجو أن تكونوا قد استفدتوا من هذا التقديم البسيط للتعلم الآلي.

للمزيد من المعلومات يمكنكم متابعة درس Andrew Ng هنا 

تجربتي في أمتحان الأيلتس IELTS


يظن الكثيرون أن التحصل على أي شهادة للانجليزية من أي مركز للغات سيكون كفايةً لإثبات تمكنهم من اللغة إلا أن هذا الأمر خاطئ. فالشهائد المعتمدة يجب أن تكون من مراكز عالمية معترف بها وأكثر شهادتين معترف بهما هما الايلتس والتوفل. حيث أن التحصل على أي شهادة منهما تكون كافيةً لإثبات مستواك في اللغة ويمكن أن تفتح لك آفاق كبيرة خاصةً إن كنت تنوي العمل أو الدراسة في الخارج.

هنا سوف أذكر تجربتي البسيطة في التحضير للايلتس بمفردي و التحصل على شهادة  بعلامة 9/6.5 والتي تمكن لي بفضل الله من إثبات اجادتي للغة بمستوى جيد يسمح لي بالدراسة أو العمل بالخارج.

















معلومات عن الايلتس

  • يتم امتحان قدراتك في 4 مهارات :الإستماع، القراءة،الكتابة والمحادثة.
  • المكان: British Council
  • يتم إمتحان المحادثة أولا في يوم وبقية القدرات معا في يوم اخر دون أي فواصل في ساعتين و-40 دقيقة .
  • النتيجة تكون بعد شهر من تاريخ الإمتحان.
  • تكون الشهادة صالحة لسنتين من تاريخ الحصول عليها.


يمكنك إختيار التاريخ الذي يناسبك من التواريخ الموجودة في الموقع ثم التنقل  ل-British Council من أجل إتمام التسجيل ودفع المعلوم الذي يقدر ب-310 دينار تونسي.
الموقع في الرابط  https://ielts.britishcouncil.org/


كيف أحضر للإمتحان؟

أن يكون مستواك في اللغة جيداً ليس كافياً للتحصل على الشهادة ليس لأن الإمتحان صعب بل بالعكس سيكون الإمتحان سهل إن تمكنت جيداً من نوعية الأسئلة وكيفية تقسيم وقتك وإستعمال المهارات التي يعتمدها المصحح في عملية التقييم ليضمن العدل بين جميع الممتحنين.
يجب التحضير للايلتس قبل شهرين على الأقل وسيكون بالتدرب على نوعية إمتحانات الايلتس .
من أحسن المدونات اللتي ساعدتني كثيرا في التحضير هي هذه المدونة في الرابط http://ieltsliz.com/ 
فيها كل شيء تحتاجه مع نصائح جد دقيقة و قيمة. وستجد كل مالم أذكره هنا ولن تحتاج لأي دروس  أخرى للتحضير.
فقط التدريب ثم التدريب ثم التدريب.


بعض النصائح

أنصح أن تختار تاريخ الإمتحان وتدفع المعاليم وتترك لنفسك وقتاً كافيا للتحضير هذا سيساعدك أن تبدأ المراجعة بكل جدية و بشكل منتظم كما أن British Council سوف ترسل لك على الإيمايل  مصادر فيها إمتحانات وبعض النصائح لاستعمالها في التحضير . 

حظ موفق




















كيف تتحصل على شهادة من منصة التعلم كورسيرا بدون أن تدفع مليم واحد

 ماهي كورسيرا؟
كورسيرا هي منصة تعلم عن بعد توفر العديد من المناهج والإختصاصات من أكبر جامعات العالم مثل جامعة ستانفورد 

 .Ranking و  جامعة واشنطن والكثير من الجامعات الأخرى ذات الترتيب العالمي العالي وهو مايسمى ب
يمكنكم البحث على ترتيب الجامعات من هذا الرابط

بعض الجامعات مرفقة في الصورة




.اختصاصات كورسيرا مجانية ومفتوحة للجميع إلا أن الشهادة تستلزم الدفع


ماذا عن الشهادة؟



معظم شهائد كورسيرا مشهورة في الوسط العملي نظرا لقيمتها المعرفية والعلمية ومصداقيتها خاصةً وأن الشهادة لا تتحصل عليها إلى بعد إتمام المهام والمسائل الموجودة في المنهج المراد دراسته في الفترة التي يحددها الدرس. لكن هذه الشهائد تكون باهضة الثمن وتحتاج بطاقة مصرفية لدفع التكلفة والتحصل على الشهادة.
لكن كورسير ا سهلت هذا الأمر على الذين يريدون العلم ويقطنون  في بلدان نامية أو لا يملكون مصاريف المنهج.
هنا شأشرح لكم الخطوات اللازمة للتسجيل في أي منهج مع الشهادة.

1) تصفح الموقع من هنا وابدء بإنشاء حساب بطريقة عادية https://www.coursera.org/
2) يمكنك البحث عن المنهج الذي تريد دراسته والدخول إلى صفحته
3) الآن يجب أن تدخل إلى الرابط المشار إليه بالصورة




ثم إختر الرابط الأول 





أتمم هذه الإختيارات 


ستظهر لك الإستمارة ، إذا كنت أول مرة تطلب الدعم المادي سوف يطلب منك تأكيد الهوية وفي العادة تكون صورة عن بطاقتك الشخصية أو صورة من جواز السفر . في هذه الصورة الحساب مفعل لذلك تظهر باللون الأخضر.
ثم يجب تعمير الإختيارات  كما يظهر بصورة  وكتابة إجابات حسب عدد الكلمات المذكورة أعلى كل خانة







الأن يمكنك الإنتظار 15 يوماً ليصلك التأكيد أو البدء في المنهج وإنتظار التأكيد الذي دائماً مايكون إيجابياً بالنسبة
.لسكان العالم الثالث وذوي الدخل المحدود

.احتفظ دائماً بما تكتبه في ملف حتى تستعمله دائماً في كل منهج تطلب فيه الدعم المادي