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

E.Nourddine

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

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

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

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

    18

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

  1. من خلال مكتبة subprocess module يمكن استدعاء الأوامر الخارجية عن Pyhton بالطريقة التالية: from subprocess import call call(["ls", "-l"])في حال كان الأمر يحتاج لقيم مُدخلة : import subprocess subprocess.call("command-name-here") subprocess.call(["/path/to/command", "arg1", "-arg2"])استدعاء برنامج بامتداد exe: import win32api try: win32api.WinExec('notepad.exe') except: pass How to call/execute an external command/programExecute External Programs, the Python Ways
  2. جرّب هذه الشيفرة والتي تقوم بترتيب المصفوفة ذات الأبعاد المتعددة: if ($a['num'] == $b['num']) { return 0; } return ($a['num'] < $b['num']) ? -1 : 1; }مثال آخر لطريقة الترتيب: foreach ($mdarray as $key => $row) { // indexتعويض 0 بقيمة $dates[$key] = $row[0]; } array_multisort($dates, SORT_DESC, $mdarray);
  3. يمكن تحويل متغير نصي إلى Int أو إلى Float وذلك بالطريقة التالية: #Floatالتحويل إلى >>> a = "545.2222" >>> float(a) #Int التحويل إلى 545.22220000000004 # int تحويل إلى >>> int(float(a)) #النتيجة 545وذلك باستعمال دالتي Cast -التحويل-: Float.int. HowTo: Python Convert a String Into Integer
  4. مكتبة shutil توفر العديد من المميزات، من بينها نسخ الملفات، مثال على ذلك: copyfile(src, dst)طريقة ثانية : import os import shutil #جلب المكتبة المسؤولة عن وظيفة النسخ srcfile = 'a/long/long/path/to/file.py' dstroot = '/home/myhome/new_folder' assert not os.path.isabs(srcfile) dstdir = os.path.join(dstroot, os.path.dirname(srcfile)) os.makedirs(dstdir) # إنشاء المسار في حال عدم تواجده سابقاً shutil.copy(srcfile, dstdir)ثم: import shutil def copyFile(src, dest): try: shutil.copy(src, dest) # eg. src and dest are the same file except shutil.Error as e: print('Error: %s' % e) # eg. source or destination doesn't exist except IOError as e: print('Error: %s' % e.strerror)Copying or Moving Files and Directories
  5. يمكن إغلاق Tabs المفتوحة في حال تم فتحها عن طريق دالة Window.open في Javascript، يمكن الاحتفاظ بها في متغير ثم غلقها عند الحاجة لذلك، وعموما يصعب الوصول لصفحات أخرى على المتصفح انطلاقا من صفحتك الحالية -باستثناء الحالة المذكورة سابقا-، وذلك لأن المتصفح يمنع تداخل الصفحات مما يعزز جانب الحماية، وفي المثال التالي سنوضح عمل window.open: var myWin = null; function openWin () { myWin = window.open("/hello.htm", "_blank"); } function closeWin () { myWin.close(); }
  6. يجب معرفة بعض أساسيات البرمجة على Rails، حيث أن الكائنات Objects هو من نوع Enumerable of ActiveModel objects مع المتغيرات anonymous_user_id،choice_index،وlegende : objects.map {|obj| obj.values_at(:anonymous_user_id, :choice_index, :legend) } .group_by(&:shift) بالنسبة لـ Groupe_by استعن بهذا النموذج: MyModel.where(...) .pluck(:anonymous_user_id, :choice_index, :legend) .map {|vals| Hash[ %w[ __key__ c_idx legend ].zip(vals) ] } .group_by {|hsh| hsh.delete("__key__") }أي أن الحل هو : MyModel.where(...) .pluck(:anonymous_user_id, :choice_index, :legend) .each_with_object(Hash.new {|h,k| h[k] = [] }) do |(key, c_idx, legend), hsh| hsh[key] << { "c_idx" => c_idx, "legend" => legend } end
  7. يمكن التأكد من الزر المضغوط عن طريق code ascii لزر enter، حيث يأخذ هذا الزر الرقم 13، وباستخدام e.which يمكن التأكد من ذلك بالطريقة التالية : $(document).keypress(function(e) { if(e.which == 13) { alert('enter قمت بالضغط على زر '); } });أو بطريقة أخرى : if(characterCode == 13) { return false; // enter في حالة الضغط على زر } else { return true; }Call Javascript function on pressing ‘Enter’ key
  8. الخطأ الأساسي في n = m.country.class == String، وذلك لجعل قيمة n تستقبل قيمة true أو false لأنك حاولت استعمال { reject! {|x| x == current_user.profile.user_id } والتي بالأساس تعيد قيمة متغير boolean، لذا الصحيح هو : def method_name Profile.all.select do |p| p.country.present? && p != current_user.profile end endأو بطريقة أخرى مختصرة : def method_name Profile.where.not(user_id: current_user.id).where.not(country: nil) end
  9. يمكنك استخدام ما يلي: var pathname = window.location.pathname; // تعيد المسار فقط var url = window.location.href; // نُعيد الرابط كاملاًوأيضا بهذه الطريقة: var URL = $(location).attr('href'); var PATH = $(location).attr('pathname') ; How to get current URL يمكنك استعمال لغة php لفعل ذلك أيضاً:
  10. استعمل : >>> 'hello world'[::-1] 'dlrow olleh' :النتيجية استخدمنا extended slice والتي تأخذ قيمتين، قيمة للبداية وأخرى للنهاية [begin:end:step]، وعند إعطاء القيمة 1- نقصد عندها عكس النص بشكل يُظهر الجملة من آخرها إلى بدايتها. مثال آخر، مصفوفة تتوفر على الأعداد من 0 إلى 9 مرتبة ترتيبا تصاعديا، وعند عكسها نحصل على : >>> L[::-1] [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]مثال آخر: >>> s='abcd' >>> s[::2] 'ac' >>> s[::-1] 'dcba'
  11. سنقوم بالعميلة على مراحل كالتالي: باعتبار أن هذه هي صورة الغلاف: يجب أن تتوفر على صورة كهذه، والتي ستمثل لنا أسفل - أو أعلى- العلبة الأسطوانية: من القائمة: Filter -> Map -> Map Object نضيف الفلتر التالي: بعض خصائص الفلتر: الصورة النهائية:
  12. الأمر الأساسي الذي يعتمد عليه المصمم في هذه التقنية وهو تكرار نفس الشكل مع إضافة تغيير طفيف عليه، ثم تأتي عملية التحريك والتي تشمل مختلف الأشكال المنجزة مسبقاً، ليبدو الأمر على أنه تحرّك animation للشكل، هذا مثال على ما تم ذكره: فعند الانتقال من اليمين إلى اليسار يبدو الشكل وكأنه يُغلق ويحُل الأسود مكان الأبيض. في الصورة التالية توضيح لعملية التحريك والانتقال من شكل لآخر:
  13. عملية تزامن الصوت مع مقطع الفيديو من الأساسيات التي تقوم عليها عملية المونتاج والتي ترتكز بالأساس على هذه الخطوات: ضع المؤشر على بداية المقطع الصوتي.أزِح المؤشر عن بداية المقطع الصوتي ناحية بداية مقطع الفيديو، وذلك حتى يتوافقان بشكل دقيق، فكل ثانية قد تشكل بالسلب على عملية التزامن.قص المقطع الصوتي وذلك بالضغط على الزر S.كرّر العملية السابقة حسب عدد الفيديوهات الموجودة لديك - في الصورة أتوفر على 3- .الآن يمكنك التأكد من تزامن الفيديو والصوت عن طريق بدء قراءة الصوت والفيديو.يمكنك التعديل على أي مقطع في حالة عدم الحصول على تزامن دقيق.
  14. في لغة #C وعند تعريف مصفوفة من نوع<>List فإنه بالأساس نقوم بتعريف نوع محتوى المصفوفة، عكس array والتي من الممكن أن تضم العديد من أصناف المتغيرات، لكن مع ذلك يمكننا تحديد نوع المصفوفة ولأي نوع من المتغيرات قد عُرّفت عن طريق :[myList.GetType().GetGenericArguments()[0 وبشكل مفصل يمكننا أيضا معرفة نوع محتوى المصفوفة List بالشكل التالي: var objectType = myList.GetType(); if (!objectType.IsGenericType() || objectType.GetGenericTypeDefinition() != typeof(List<>)) { throw new InvalidOperationException( " List<T> المصفوفة لاتتوفر على أي عنصر "); } var elementType = objectType.GetGenericArguments()[0];
  15. عليك باستعمال فلتر overlay filter. حيث يمكّن هذا الفلتر من وضع الفيديو فوق صورة يتم اختيارها: ffmpeg -loop 1 -i image.png -i video.mp4 -filter_complex "overlay=(W-w)/2:shortest=1" output.mp4 أما إذا كنت تريد ضبط مقاسات الفيديو فعليك بـ scale filter: ffmpeg -loop 1 -i image.png -i video.mp4 -filter_complex "[1:v]scale=400:-1[fg];[0:v][fg]overlay=(W-w)/2:(H-h)/2:shortest=1" output.mp4 كما يمكنك أيضا استعمال مسافة فاصلة بين الفيديو والصورة من الداخل -padding- pad filter : ffmpeg -i video.mp4 -filter_complex "pad=1280:0:(ow-iw)/2" output.mp4
  16. يوفر ووردبريس العديد من الدوال التي تفيد المبرمج في مُختلف المهام والخصائص التي يريد من الموقع أن يحتويها، و من بين هذه الدوال التي تسهل عليه كمبرمج، جلب المنشور من خلال Id -رقمه التعريفي- وهي الدالة ()get_post والتي تَقبل كقيمة مُدخلة Id_post، والتي سنستعملها بالشكل التالي: $my_postid = 12;// الذي من سيمكننا من الحصول على المنشورIdهذه هي قيمة $content_post = get_post($my_postid);//جلب المنشور $content = $content_post->post_content; $content = apply_filters('the_content', $content); $content = str_replace(']]>', ']]&gt;', $content); echo $content;// عرض المنشوردالة get_post
  17. يمكنك استعمال دالة comment_notification_text التي تتيح لك التعديل على التنبيهات بشكل جيد، واضافتها بالشكل التالي: /** * Filter the comment notification email text. * * @since 1.5.2 * * @param string $notify_message The comment notification email text. * @param int $comment_id Comment ID. */ $notify_message = apply_filters( 'comment_notification_text', $notify_message, $comment->comment_ID );حيث 'comment_notificatio_text' يمكنك التغيير عليه باعتباره التنبيه المُرسل. إذا كنت تنوي القيام بتغيرات جذرية للتنبيهات المُرسلة إلى المستخدمين، فإن الدالة السابقة الذكر تتوفر على Hook يمكنك التغيير عليه بشكل متقدم، يمنحك صلاحيات أوسع.
  18. لفعل ذلك عليك باتباع الخطوات التالية: أنشئ دائرة بالاستعانة بأداة الشكل الدائري، ولتكن بالمقاسات التالية : W=200,H=20.الآن طبق على الدائرة تأثير Radial Gradient مع تعيين شفافية Outer gradoent 0%.قم بتحديد قيمة الشفافية المناسبة للشكل حتى يعطي انطباع الظل المراد الحصول عليه.Add-a-Shadow-in-Illustrator
  19. لإدراج الإمضاء أو أي صورة تم مسحها بالماسح الضوئي، أدرج الكود التالي: حيث يمثل example-image.pdf اسم ملف pdf المحتوي على الصورة. \newsavebox\signaturebox \sbox\signaturebox{% \begin{tabular}{@{}c@{}} \smash{\includegraphics[height=2.25em]{example-image.pdf}}\\[5pt] (\usekomavar{fromname}) \end{tabular}} \setkomavar{signature}{\usebox{\signaturebox}}% وأيضا: \renewcommand*\raggedsignature{\raggedright} لنحصل على رسالة ممضية بإمضاء ممسوح بالماسح الضوئي، بالشكل التالي:
  20. في هذه الحالة من الجيد استعمال Alignat فهي مفيدة، حيث تسمح لك بتحديد المحاذاة والمسافة اللازمة في العديد من الأماكن، مما يمنح الوثيقة تناسق وتنظيم أكبر. وقد أدرجت قيمة alpha>0 في بداية كل سطر لتحديد المحاذاة، كما تبين شيفرة الكود التالي: \documentclass{article} \usepackage{amsmath} \usepackage{amssymb} \begin{document} \begin{alignat*}{2} \text{Fr\'echet:}\quad\qquad &\Phi_\alpha(x) = \begin{cases} 0, & x \le 0\\ e^{-x^{-\alpha}}, & x > 0 \end{cases} &\alpha > 0,\\ \text{Weibull:}\quad\qquad&\Psi_\alpha(x) = \begin{cases} e^{-(-x)^\alpha}, & x \le 0\\ 1, & x > 0 \end{cases} \quad &\alpha > 0,\\ \text{Gumbel:}\quad\qquad&\Lambda(x) = e^{-e^{-x}},\ x\in\mathbb R. \end{alignat*} \end{document}لتكون الوثيقة في آخر الأمر على الشكل المبين أسفله:
  21. استعمل هذه المكتبة في الرابط، بهذه الطريقة: NSString *path = @"/System/Library/Audio/UISounds/photoShutter.caf"; NSString *docs = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; NSData *data = [NSData dataWithContentsOfFile:path]; [data writeToFile:[docs stringByAppendingPathComponent:@"photoShutter.caf"] atomically:YES];ثم افتح ملف photoShutter.caf في برنامج Audacity واعكس التأثير ليصبح كما في الشكل -تامنحنى رقم 2-: واحفظ التغيرات في ملف photoShutter2.caf وإعدادات الصوت بالشكل التالي: static SystemSoundID soundID = 0; if (soundID == 0) { NSString *path = [[NSBundle mainBundle] pathForResource:@"photoShutter2" ofType:@"caf"]; NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO]; AudioServicesCreateSystemSoundID((__bridge CFURLRef)filePath, &soundID); } AudioServicesPlaySystemSound(soundID); [self.stillImageOutput captureStillImageAsynchronouslyFromConnection: ...ومن تجربة قد عمل البرنامج بشكل جيد، يمكنك تحميل الملف من photoShutter2.caf .
  22. لإنشاء module جديد على Magento، ولنفترض أن اسمه هم Hello. عليك بإنشاء هذه الملفات: *لاحط أن الأسماء كلها تحتوي على كلمة Hello وهو اسم Module. mkdir -p app/code/local/MyCompanyName/HelloWorld mkdir -p app/code/local/MyCompanyName/HelloWorld/Block mkdir -p app/code/local/MyCompanyName/HelloWorld/controllers mkdir -p app/code/local/MyCompanyName/HelloWorld/Model mkdir -p app/code/local/MyCompanyName/HelloWorld/Helper mkdir -p app/code/local/MyCompanyName/HelloWorld/etc mkdir -p app/code/local/MyCompanyName/HelloWorld/sqlثم أضف الإعدادات عبر الملف التالي: touch app/code/local/MyCompanyName/HelloWorld/etc/config.xmlبداخل ملف xml الخاص بالإعدادات، أضف التالي: <?xml version="1.0"?> <config> <modules> <mycompanyname_helloworld> <version> 0.1.0 </version> </mycompanyname_helloworld> </modules> </config>إعداد المسار: http://example.com/magento/index.php/helloworld أضف اسم Module إلى إعدادات النطام على magento: <config> <!-- ... --> <frontend> <routers> <!-- the <helloworld> tagname appears to be arbitrary, but by convention is should match the frontName tag below--> <helloworld> <use>standard</use> <args> <module>MyCompanyName_HelloWorld</module> <frontName>helloworld</frontName> </args> </helloworld> </routers> </frontend> <!-- ... --> </config>أضف: touch app/code/local/MyCompanyName/HelloWorld/controllers/IndexController.php سيظهر لك هذا الخطأ: Controller file was loaded but class does not exist إذ يتوجب عليك فتح ملف Module وتغيير اسم إلى اسم المسار: class MyCompanyName_HelloWorld_IndexController extends Mage_Core_Controller_Front_Action{ public function indexAction(){ echo "We're echoing just to show that this is what's called, normally you'd have some kind of redirect going on here"; } }للولوج إليه: http://example.com/magento/index.php/helloworld/foo متحكم Module: class MyCompanyName_HelloWorld_FooController extends Mage_Core_Controller_Front_Action{ public function indexAction(){ echo 'Foo Index Action'; } public function addAction(){ echo 'Foo add Action'; } public function deleteAction(){ echo 'Foo delete Action'; } }
  23. عليك باستعمال مكتبة ExcelLibrary الموضوعة في موقع Google Code : excellibrary إليك الكود المصدري مرفوق بمجموعة من التعليقات ليسهلَ عليك فهمه: //إنشاء الجدول DataSet ds = new DataSet("New_DataSet"); DataTable dt = new DataTable("New_DataTable"); ds.Locale = System.Threading.Thread.CurrentThread.CurrentCulture; dt.Locale = System.Threading.Thread.CurrentThread.CurrentCulture; //فتح الاتصال مع قاعدة البيانات OleDbConnection con = new OleDbConnection(dbConnectionString); con.Open(); //إنشاء جملة استعلام string sql = "SELECT Whatever FROM MyDBTable;"; OleDbCommand cmd = new OleDbCommand(sql, con); OleDbDataAdapter adptr = new OleDbDataAdapter(); adptr.SelectCommand = cmd; adptr.Fill(dt); con.Close(); // data set اضافة الجدول إلى ds.Tables.Add(dt); //انطلاقا من البيانات المًستخرجة من قاعدة البياناتexcel إنشاء جدول ExcelLibrary.DataSetHelper.CreateWorkbook("MyExcelFile.xls", ds);
  24. الطريقة الفعالة لفعل ذلك وهي بحساب المدة الزمنية المُنقضية منذ وقت النشر إلى الآن، ووضع عدة معايير للتحكم في الشكل النهائي الظاهر على شاشة المستخدم، مثلا عند انقاء 24 ساعة نكتب منذ يوم، بعد 60 دقيقة أي منذ ساعة وهكذا... // تعريف متغيرات الزمن دقيقة، ساعة، يوم... const int SECOND = 1; const int MINUTE = 60 * SECOND; const int HOUR = 60 * MINUTE; const int DAY = 24 * HOUR; const int MONTH = 30 * DAY; // حساب المدة المنقضية ووضعها في متغير var ts = new TimeSpan(DateTime.UtcNow.Ticks - yourDate.Ticks); double delta = Math.Abs(ts.TotalSeconds); //If التأكد من قيمة المدةالمُنقضية عن طريق دالة if (delta < 1 * MINUTE) { return ts.Seconds == 1 ? "one second ago" : ts.Seconds + " منذ ثانية"; } if (delta < 2 * MINUTE) { return "منذ دقيقة"; } if (delta < 45 * MINUTE) { return ts.Minutes + " منذ دقائق"; } if (delta < 90 * MINUTE) { return "منذ ساعة"; } if (delta < 24 * HOUR) { return ts.Hours + " ساعة"; } if (delta < 48 * HOUR) { return "الأمس"; } if (delta < 30 * DAY) { return ts.Days + " يوم"; } if (delta < 12 * MONTH) { int months = Convert.ToInt32(Math.Floor((double)ts.Days / 30)); return months <= 1 ? "one month ago" : شهر+ " months ago"; } else { int years = Convert.ToInt32(Math.Floor((double)ts.Days / 365)); return years <= 1 ? "one year ago" : years + " years ago"; }الأمر غير معقد، فقط يحتاج إلى بعض التركيز- وقد أرفقت المثال بالتعليقات ليسهل فهمه- .
  25. أولا عليك بتحديد المنطقة التي تريد تقصيضها عن طريق أحد الأشكال، كم في الصورة: بعض الاختصارات للأشكال: (R):لإدراج الأشكال المربعة. (E):لإدراج الدائرة. (F):لإدراج اليد لتحديد شكل معين. (U):لتحديد اللون الموجود في منطقة ما. بعد ذلك إلى القائمة menu>select crop Selection option * هناك طريقة ثانية للوصول إلى نفس النتيجة وذلك من خلا ل أداة Crop Tool كما توضح الصورة: بعد تحديد الأداة نحدد الجزء المُراد تقصيصه.
×
×
  • أضف...