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

E.Nourddine

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

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

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

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

    18

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

  1. هناك Module على Python يدعى بـ urllib2 والتي تمكن المستخدم من جلب محتوى الروابط ومن ثم استخدامها على الشكل المناسب، حسب الحاجة، وإليك هذا المثال: import urllib2 manager = urllib2.HTTPPasswordMgrWithDefaultRealm() manager.add_password(None, 'https://app.streamsend.com/emails', 'login', 'key') handler = urllib2.HTTPBasicAuthHandler(manager) director = urllib2.OpenerDirector() director.add_handler(handler) req = urllib2.Request('https://app.streamsend.com/emails', headers = {'Accept' : 'application/xml'}) result = director.open(req) # result.read() ستحتوى على معلومات # To get say the content-length header length = result.info()['Content-Length']How to use urllib2 in Python
  2. الدالة trim تستعمل لإزالة المساحات الفارغة من أول وآخر الكلمة، وهناك أيضا Ltrim و Rtrim لحذف الفراغ يسار و يمين الكلمة. في حالتك هذه سنستعمل بعض دوال التعامل مع المتغيرات النصية: Dim path = "char12345 (6789).jpg" Dim ext = IO.Path.GetExtension(path) Dim fn = IO.Path.GetFileNameWithoutExtension(path) Dim index = fn.IndexOf("(") If index >= 0 Then fn = fn.Remove(index).Trim() path = String.Format("{0}{1}", fn, ext)والجزء الثاني: Dim index = fn.IndexOf("(") If index >= 0 Then Dim endindex = fn.LastIndexOf(")", index) If endindex >= 0 Then fn = fn.Remove(index).Trim() & fn.Substring(endindex + 1) Else fn = fn.Remove(index).Trim() End If End IfString.Trim, méthode Trim, LTrim et RTrim, fonctions
  3. للتأكد من وجود بيانات في المتغيّر reader عليك بالتحقق من ذلك عن طريق الدالة HasRows التي تعيد true في حالة تضمّنه لبيانات، أو قيمة false في خلاف ذلك، وهذا يتم عن طريق دالة التحقق If و else كما هو مبيّن في الكود التالي: reader = sqlcom.ExecuteReader if Reader.HasRows() Then While reader.Read() Me.lblname.Text = reader("membname").ToString Me.txtmembtype.Text = reader("membtype").ToString Me.lblmembdate.Text = reader("membdate").ToString End While Else MessageBox.Show("No records found") End If
  4. دعنا نقسّم سيناريو سؤالك إلى أجزاء: بعد الضغط على الزر يتم إبطاله وهذا يمكن القيام به عن طريق إعطاء القيمة false للخاصية enabled.ثم الانتظار لمدة 3 ثواني.تفعيل الزر بعد مضي 3 ثواني عن طريق إعطاء القيمة true للخاصية enabled.ليكون الكود على الشكل التالي: Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Button1.Enabled = False ' ... إضافة أي أوامر برمجية في حالة أردت ذلك ... Await Task.Delay(3000) Button1.Enabled = True End SubTask.Delay Method
  5. مسار المشروع، يمكن تعريفه على الشكل: Dim path As String path = System.IO.Path.GetDirectoryName( _ System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)وهذا مثال تطبيقي لاستعماله، وإظهاره في رسالة عند الضغط على زر: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim path As String path = System.IO.Path.GetDirectoryName( _ System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) MessageBox.Show(path) End Sub Special Directories and System Directories in VB.NET
  6. الأمر يتعلق بأن الأداة datagridview لم تتعرف على الحدث selectionchanged، ولتفادي الخطأ عليك بتعيين الحدث من جديد ثم نسخ الكود السابق. لتعيين الحدث إذهب إلى نافذة الخصائص المتعلقة بـ datagridview وعيّن الحدث، كما في الصورة: حدد الأحداث في الدائرة المعلمة بالأحمر، ثم الحدث عند السهم. ثم انسخ الكود السابق.
  7. يتعلق الأمر بما يسمى بـ Indentation أو ضبط النص ليبدو متناسقاً، وهذا النوع يستعمل أيضا في الأكواد البرمجية لابدو مرتبة وسهلة القراءة، ولفعل ذلك على LaTeX، اتبع الخطوات التالية: من القائمة:Edit -> Find/Changeعين في مربع البحث على القيمة :" : "ثم القيمة التي سنعوضها بها:"^t:^t"اضغط change all.الآن أشرح لك ما تم عمله، قمنا باستبدال ':' بقيم نصية تجعل من النص يبدو متناسق ومنظماً، عكس ما قد يحدث في الحالة العادية.
  8. نعم يمكنك فعل ذلك، وذلك باتباع الخطوات التالية: تأكد من تضمين الخاصية confirmable في Model.devise:class User < ActiveRecord::Base devise :database_authenticatable, :confirmable ... end تأكد من تضمين خاصية confirmable في User migration:create_table :users do |t| t.database_authenticatable t.confirmable ... endقم بتوليد واجهات devise من جديد:rails generate devise:views # لتوليد جميع الواجهات rails generate devise:views users # لتوليد واجهة معيّنةفي مرحلة التطوير -development-ـ عدّل على الملف :/config/environments/development.rbأضف هذا الكود: config.action_mailer.default_url_options = { :host => 'localhost:3000' } config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = {:address => "localhost", :port => 1025}أما في مرحلة الإنتاج -production-:/config/environments/production.rbالكود: config.action_mailer.default_url_options = {:host => 'yourdomain.com'} config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => "127.0.0.1", :port => 25, :domain => 'yourdomain.com' }
  9. يتوجب عليك التغيير في إعدادات قاعدة البيانات على تطبيقRails ، ولفعل ذلك توجّه إلى ملف database.yml ،وغيّر في الكود المتعلق بـ production، أي عند رفع الموقع يتحول من حالة development -التطوير- إلى مرحلة الإنتاج أو العمل -production-، غيّر في الملف بحيث نغيّر نوع قاعدة البيانات المستعملة في production من SQLite إلى postgrsql، هكذا : development: adapter: postgresql encoding: utf8 database: project_development pool: 5 username: password: test: &TEST adapter: postgresql encoding: utf8 database: project_test pool: 5 username: password: production: adapter: postgresql encoding: utf8 database: project_production pool: 5 username: password: هذا الفيديو يشرح لك الطريقة:
  10. لحل هذا المشكل عليك أولًا بتحميل مفتاح public key المستخرج من موقع Heroku: heroku keys:add ~/.ssh/id_rsa.pub في حالة ما لم يكن لديك هذا المفتاح يمكنك استخراجه - توليده- من الموقع عبر أو الطرفية عبر الأمر : heroku keys:add كما يمكنك مسح جميع المفاتيح المولدة سابقاً عبر الأمر : heroku keys:clear ولرؤية ما يتضمنه حسابك من مفاتيح -Public keys-: heroku keys وللتأكد من عمل مفتاح ssh: ssh -vT git@heroku.com في حالة الاتصال ستظهر لك رسالة كما في النافذة التالية: OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007 debug1: Connecting to heroku.com [50.19.85.156] port 22. debug1: Connection established. debug1: identity file /c/Wrong/Directory/.ssh/identity type -1 debug1: identity file /c/Wrong/Directory/.ssh/id_rsa type -1 debug1: identity file /c/Wrong/Directory/.ssh/id_dsa type -1 debug1: Remote protocol version 2.0, remote software version Twisted debug1: no match: Twisted debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_4.6 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-cbc hmac-md5 none debug1: kex: client->server aes128-cbc hmac-md5 none debug1: sending SSH2_MSG_KEXDH_INIT debug1: expecting SSH2_MSG_KEXDH_REPLY debug1: Host 'heroku.com' is known and matches the RSA host key. debug1: Found key in /c/Wrong/Directory/.ssh/known_hosts:1 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Trying private key: /c/Wrong/Directory/.ssh/identity debug1: Trying private key: /c/Wrong/Directory/.ssh/id_rsa debug1: Trying private key: /c/Wrong/Directory/.ssh/id_dsa debug1: No more authentication methods to try.لاحظ السطر الثاني : debug1: Connecting to heroku.com [50.19.85.156] port 22.
  11. بما أن التطبيق على الموبايل، فأفضل طريقة للبحث هي استعمال نافذة البحث الموجودة على الهاتف، تتضمن زر المسح والإلغاء، أما زر البحث نستخدم الزر الموجود على لوحة المفاتيح. لهذا يمكن الاستغناء عن زري الحذف والبحث، نظراً لوجودهما أساسا في لوحة المفاتيح، أما زر الإلغاء أضفه في نافذتك.
  12. هذه الأوسمة، هي من أساسيات كتابة صفحة Html، لكن بالمقابل هناك بعض المتصفحات التي يمكنها تجاوز الأمر، وهذا ليس بالجديد فمنذ النسخة الأولى من الإصدار عمدت المتصفحات إلى ذلك، وظهور الوسوم في FireBug هو أكبر دليل على ذلك. ولعل المشكل نصادفه مع الإصدارات الأولى منInternet Explorer -كما عودتنا-، حيث إذا ما كتبنا هذا الكود في صفحة html: <!DOCTYPE html> <title>Test case</title> <form action='#'> <input name="var1"> </form>عند استعراض DOM لهاعلى IE، على هذا الشكل: HTML HEAD TITLE FORM action="#" BODY INPUT name="var1" BODY> لاحظ أن form بداخل head وليس body. بينما في باقي المتصفحات: HTML HEAD TITLE BODY FORM action="#" INPUT name="var1"عموما هذه الوسوم تدعم من طرف المتصفحات، لكن أهميتها تكمن في المعلومات التي تحملها، كروابط ملفات التنسيق، اسم الصفحة...أي وجودها له دلالات أخرى أهم .
  13. نظريا أفضل طريقة هي تثبيت مختلف المتصفحات التي يكثر استعمالها وكذا استعمال مختلف الأجهزة اللوحية والهواتف الذكية، حتى تتمكن من محاكاة الموقع حقيقة وتتأكد من عمل جميع الوظائف به، لكن الأمر جد مكلف و يصعب على الكثير إن لم نقل الكل تطبيق هذه الطريقة، لذا يلجأ المُوكلون بمهمة التجربة، بتثبيت برامج ومتصفحات تمكنهم من محاكاة الموقع على مختلف الأحهزة المنتشرة بكثرة: mobiletestemulateurmobileIETester13Essential Tools to Check Cross-Browser Compatibility
  14. عملية transition على css تنتج حدث على مستوى هيكلة ملف html أي بالتحديد على مستوى DOM، مما يمكن المبرمج من الوقوف على مختلف التغيرات واستغلالها في أكواده البرمجية، لذا فإنه يمكن التأكد من انتهاء العملية عبر JavaScript وذلك حسب كل متصفح: webkit :box.addEventListener( 'webkitTransitionEnd', function( event ) { alert( "Finished transition!" ); }, false );Mozila :box.addEventListener( 'transitionend', function( event ) { alert( "Finished transition!" ); }, false ); Operabox.addEventListener( 'oTransitionEnd', function( event ) { alert( "Finished transition!" ); }, false );
  15. استعمل دالة len التي تمكنك من استخراج طول المصفوفة، ويستعمل بهذه الطريقة : >>> len([1,2,3]) 3وفي حالتك: >>> len(items)Python String len() Method
  16. في Vb.net يمكن إدراج نص جديد في مربع الرسائل MsgBox بطرق ثلاث، هي: Environment.NewLineطريقة استعمالها: Dim value As String = "[First" + _ Environment.NewLine + _ "Second]" ' Write to console. Console.WriteLine(value)أو vbCrLf' vbCrLf استعمال Dim value As String = "[First" & vbCrLf & "Second]" ' Write to console. Console.WriteLine(value)أو Constants.vbCrLfوكلها تفيد إدراج سطر جديد، سواء على مستوى MsgBox أو في أي حقل من الحقول النصية على بيئة التطوير vb.net. Environment.NewLine Property
  17. أقترح عليك التمعن في هذه النافذة: استعمال الدخول بحساب facebook أو Gmail لأنها من المواقع التي فرضت نفسها اليوم وبقوة، كما يمكنك استعمال twitter أو LinkedIn ، حسب احتياجك.الطريقة الثانية هي بإدخال بريدك الإلكتروني وكلمة المرور، وهذا ما أدرجتَه في تصميمك أيضاً.في حالة فقدان كلمة السر يمكنك استرجاعها عن طريق إرسال رسالة تأكيد إلى بريدك الإلكتروني.إنشاء حساب جديد في حالة دخولك للموقع أول مرة.كما ترى التصميم أكثر احترافية ويتماشى مع ما هو شائع وناجع في المواقع، أنصحك بالتعديل ولو بصورة جزئية، على أن تتضمن أنواع الدخول التي تعتمد على مواقع التواصل الاجتماعي.
  18. دائمًا ما يرتبط اللون الأحمر بجذب انتباه المستخدم لشيء معين، فعلى سبيل الذكر لا الحصر، Gmail تتوفر على شعار به لون أحمر، ومع ذلك تستعمل زر بهذا اللون لتركيب رسالة جديدة -يمكنك الذهاب إلى الموقع ورؤية الزر: ولعل المستخدم اعتاد على رؤية اللون الأخضر لزر التأكيد والأزرق للدخول للموقع..، حيث هناك ألوان تترسخ لا شعوريا لدى المستخدم ومن الجيد المحافظة عليها قدر المستطاع. وهذه أمثلة لموقع تم تغيير ألوان أزراره:
  19. الابتعاد عن الشكل الواحد واللون الواحد في التصميم من شأنه أن يُكسب بعض الجمالية، لاسيما إذا كان الأمر يتعلق بالخط، حيث أن التنوع والإبداع في أنواع الخطوط لم يأتي عبثا، وأنا أخص بالذكر خطوط اللغة العربية التي وبشهادة الجميع لا تضاهيها لغة في تفنن أهلها والمختصين في هذا المجال بالجمالية والإبداع. بخصوص تغيير نوع الخط هو في الأساس يهدف لفت انتباه القارئ أن الكلمة أو القطعة ذات الخط المُختلف متميزة وذات أهمية عن باقي النص، وكمثال على ذلك عناوين الفقرات التي عادة ما تكون بخط مغاير لذلك الذي كتبت به الفقرات، أو ذو عرض سميك... أو ي شئ من شأنه أن يميزه عن باقي النص. كما يمكن تغيير لون الكتابة، أو عرضها...لتفرقتها عن باقي النص.
  20. تسمى هذه الخطوط بإرشادات التخطيط وهي تلك الخطوط التي تكون شفافة بعض الشيء، إلا أنّه من الممكن تغيير لونها حسب الحاجة إلى الأزرق أو ما شابه. وتستعمل هذه الخطوط 'Guid Lines' لتقسيم التصميم بشكل افتراضي إلى الأقسام التي يضمها، مثلا في حالة موقع نقسم التصميم إلى header،body و footer ... لضمان التنظيم أثناء التصميم. وهي طبعاً لا تظهر في التصميم النهائي -أي أنها مؤقتة-. يمكنك إظهارها من القائمة: View→Show→Guides وهذه الصورة توضح أكثر مدى أهمية استعمال هذه الخطوط: لاحظ تموضع الكتابة، فاستعمال الخطوط الوهمية يمنحك رؤية تصميمية واضحة. كما يمكنك استعمال الشبكة Grid، هذه الأداة أيضا تريك التصميم ضمن شبكة وهمية، لمعلمة النقط في التصميم والجانب التنظيمي.
  21. bin/ و opt/ ، يمكن اعتبارهما المجلدين المماثلان لـ Program Files على Windows. bin/ تضم الكثير من الأوامر التي من شأنها التحكم بالنظام، وتتضمن ملفات Shells مثل bash,csh... و أيضا الأوامر مثل cp,mv,rm,cat,ls. opt/ مخصصة لجميع التطبيقات التي تثبت بعد تثبت النظام أي التي تحمل ثم تثبت، مثلا StarOffice، Netscape... مجلد bin مجلد Opt Linux Filesystem Hierarchy
  22. برنامجي photoshop و Illustrator يتوفران على لوحة ألوان تستعمل نظام Hex لتحديد الألوان عبر كود بطريقة Hexadecimal : بخلاف Indesign الذي لا يتوفر على هذه الخاصية ، حيث يعتمد تحديد الألوان على هذا البرنامج على ثلاث تغيرات L*A*B : والفرق راجع لإستعمال كل من البرامج مجال التخصص، حيث أن Indesign مخصص لتصميم الكتب والمجلات وكل ما من شأنه أن يُطبع، عكس البرنامجين الآخرين مخصصان للتصميم والإبداع في التصميم الإلكتروني بشكل أساس.
  23. النسخة الأخيرة من برنامج Inkscape تدعم تصدير المشاريع إلى صيغة Pdf+LateX، لكن المشكل هنا أن الملف الناتج عن هذا التصدير سيكون فقط عبار عن ملف pdf وكل نص سيكون عبارة عن ملف بصيغة text. ، لكن في حالتك أنت تريد صور SVG. هذا المقال باللغة الإنجليزية يتحدث بالتفصيل عن كيفية إدراج صورة Svg في ملف LateX، ومن خلاله يمكن الصول على : لتصدير ملف من Inkscape : inkscape -D -z --file=image.svg --export-pdf=image.pdf --export-latex ولجلب الملف إلى LaTeX: \begin{figure} \centering \def\svgwidth{\columnwidth} \input{image.pdf_tex} \end{figure}لاحظ رابط الملف في: \input{image.pdf_tex}
  24. نعم فـ var_dump على php تمكن المبرمج من إظهار محتوى المتغير بشكل واضح مما يساعده على الوقوف على مختلف أماكن الخطأ في شيفرته البرمجية في حالة حدوث أي خطأ، وكذلك Python توفر لمبرمجيها هذه الإمكانية عن طريق pprint وهو Module واختصار لـ 'pretty-print أي الطباعة بشكل أفضل و أوضح، كمثال على ذلك: >>> import pprint >>> stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni'] >>> stuff.insert(0, stuff[:]) >>> pp = pprint.PrettyPrinter(indent=4) >>> pp.pprint(stuff) [ ['spam', 'eggs', 'lumberjack', 'knights', 'ni'], 'spam', 'eggs', 'lumberjack', 'knights', 'ni'] >>> tup = ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead', ... ('parrot', ('fresh fruit',)))))))) >>> pp = pprint.PrettyPrinter(depth=6) >>> pp.pprint(tup) ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead', (...)))))))لاحظ طريقة عرض محتوى المتغير أثناء استعمال: pp.pprint(stuff)[ ['spam', 'eggs', 'lumberjack', 'knights', 'ni'], 'spam', 'eggs', 'lumberjack', 'knights', 'ni']مما يتيح لك كمبرمج رؤية أوضح للمتغير. pprint — Data pretty printer
  25. لإزالة القيم المتكررة في مصفوفة على Python والحصول على قيم وحيدة، نستعمل دالة Set وهي دالة توفرها لنا Python لهذا الغرض. إذن يكفي أن نمرر متغير المصفوفة إلى الدالة Set بهذا الشكل : >>> t = [1, 2, 3, 1, 2, 5, 6, 7, 8] >>> t # عرص محتوى المصفوفة [1, 2, 3, 1, 2, 5, 6, 7, 8] # المصفوفة تتوفر على قيم متكررة >>> list(set(t)) # Set استعمال الدالة [1, 2, 3, 5, 6, 7, 8] #Set القيم المتكررة أزيلت بعد استعمال الدالة * لاحظ أن Set تستعمل مع دالة أخرى تدعى ب list. كما أن لهذه الدالة استعمالا آخر، وهو مقارنة قيم مصفوفتين، بهذه الطريقة: >>> t = [1, 2, 3, 5, 6, 7, 8]>>> s = [1, 2, 3] >>> list(set(t) - set(s)) [8, 5, 6, 7]
×
×
  • أضف...