اذهب إلى المحتوى

E.Nourddine

الأعضاء
  • المساهمات

    1458
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    18

كل منشورات العضو E.Nourddine

  1. للعلم فدالة Split هذه تجزيء قطعة النص إلى أجزاء وذاك باتخاذ حرف أو رقم للتفرقة هذه الأجزاء، بينما في حالتك هذه لا أرى هذا العنصر الذي من شأنه أن يكون فاصلاً بين الكلمات، وهذا شرط أساسي لعمل Split، لذا فالحل الأمثل هو استخدام Regular expression، بهذا الشكل : import re DATA = "Hey, you - what are you doing here!?" print re.findall(r"[\w']+", DATA) #النتيجة هي # Prints ['Hey', 'you', 'what', 'are', 'you', 'doing', 'here']Python Regular Expression Syntax How to use findall, finditer, split, sub, and subn in Regular expression
  2. DriverMamager وسيلة قديمة بعض الشيء، لذا فاستعمال DataSource في هذه الحالة أفضل للاتصال بقاعدة البيانات من نوع Mysql: هذا الجزء خاص بتعريف أداة DataSource: Context context = new InitialContext(); DataSource dataSource = (DataSource) context.lookup("java:comp/env/jdbc/myDB");كما يمكننا تعريفها بهذه الطريقة: MysqlDataSource dataSource = new MysqlDataSource(); dataSource.setUser("scott"); dataSource.setPassword("tiger"); dataSource.setServerName("myDBHost.example.org");ثم لإنشاء اتصال مع قاعدة البيانات وجلب المعلومات، نكتب: Connection conn = dataSource.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT ID FROM USERS"); ... // هنا يمكننا إظهار المعلومات المستخرجة كيفما أردنا rs.close(); stmt.close(); conn.close(); //إغلاق الإتصال مع القاعدةبعد الإنتهاءMySQL Java tutorial
  3. أحسن طريقة لفعل ذلك هي باستعمال INFORMATION_SCHEMA وذلك بتخصيص هذه الدالة واستعمال INFORMATION_SCHEMA.COLUMNS لاستخراج معلومات حول الحقول الموجودة بالجدول، وذلك بالشكل التالي: SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`='yourdatabasename' AND `TABLE_NAME`='yourtablename';وتعتبر هذه الدالة قوية جدا، حيث من الممكن الحصول على العديد من المعلومات منها حول الحقول: نوع الحقل، الحجم الأقصى له، هل هو فارغ أم لا... INFORMATION_SCHEMA.COLUMNS
  4. لتستعمل الدالة Not In يجب مقارنة العنصر مع نتيجة Select بها عدة عناصر، لا مع قيمة من جدول بعينه، مما يعني أن جملة الاستعلام خاصتك ستصبح بهذا الشكل : SELECT * FROM Table1 WHERE Table1.principal NOT IN (SELECT principal FROM table2)وهذا مثال مبسط: SELECT * FROM suppliers WHERE supplier_name NOT IN ( 'IBM', 'Hewlett Packard', 'Microsoft' );حيث يراد في هذه الحالة إظهار كل المعلومات في حالة كان supplier_name غير موجود ضمن 'IBM','Hewlett Packard','Microsoft'. SQL Server: NOT Condition
  5. في الأساس، هذا هو الكود: ALTER TABLE {TABLENAME} ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL} CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE} [WITH VALUES] TABLENAME : يمثل اسم الجدول. COLUMNNAME : اسم الحقل الجديد -الحقل المُضاف-. TYPE: نوع الحقل،INT-STRING... CONSTRAINT_NAME: وهي الميزة التي تميّز الحقل، هل هو PrimaryKey أو غير ذلك. DEFAULT_VALUE: القيمة الافتراضية التي سيحمل الحقل في حالة لم تعطه قيمة. وهذه أمثلة: الطريقة الأولى: ALTER TABLE Employees ADD DateOfHire datetime CONSTRAINT DF_Employees_DateOfHire DEFAULT (GETDATE())الطريقة الثانية: ALTER TABLE Employees ADD IsTerminated datetime DEFAULT (0)SQL SERVER – Add New Column With Default Value
  6. للحصول على نسخة gnome الحالية، يكفي أن تدرِج في الطرفية الأمر : $ dpkg -l libgnome2-commonوبالنسبة لـ gnome-shell ، الأمر : $ dpkg -l gnome-shellوللعلم فقط، فـ gnome هي بيئة عمل حرة، تتميز بوجود واجهة مستخدم جد متطورة ومرنة، حيث بدأ العمل على هذا المشروع منذ سنة 1997، ويمكن اختصارها أنها مجموعة أدوات رسومية لتشغيل جهاز الحاسوب كسطح المكتب، إدارة الملفات، الشبكة.
  7. يلزمك شيء مثل autossh، حيث أنّ وظيفته الأساسية هي إبقاء ssh مفعّلا دائما وإعادة تشغيله إن لزم الأمر ذلك. يمكنك تحميله من هذا الرابط. وانطلاقا من تجربة العديد من المستخدمين، يمكن القول أنه جيد و ينصح باستعماله. ولاستخدامه، في الطرفية : autossh -M 20000 -f -N your_public_server -R 1234:localhost:22 -Cautossh – Automatically restart SSH sessions and tunnels
  8. XML:Simple ليست بالمكتبة سهلة الاستعمال، حيث يعاب عليها في كثير من الأمور التقنية، لكن يمكنك استخدامها في نهاية المطاف، الخطأ الذي اقترفته في كودك البرمجي هو استعمالك للجذر queue ، في حين كان الأجدر استعمال الابن user، هكذا: my $users = $xml_obj->{'queue'};ليصبح الكود كاملا على الشكل التالي: #!/usr/bin/env perl use strict; use warnings; use XML::Simple; use Data::Dumper; my $xml = "<queue><user>1</user><user>2</user></queue>"; my $xml_obj = XMLin($xml, forcearray => 1); my $users = $xml_obj->{'user'}; foreach my $v (@$users){ print $v; }Parse XML with Perl
  9. الطريقة المثلى التي يلجأ إليها المبرمجون في مثل هذه المواقف، هي استخدام ما يسمى بـ indent / whitespacing ، حيث تعتمد على ترك مسافة بين كل عنصرين، وفي حالة كان النص طويلا بعض الشيء المسافة المتروكة سابقًا كفيلة إظهار المساحة البيضاء بين مختلف العناصر، وكمثال على كلامي إليك الصورة التالية: ستجد أن العناصر ذات النص الطويل، لم تؤثر في تناسق الشكل العام لـ Radio Buttons.
  10. لا أنصح بذلك، إلا في حالة كانت التطبيق تطبيق لعبة أو تطبيق موسيقى بالأساس أو شيء من هذا القبيل. إذا كان التطبيق لا يحتاج بالأساس إلى الموسيقى، فلما إزعاج المستعمل به -لأنه لا فائدة ترجى منها-؟ وللعلم فمعظم تطبيقات الألعاب التي تتوفر على خلفية موسيقية، تتوفر أيضا على إمكانية إبطال وتفعّيل الموسيقى، وذلك من باب تحكم المستخدم في التطبيق واستعماله بأريحية تامة، لا أن نفرض عليه ذلك. بل ومن المفضّل إبطال الموسيقى مسبقا، وللمستخدم حق الاختيار، حسب رغبته هو.
  11. يمكنك تصميم شكل أكثر تنظيمًا وبوضوح أكبر، وذلك بإعداد الفترات الزمنية بشكل عمودي - مثال من10 إلى12-، وتبدأ من الأعلى نحو الأسفل، ثم بنفس الطريقة تُظهر عدد الزيارات في هذه المدة على شكل أيقونات للمستخدمين، تكثر عند ارتفاع الزيارات وتظهر بشكل أقل عكس ذلك. على أن يُظهر التصميم أيضا نسباً مئوية إن أمكن الأمر، والصورة التالية قد تعطيك تقريبا لنا أود قوله: لاحظ أنه يمكنك إضافة معلومات أخرى، كمكان تواجد أكبر عدد من المستخدمين -وتستهدفهم بشكل أساس في موقعك- .
  12. إذا ما تفحصت الكود البرمجي لموقعك ستجد سطرين شبيهين بالسطرين التاليين (Ctr+U لرؤية الكود سورس): <link rel="alternate" type="application/rss+xml" title="Scoopaper &raquo; Feed" href="http://www.scoopaper.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="Scoopaper &raquo; Comments Feed" href="http://www.scoopaper.com/comments/feed/" />*عنوان الموقع واسمه وحتى الرابط هي معلومات متعلقة بالموقع، أي أنك ستجد معلومات مغايرة. بعد الضغط على الرابط سيأخذك المتصفح إلى RSS FEED. WordPress Feeds
  13. في هذه الحالة يتوجب عليك ضبط الإعدادات التي لم تكتمل أثناء التحديث الأول، ثم إعادة التحديث من جديد، وذلك من الطرفية عبر الأوامر التالية : sudo apt-get -f install sudo apt-get update sudo apt-get autoclean sudo apt-get upgrade sudo apt-get dist-upgradeوهذا فيديو توضيحي لعملية التحديث من الإصدار 12.04 نحو 14.04 -Ubuntu-:
  14. كإقتراح مبدأي، لما لا تغير تخصصك نحو البرمجة والروبوتيك؟ بالنسبة للتخلي عن الدراسة، أجد أن الجامعة من شأنها أن تعلمنا الكثير من الأشياء وإن كانت في مستوى أقل من الذي نتطلع إليه، فمنهجية التدريس و كذا الأسس العلمية أمر لابد من تعلمه، خصوصا في أيامنا هذه. بالنسبة للرياضيات، لا تقل بأنه لا جدوى من دراستها، فعلى حد علمي أن الروبوتيك و كذلك البرمجة - في مستو ى جد متطور- تحتاج إلى أن يكون مستواك في الرياضيات متقدم لأنه وببساطة تعتمد على معادلات وخوارزميات جد معقدة، ولا تعتقد لوهلة أن مجال الروبوتيك يقتصر فقط على لوحة إلكترونية ومحرك وعدة أسلاك...، لا الأمر أكبر مما تتصور، فلكي يحافظ الروبوت على توازنه ويقوم بحركة متّزنة يلزم دراسة كل حركة جيدًا، وهذه الدراسة لا تتأتى إلا بمعادلات رياضية وفيزيائية أيضا. فنصيحتي لك أن تبقى في جامعتك، على أن تستمر في البرمجة، وتحاول التطوير من قدراتك ومهاراتك، فيما بعد ستحتاج إلى تعليمك الجامعي فلا تُهمل هذا الجانب. The Mathematics of Robots' Art
  15. من الناحية المهنية والأخلاقية، لا يُنصح بذلك! سؤال: هل تفعل الشركات الكبيرة ذلك-بما فيهم المستقلون-؟ نعم. لكن يبقى معيار الأمانة هو العامل المهم هنا، فإخبار العميل بالأمر من شأنه أن يلغي المشروع في أسوأ الحالات، لكن يبقى هو التصرف الصحيح - أقصد في حالة إعطاء المشروع لمستقل آخر-. دعني أعطيك حلاً أراه وسطًا، وظّف مستقل آخر تحت إشرافك، وأوكل إليه المهمة على أن تتابع العمل وتوجهه نحو الطريق الصحيح، لأنه في نهاية المطاف أنت المسؤول أمام صاحب المشروع، ليس هذا فحسب بل ستتحمل مسؤولية أي تقصير وأيضا إنجاز التغيرات أو الإضافات إذا دعت الضرورة إلى ذلك، والفرق واضح هنا أي أنت المسؤول الأول والأخير أمام العميل. لكن كما قلت سابقاً مسألة إخبار العميل، أرى أنها من مهنية العمل الحر ويجدر بك عمل ذلك، وإن كان الأغلبية لا يلتزمون بهذا الأمر، لكن الأصح أن يفعلوا.
  16. المشكل الكبير الذي يعانيه الأغلبية هو في تنظيم الوقت، لذا حاول تنظيم وقتك اليومي مع تخصيص جزء مهم منه للكتابة. بالإضافة إلى المطالعة والتي من شأنها أن تحسن من مستوى الكتابة لديك، والتعرف على مصطلحات جديدة، وتعبيرات قد تضطر إلى الاستعانة بها أثناء عملك على الكتابة. "أحب ما تعمل"، هذه العبارة ستصادفها أثناء البحث عن سبل التميّز في العمل، وكذلك أنصحك، أحب الكتابة واستمتع وأنت تكتب بشكل يشعرك بالارتياح، لأنك إن لم تكن مرتاح ستترك ما تفعل مع أول فرصة لذلك، وقد تخلُق أنت الفرصة للتخلي عن الكتابة. اقرأ حول أساليب الكتابة والتدوين، التدقيق اللغوي، النحو والصرف ... أنشئ مدونة شخصية تعرض فيها ما تنتجه يداك، من تدوينات وتأملات، حتى تشاطرها مع القراء وتأخذ آراءهم . حاول التطوير من قدراتك في الكتابة. اجعل لنفسك حافزاً يدفعك للكتابة دونما توقف. 9 خطوات لكتابة مقالات بشكل أسرع وزيادة أرباحك كمُستقل
  17. الحقل غير المفعل لـ checkbox هو بالأساس حقل checkbox لا يحتوي على قيمة، حيث يقبل هذا قيمتين 0 أو 1 أي أنه يتماشى مع المتغيرات من نوع boolean -إذا كنت ملما بالبرمجة-، لكن يلجأ العديد إلى استعمال هذا النوع من الحقول بالطريقة التالية : حيث يمكن أن يقبل أكثر من قيمتين، وفي هذه الحلة لا نتحدث عن متغير من نوع boolean وإنما متغير من نوع string يمكّن من تخزين إحدى القيم الأربع. Guidelines for check boxes
  18. الطريقة التي كتبت بها الكود صحيحة منطقيا، لكن يمكننا كتابتها بشكل أبسط من ذلك: if(typeof console === "undefined") { console = { log: function() { }, debug: function() { }, ... }; }يمكنك هذا الكود من استعمال كل وظائف console التي استعملتها سابقًا.
  19. في تجربة المستخدم، يتوجب على المصمم اختيار الأدوات المستعملة بعناية، وفي حالة الحقل من نوع boolean هناك عدة طرق لمعرفة وأخذ اختيار المستخدم، وكلها تعتمد على أدوات تتوفر على قيمتين اثنتين، منها: Check boxes و toggle swiches .Radio Buttons .Select lists.بالنسبة للعنصر Check boxes يجب على مبرمج الواجهة التأكد من أن المستخدم قام باختيار قيمة واحدة، بخلاف باقي الأدوات التي تتيح للمستخدم اختياراً وحيد فقط، حيث يمكن إعطاء القيمة 0 للحقل عند عدم تفعيل الأداة والقيمة 1 في حالة التفعيل، وتعد Radio Buttons من الأدوات المشهورة وذات إقبال كبير من طرف المبرمجين، لسهولة التحقق من اختيار المستخدم عليها. Input types html
  20. في LateX تعتبر الخاصية : fontshapeمسؤولة عن تحديد نمط الخط المستعمل للكتابة، حيث تقبل القيمة "it" كتعبير عن نمط الخط Italic، ويمكن تعيين هذه الخاصية موضعيا "Locally" أو بشكل عام"Globally"، كالتالي: موضعيا "Locally":\documentclass{article} \usepackage{fancyvrb} \begin{document} \begin{Verbatim}[fontshape=it] @book{book, title = {title}, author = {author}, volume = {1}, year = {2015}, publisher = {x} } \end{Verbatim} \end{document}بشكل عام "Globally":\documentclass{article} \usepackage{fancyvrb} \fvset{fontshape=it} \begin{document} \begin{Verbatim} @book{book, title = {title}, author = {author}, volume = {1}, year = {2015}, publisher = {x} } \end{Verbatim} \end{document}لتكون النتيجة كالآتي: LaTeX font commands
  21. لضبط إعدادات eth0 يدويا على نظام التشغيل Ubuntu، إليك الطريقة: من الضروري التوفر على الملف التالي: /etc/network/interfacesوهذا الأخير تتم قراءته من قِبل Ubuntu boot Script حيث يثم ضبط إعدادات الشبكة إنطلاقا منه، ويختلف محتوى الملف من حاسوب لآخر - من ناحية الإعدادات-، الملف الخاص بي على الشكل : auto lo iface lo inet loopback auto eth0مصدر iface eth0 inet static address 192.168.20.20 netmask 255.255.255.0 network 192.168.20.0 broadcast 192.168.20.255 gateway 192.168.20.250الأسطر الأولى ستكون متشابهة مع الملف لديك (أول اثنين)، أما ما تبقي فهي مخصصة لإعداد eth0 -بدون DHCP-، وهي الإعدادات الثابتة والتي تُفعّل عند كل تشغيل. Setting Permanent Static IP in Ubuntu مصدر
  22. بالنسبة للإصدار 12C من ORACLE يمكننا تعريف دوال ومتغيرات موضعية 'local'، مما يمكنك من استعمالها بشكل مريح وسلسل، لتصبح جملة الإستعلام الخاصة بك على الشكل التالي: with a1 as ( select to_char(date_col, 'ddmmyyyy') as date_str, a.* from a_table a ) select date_str, types_col, max(some_value) from a1 group date_str, types_col order by date_str, types_col;لاحظ أن الجزء: "to_char(date_col, 'ddmmyyyy'), types_col"سيتكرر حسب عدد الحقول الموجودة في الجدول ولن تضطر لإدراجه يدويا. ولاحظ أيضا استعمال Alias a1 حيث قمنا بتعريفه في الأول، ثم استخدمناه في المرحلة الثانية . مصدر ORACLE 12c
  23. CDP أو Cisco Discovry Protocol من تطوير نظام CIsico. حيث يستعمل بشكل أساسي للحصول على عناوين الحواسب المتصلة والمجاورة، بالإضافة إلى كشف ومعرفة المنصة ككل - كمنصة الحواسيب المتصلة فيما بينها-. حيث يمكن معرفة وإظهار معلومات واجهة Router المستعمل. CDP هي وسيلة مستقلة عن Protocol، وتعمل مع جميع أجهزة Cisco، بما في ذلك: routers,brides,access serves, switches. CDP يعمل فقط في طبقة اتصال البيانات 'data link layer' مما يمكّن نظامين من تبادل حميع المعلومات بينها. CDP-2 هي النسخة الثانية من CDP، وهي النسخة الأكثر استخداما، حيث تتوفر على وظائف أكثر ذكاءً من سابقتها. في هذا الفيديو شرح لبرتوكول CDP عن طريق برنامج Packet Tracer:
  24. تحتاج في بادئ الأمر إلى جعل حاسوبك يحصل علىIP ثابت من هنا. يمكنك معرفة IP حاسوبك الحالي من خلال هذا الرابط. ثم بعد ذلك يتوجّب عليك فتح Port مخصص للاتصال من خارج الحاسوب، وذلك حتي يتمكن المتصلون عبر الإنترنت من الولوج إلى Xampp عبر هذا الـ Port، استعن بهذا الرابط لذلك. كما يمكنك مشاهدة هذا المقطع : عند الانتهاء من ضبط جميع الإعدادات، سيتمكّن المستخدمون من ولوج صفحة Xampp من خلال عنوان IP. الأمر في غاية الأهمية، وليتوفر حاسوبك على بيئة آمنة، فالأمر ليس بالهين. في الأخير يمكنك مشاهدة العملية كاملة على هذا الشريط:
  25. لتثبيت OpenVpn على Ubuntu: نقوم بتحديث Ubuntu عن طريق كتابة الامر التالي في الطرفية :apt-get update بعد ذلك نثبت OpenVPN عن طريق الأمر :apt-get install openvpn easy-rsa يجب نقل ملف إعدادات VPN Server إلى المسار etc/openvpn/ ، يمكن فعل ذلك بالأمر التالي: gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf نقوم بفتح ملف server.conf : vim /etc/openvpn/server.conf ابحث عن هذه الجزئية في الملف: # Diffie hellman parameters. # Generate your own with: # openssl dhparam -out dh1024.pem 1024 # Substitute 2048 for 1024 if you are using # 2048 bit keys. dh dh1024.pemغير: dh1024.pemإلى: dh2048.pem يمكنك تتمة الطريقة عبر الرابط : How To Set Up an OpenVPN Server on Ubuntu 14.04 أو باتباعك للخطوات المدرجة في هذا الفيديو:
×
×
  • أضف...