𝐈𝐓𝐂𝐎𝐃𝐄
85 subscribers
57 photos
14 videos
8 files
38 links
ثقافة برمجية ، معلومات تقنية ، روابط للاحتراف في البرمجة.
حسابي تلجرام: @Q_s_i0.
Download Telegram
📌 توضيح أكثر للموضوع
5️⃣ الاعتمادية (Depends) : هذه العلاقة هي علاقة مصلحة بحته "لا تجربها في المنزل"  ، فهذه العلاقة تجعل الكائن يستعمل الكائن الاخر وقت الحاجة اليه ثم يقتله ، تخيل ذلك ، ما شعورك .
اكبر مثال هو استخدامك لل Scanner يا قاتل الكائنات .
- في المخططات تمثل علاقة المصلحة بسهم متقطع ينطلق من الكائن المصلحي .

✍️عاصم ناجي
🔥2
6️⃣ التنفيذ (implementation) : تسمى علاقة التنفيذ ب Realization كمثال :
Man implements CanDo
هنا الفئة Man تتعهد وتُقسم بانها ستقوم بكل الوظائف الموجودة في CanDo . ونستفيد بذلك ان نكون متاكدين بان فئة معينة تستطيع فعل وظيفة ما .
مثلاً نبني واجهة interface باسم CanMakeSound فيها الدالة makeSound ، ثم نبني ثلاث فئات تنفذ الواجهة وهي Dog, Cat, Cow ولكن كل فئة سيكون اصدار الصوت لها مختلفاً , ونستفيد من ذلك كالاتي :
void sayHello(CanMakeSound obj){
    obj.makeSound();
}
هنا نستطيع ان نمرر Dog او Cat او Cow لانهم تعهدو بانهم سيقومون بالوظائف التي في CanMakeSound .
- في المخططات نمثل العلاقة بخط متقطع من الفئة الى الواجهة على رأسه سهم .

✍️@AsemNaji
🔥2
توضيح مهم لمفهوم
inheritance و access modifier و object
وظائف البرمجة الأكثر طلبا👨‍💻.
Forwarded from عاصم آل ناجي (┍᥈᥉ᥱᦂ┑)
بسم الله الرحمن الرحيم ، والصلاة والسلام على اشرف المرسلين .

فائدة جعل الدالة تعيد this .

في لغة جافا وهي كائنية التوجه بالكامل نقسم المشروع الى فئات متعددة وفي كل فئة نضع مجموعة من الدوال ثم نستعملها هكذا مثلاً .
class Query{
String table;
String columns;
void setTable(String table){
this.table = table;
}
void setColumns(String columns){
this.columns = columns;
}
@Override
public String toString(){
return "SELECT " + columns + " FROM " + table;
}

ثم سنستعمله هكذا .
Query q = new Query();
q.setTable("users");
q.setColumns("*");
System.out.print(q);

لا مشكلة في هذا وسيتم طباعة الاستعلام بشكل رائع ، لكن ما رأيك بجعل استخدام الفئة كالتالي .
Query q = new Query();
q.select("*").from("users");

الفكرة كالتالي
class Query{
String table;
String columns;

Query from(String table){
this.table = table;
return this;
}
Query select(String columns){
this.colmns = columns;
return this;
}
@Override
public String toString(){
return "SELECT " + columns + " FROM " + table;
}

هل تحب الاختصار اكثر ، ما رأيك ان نجعل استعمالها هكذا .
Query.select("*").from("users");

كل ما في الامر اننا سنجعل الدالة select دالة مشتركة static .
ثم نغير محتواها كالتالي .
static Query select(String columns){
Query q = new Query();
q.columns = columns;
return q;
}

ويفضل ايضاً ان تحول منشئ الفئة constructor الى منشئ خاص
private Query(){}

فكرة ارجاع this شائعة جداً وغالباً ما ستستعملها وستسهل عليك الكثير من العمل ، لاحظ استعمال النص التالي .
String name = "asem";
if(name.substring(0, 1).toUpperCase().equals("A")){
System.out.print(name + " starts with A or a");
}

كما يجب ان تعود نفسك على هذا النوع من الاستخدام ان كنت مبتدئاً .
🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
مقارنة بين لغة python ولغات البرمجة الاخرى من حيث سرعة تنفيذ التعليمات 💯
Forwarded from مدونة أُن
في اليوم الثالث اجتمع القوم في مقهاهم يتحادثون في شؤون الحاسب على العادة فجرى بهم الحديث إلى ذكر الحرية، فقال أحدهم: إنَّ البرمجيات الحرّة تحررك من الرقَّ وتفك عنك قيد الشركات، فكل مبرمج يتصرف على هواه، يكتب كما يشاء، لا قيود ولا سلاسل تُكبله، فأبواب المعرفة مفتوحة أمامة على مصراعيها، وليست كما البرمجيات المملوكة تُقيدك بقيود لا تُجدي، وتجعلك مملوكًا لا تملك أن تعدّل أو تُبدّل، كما قال ريتشارد ستالمان: البرنامج المملوك يورث مالكه سلطان على مستخدميه، وهذا السلطان ـ في ذاته ـ جَورٌ وظلم.

فقال له آخر: قد يرى أهل الفلسفة أن الحرية لا بد منها لكنَّ لها ثمنًا عظيمًا، إن البرامج المملوكة تُحفظ الحقوق، وتحمي الأسرار، وتُحفظ أموال المبدعين. فلو فُتحت الأبواب لكل من هبّ ودب، لهلك النظام، وتفرّقت الموارد، وضاعت الحقوق، أما البرامج الحرة فيسهل أن تطالها الفوضى ويخرب النظام، وقد قيل: الحرية الخالصة تؤدي إلى الفوضى.

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

فقال له: وهذه الأربعة أصلا لا تستقيم، كيف لأي غرض كان، لابد من ضوابط لهذا فنحن إنسٌ لا بهائم.

فقال لهما الشيخ: كلاكما في ضلال، أحدكما مكنَّ صاحب السلعة منه، والآخر تمادى في الحرية حتى أباح المحرمات وما حرياته التي ذكرها إلا تقليد لحريات فرانكلين الأربعة حرية الرأي، حرية العبادة، ترك الحاجة، ترك الخوف غير أنه صبغها بصبغة التجارة ولونها بألوان الحاسب لكن هذا لا يغير فمازالت لا تستقيم والأحسن من هذا التوسط وإنزال كل أمرٍ قدره، فاستخدم البرامج الحرة ولكن لا تجعلها الحرية دينًا يُعبد وتعقد عليه الولاء والبراء، وما أحسن قول لينيوس في هذا: "جل ما أستخدمه مفتوح المصدر ولكن هذا خياري أنا"
فالأمر اختيار لا اجبار وفيه سعة.

https://alsaaleak.github.io/posts/mfkhrt-ltqny/#foss
❤1
الـ Debugging (تتبع الأخطاء) جزء طبيعي جدًا من حياة أي مبرمج.
مفيش حاجة اسمها "أنا هكتب الكود كله صح من أول مرة".
الموضوع كله إنك تتعلم إزاي تلاقي الغلطة بسرعة وتصلحها بهدوء. 😎
يعني متتضايقش من الـ Errors
دي في الحقيقة بتساعدك تتعلم أكتر وأفضل. 👨‍💻🔥
❤2
Forwarded from الزَّنَاد
أعلنت شركة HUMAIN السعودية عن إطلاق تطبيق الذكاء الصناعي HUMAIN Chat من الرياض، الذي يُعد أول منصة محادثة ذكية مخصّصة بالكامل للناطقين بالعربية، مُعتمدًا على النموذج اللغوي "علّام 34B" المدرب على أكثر من 380 مليار كلمة عربية و390 ألف كتاب، بمشاركة أكثر من 120 خبيرًا، ما يضمن فهمًا دقيقًا للفصحى و26 لهجة محلية، في إطار هوية سعودية أصيلة وأمان يراعي الخصوصية والقيم الإسلامية، مدعومٌ ببنية تحتية وطنية قوية تشمل نقل المعالجة إلى الدمام عبر شراكات مع Groq وQualcomm ما خفض تكلفة التشغيل بنسبة 60٪، مع اعتراف عالمي بحصوله على المرتبة الأولى في معيار Arabic MMLU، وتوفيره عبر منصات عالمية مثل IBM Watsonx وHugging Face وMicrosoft Azure، ليمتد أثره إلى قطاعات التعليم والصحة والطاقة والمال والحكومة والتجارة الإلكترونية، حيث يُتاح مجانًا الآن عبر متاجر التطبيقات داخل السعودية، مع نية مستقبلية للانفتاح كمصدر مفتوح إن وُجدت الآليات اللازمة.

التطببق حاليا متاح في السعودية فقط.
استعمل المحِجاب.

https://chat.humain.ai/

https://play.google.com/store/apps/details?id=ai.humain.chat

#العاقول
👏1🖕1
This media is not supported in your browser
VIEW IN TELEGRAM
ماهو الـ API
Forwarded from تخاريف مبرمج
واحد من المشاريع اللي اشتغلت عليها من 8 سنين كان فيه challenge كبير جدا في موضوع الـ Search بالعربي (Arabic/English Search).

الموضوع مش بسيط خالص، يعني مثلا لو كتبت كلمة أحمد بالهمزة هل لازم المستخدم يكتبها بالهمزة عشان ترجع الداتا؟ طب لو كتبها احمد من غير همزة؟

طبعا الموضوع ده بيتكرر مع حاجات كتير جدا في العربي.
أي سيستم دايما بيكون معمول له localization مش مجرد translation.
يعني طبيعي تلاقي عندك في الـ DB أعمدة زي
name_ar, name_en

البحث بالإنجليزي straightforward وسهل جدا، لكن مشكلتنا دايما مع العربي.

الحلول اللي ممكن تفكر فيها

1. Full Text Search
حل ممتاز للإنجليزي، لكن العربي معاه مش قد كده. أغلب قواعد البيانات بتوفره، بس ما بيحلش المشكلة بتاعت الاختلافات في الكتابة زي الهمزات.

2. Elasticsearch
قوي جدا وفعليا بيساعد في العربي، خصوصا مع الـ analyzers اللي فيه.
بس بصراحة مكلف في الوقت والتنفيذ وبيبان قوته أكتر مع الـ big data لأنه near real-time.

3. Denormalization للنصوص العربية
هنا بقى بتعمل عمود إضافي مثلا denormalize_name_ar
وتشيل منه كل الحروف اللي بتسبب مشاكل زي الهمزة

يعني في العمود الأساسي تسيب أحمد، وفي العمود الجديد تكتب احمد
وساعتها لما تعمل search ت normalize input وتدور في العمود الجديد
الحل ده بسيط جدا وسريع في التنفيذ وكمان الـ performance بتاعه حلو جدا

ولو عندك data بملايين وتحتاج كمان سرعة أعلى، ممكن تمشي بالـ Hybrid Approach

Full Text Search + Denormalization
هتلاقي الأداء أحسن وأحسن.

الحلول دي مهمة جدا خصوصا في systems زي

* E-commerce
* Food Delivery
(بحث عن منتجات، مطاعم، أكلات وهكذا)

ولو عايز تعرف إزاي تطبق الكلام ده عمليا، هسيبلك لينك الفيديو في الكومنتات.

دمتم بخير
❤1
Forwarded from -فقيد الجسد |
آلَلَهّمً يَ مًحًوٌلَ آلَآحًوٌآلَ، حًوٌلَ حًآلَيَ آلَﮯ أفُضلَ حًآلَ 🤍🤲
❤2🥰1🫡1
نهاية حقبة لينكدإن… وبداية منصة جديدة؟

تستعد OpenAI لإطلاق OpenAI Jobs Platform، منصة توظيف جديدة مدعومة بالذكاء الاصطناعي، قادرة على مطابقة الشركات مع الموظفين بدقة أكبر، ومنح الجميع فرصًا عادلة مع شهادات معتمدة تفتح أبواب وظائف المستقبل. وقد أعلنت Fidji Simo، الرئيس التنفيذي لتطبيقات OpenAI، عن هذه الخطوة في مدونة رسمية، ومن المتوقع أن تنطلق المنصة رسميًا في منتصف عام 2026… فهل بدأ عصر جديد ينهي هيمنة لينكدإن؟

OpenAI Jobs Platform هي منصة توظيف جديدة مدعومة بالذكاء الاصطناعي، وتتميز بعدة نقاط:

- مطابقة ذكية وسريعة: المنصة تستخدم الذكاء الاصطناعي لمطابقة احتياجات الشركات بدقة مع مهارات الموظفين، مما يقلل الوقت والجهد في البحث عن المرشحين المناسبين.

- فرص للجميع: ليست مخصصة فقط للشركات الكبرى، بل تشمل الشركات الصغيرة والحكومات المحلية، لتوسيع الوصول للمواهب وفرص العمل على نطاق واسع.

- دمج التعليم والشهادات: مرتبطة مباشرة بـ OpenAI Academy، حيث يمكن للباحثين عن العمل الحصول على شهادات معتمدة لإثبات مهاراتهم في الذكاء الاصطناعي، من أساسيات استخدام الأدوات وصولًا إلى تطوير الوظائف المخصصة وتصميم التعليمات (prompt engineering).

- محاكاة سوق العمل الحقيقي: البرامج التعليمية والتدريبية مصممة بناءً على احتياجات الشركات الفعلية، بحيث يكون لدى المتدربين مهارات قابلة للتطبيق عمليًا مباشرة بعد اجتياز الشهادة.

- التعاون مع شركاء كبار: المنصة ستتعاون مع شركات مثل Walmart، وهيئات حكومية، ومنظمات مجتمعية لضمان وصول المنصة لمختلف القطاعات وتلبية احتياجاتها.

- هدف طويل المدى: تهدف المنصة، ضمن رؤية OpenAI، إلى تأهيل 10 ملايين شخص بحلول 2030 ليكونوا جاهزين لوظائف المستقبل التي تعتمد على الذكاء الاصطناعي.
❤1😢1
💰 ارتفعت ثروة لاري إليسون، مؤسس شركة أوراكل، بأكثر من 110 مليارات دولار في يوم واحد، بعد إعلان الشركة عن توقعات قوية لنمو أعمال الحوسبة السحابية خلال السنوات المقبلة. هذه القفزة دفعت سهم أوراكل للارتفاع بأكثر من 40%، لترتفع ثروة إليسون إلى نحو 391 مليار دولار، مقتربًا من إيلون ماسك الذي تتجاوز ثروته 436 مليار دولار بحسب فوربس

🧓 ورغم بلوغه 81 عامًا، لا يزال إليسون يشغل منصب رئيس مجلس الإدارة والرئيس التنفيذي للتكنولوجيا في أوراكل، محتفظًا بحصته الكبيرة في الشركة. وقد وسّع نشاطه ليشمل قطاع الرعاية الصحية، إضافة إلى مساهمات خيرية بارزة، منها تأسيس معهد إليسون للتكنولوجيا في جامعة أكسفورد، والمشاركة في اندماج ضخم بين Paramount Global وSkydance

☁️ توقعات أوراكل الطموحة، التي تشمل وصول إيرادات البنية التحتية السحابية إلى 144 مليار دولار بحلول عام 2030، دفعتها إلى مصاف عمالقة الذكاء الاصطناعي مثل أمازون ومايكروسوفت وغوغل، ما يعزز موقع إليسون في سباق الثروة العالمي.

#إيلون_ماسك
🤯2
#ميمز
أول من فقد وظيفته لصالح AI 😂😂
🤣2😁1
بعد غياب طويل نعود اليوم بموضوع مهم في هياكل البيانات(data structures)هو القوائم المرتبطة «linkedList»
في عالم البرمجة، يُعد اختيار بنية البيانات المناسبة أمرًا بالغ الأهمية لبناء تطبيقات فعّالة وقابلة للتطوير. توفر جافا مجموعة غنية من هياكل البيانات المُدمجة،ومن بينها القائمة المرتبطة(LinkedList) التي تتميز بديناميكيتها وتعدد استخداماتها.

ماهي القوائم المرتبطة«LinkedList»

هو عبارة عن بنية بيانات خطية، تتكون من سلسلة من العقد«nodes» المترابطة مع بعضها البعض بواسطة pointer حيث أن العقدة الأولى تسمى الHeadوهي اهم عقد لانها تحدد بداية الLinkedList.
وتتكون العقدة من من جزئين هما القيمة «data»و المؤشر«pointer»وهو المسؤول عن عملية الربط بين تلك العقد واخر عقدة يكون مؤشرها يساوي null.

الشكل العام لبنية ال LinkedList بلغة جافا :

class Node {
int data;
Node next;

Node(int data) {
this.data = data;
this.next = null;
}
}


مميزات LinkedList :

• ديناميكية الحجم.
• هيكل بسيط.

عيوبها :

•صعوبة الوصول للعناصر.
• تأخذ مساحة اكبر من array بسبب حجز مواقع للمؤشرات.

يتبع....
🔥4
ي المنشور السابق تعرفنا على الشكل العام لبنية الLinkedList وكان نوع البيانات int واذا اردنا ان نخزن نص يجب ان تغير نوع البيانات الى String ولاكن يمكن ان تجعل نوع البيانات اكثر ديناميكية من خلال جعل نوع البيانات Generics كالتالي :
class Node<T> {
T data;
Node next;

public Node(T data) {
this.data = data;
this.next = null;
}
}

ال() public Node هي دالة تكون نفس اسم الكلاس وتسمى كونستركتور.

العمليات الاساسية للتعامل مع LinkedList:
1- الإضافة« insert » وهي ثلاث انواع:
• الإضافة العادية « Append »
وهي إضافة العنصر لاخر عقدة في list واذا كانت الlist فارغة يتم سيكون هذا العنصر هو head اما اذا كانت ليست فارغة فسنحتاج لتيار يمشي على جميع العقد وهو «current» حتى يصل الى العقدة الاخير ويقوم بإضافة هذا العنصر بعد اخر عقدة نمثل هذا في كود لانفهم اكثر .
class LinkedList{
Node head ;// عقدة تمثل بداية القائمة

public<T> void insert(T element){
Node node = new Node(element);//تعريف العقدة التي سيتم اضافتها
if(head == null) // فحص ان القائمة فارغة
head = node;
else
{
Node current = head ;// يبدأ هذا المتغير من head
while(current.next != null )// loop لكي يمر على جميع العقد
current = current. next;

current.next = n;//المؤشر تبع اخر عقدة بيكون يشير الى العقدة الجديد
}
}
}

• الإضافة للبداية « InsertFirst »
إضافة العنصر لبداية ال LinkedList اي جعل هذا العنصر هو head.
  public void InsertFirst(T element) {
Node node = new Node (element);
node.next = head;
head = node;

}

• الإضافة في مكان معين« InsertatPosition »
وهنا سنحتاج الى بيانات العقدة و المكان الذي يريد ان تكون موجوده فيه مثل.
  public void InsertatPosition(T element , int position){
Node node = new Node (element);
if (position == 0){
InsertFirst(element);// نضيفة بواسطة دالة الاضافة للبداية
return //للخروج من الدالة
}

Node current = head;
int counter = 1;

while(current !=null && counter < position-1){
current = current. next;
counter ++;
}

if(current == null ){
System. out. println("position is not found ! ");
return}

//inserttge new node
node. next = current. next;
current. next = node;
}

2- الحذف« delete »
حذف عقدة معين من داخل LinkedList
  public void delete(T element) {
if(head == null ) return;

if(head.data == element){
head = head. next;
return;
}

Node current = head;
while(current.next != null){
if(current.next.data == element )
current.next = current. next. next;
return;
}
current = current. next ;
}

3- طباعة العناصر« display »
  public void InsertFirst(T element) {
Node current = head;
while (current != null){
System. out. println(current.dat+" —» ");
current = current. next ;
}
System. out. println(" null ");
}

4- الربط «merge»
عملية يتم من خلاله ربط اثنتين من LinkedList داخل LinkedList واحدة.
  public void InsertFirst(LinkedList list2 ) {
if(head == null ){
head = list2.next ;
return ;
}
Node current = head;
while (current.next != null ){
current = current. next.;
}
current. next = list2.haed;
}
🔥3
🇾🇪
سبتمبر عيد الثورة والنور والفخر، عيد حرية اليمن وكرامة شعبه، كل عام وأنتوا يا أصحابي وأهلي وكل يمني حر بألف خير، وكل عام واليمن الحبيب شامخ وعزيز، ومن قلب تعز  لآخر قرية في اليمن نقول (عيد سبتمبر مجيـــــــــــد)


ويارب يحفظ يمننا الغالي ويرجع له الأمن والنصر والعزة ونكون يداً واحده   ♥️
26 مجيد ❤️
❤‍🔥7
‏﴿لَيْسَ لَكَ مِنَ الْأَمْرِ شَيْءٌ﴾‏
.

﴿ لِلَّهِ الْأَمْرُ مِن قَبْلُ وَمِن بَعْدُ ۚ ﴾

@Qu_s78
❤2👍1