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

E.Nourddine

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

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

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

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

    18

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

  1. استعمال التواريخ في لغة python كباقي لغات البرمجة، تتيح اللغة للمبرمج عدة دوال تساعده على الوصول لمختلف العمليات الممكنة والتي يحتاج لها بشكل أساسي. كلاس datetime هي الكلاس المسؤولة عن التاريخ ويمكن من خلالها إنشاء كائنات التاريخ واستعمالها، وهذا مثال عملي عن ما يمكن تقديمه: >>> maintenant = datetime.now() >>> maintenant datetime.datetime(2014, 12, 24, 18, 20, 4, 534918) >>> maintenant.year 2014 >>> maintenant.month 12 >>> maintenant.day 24 >>> maintenant.hour 18 >>> maintenant.minute 20 >>> maintenant.second 4 >>> maintenant.microsecond 534918 >>> maintenant.isocalendar() # année, semaine, jour (2014, 52, 2)لاحظ أن المتغير maintenant جاء من خلال إنشاء كائن من الكلاس datetime مع دالة now التي تفيد تاريخ ووقت الآن، ثم يمكن من خلال باقي الدوال الخاصة بـ datetime استخراج باقي الوظائف المتوفرة: .year #السنة .month #الشهر .day #اليوم .hour #الساعات .minute #لاستخراج الدقائقوهناك أيضا الدالة timedelta التي تمكنك من الحصول على اسم اليوم انطلاقا من تاريخ معين: from datetime import date, timedelta d = date.today() - timedelta(days=days_to_subtract)timedelta Python
  2. ملاحظة مهمة يجب عليك الانتباه لها، وهي أن الطريقة الأولى أسهل وأوضح من طريقة lambda، حيث يمكن للمبرمج المحترف والمبتدئ على حد سواء فهمها واستعمالها بشكل سليم، عكس الطريقة الثانية -lambda- التي أرى أنها غير واضحة للكل، والتي رأيت بعد البحث أنها تُستخدم بشكل أكبر في الحسابات الرياضية المعقدة شيئاً ما. فيما يخص قضية السرعة والفعالية، فهذا رهين بكيفية استخدامك للكود، وطريقة استدعاءك للدالة أو الشيفرة البرمجية المتوفرة على هذا الفلتر، لذا لا تشغل نفسك بمسألة الفعالية، بل الأهم تعلم كتابة الكود الصحيح. Python: Lambda Functions وفي هذين الشريطين، شرح لكلا الطريقتين بشكل مفصل: الفلتر بدالة labmda:
  3. عليك باستعمال: my_function.__name__ فالدالة __name___ تمكنك من الحصول على اسم الوظيفة على شكل String، أي أنها قيمة نصية. ويمكنك أيضا استعمال func_name والتي تعمل نفس وظيفة الدالة السابقة. >>> import time >>> time.time.func_name Traceback (most recent call last): File "<stdin>", line 1, in ? AttributeError: 'builtin_function_or_method' object has no attribute 'func_name' >>> time.time.__name__ 'time'ولاحظ أن قيمة 'time' هنا بين علامتي تنصيص مما يدل على أنه نص. وتستعمل هذه الدالة أكثرية مع دالة التحقق if للتحقق من اسم دالة معينة ومقارنتها بـدالة '__main__'،بهذه الطريقة:
  4. إذا كنت تتوفر على poppler-utils - حيث من المفروض أن تكون مثبتة على جهازك أثناء تثبيت بيئة العمل-، عندها يمكنك استعمال الأمر التالي من الطرفية: pdftotext my.pdf - | grep 'pattern'ولن تضطّر لتحوله إلى ملف نصي أو ما شابه. كما يمكن استعمال كل من Solr أو Clucence كبديل. هذا الفيديو يشرح طريقة استعمال Grep للبحث داخل ملف Pdf:
  5. يمكن تعيين أرقام التصنيفات التي تريد جلب محتواها، أي الرقم التسلسلي للتصنيف، لأنه وكما تعلم موقع ووردبريس يمنح لكل تصنيف رقم تعريفي ID لا يتكرر، يبدأ من الرقم 1 ثم 2..، وبهذا الرقم يمكننا الوصول لأي صنف أردناه، وفي هذا المثال حددنا التصنيفات الثلاث : 3، 5 و7 لجلب محتواها وإظهاره في الصفحة: WP_Query( array( 'posts_per_page' => 7, 'cat' => '5,3,7', ) );وهذا المرجع الشامل من الموقع الرسمي لووردبرس: Class Reference/WP Query
  6. هو الرقم العشوائي أو مايسمى بـ Random، وكباقي اللغات #C تتوفر على كلاس مخصصة لهذا النوع من الأعداد، وهذا مثال لطريقة استعمالها: Random rnd = new Random(); int month = rnd.Next(1, 13); // إنشاء رقم عشوائي يتواجد بين القيمتين 1و12 int dice = rnd.Next(1, 7); // إنشاء رقم عشوائي يتواجد بين القيمتين 1و6 int card = rnd.Next(52); // إنشاء رقم عشوائي يتواجد بين القيمتين 0و51حيث كما تلاحظ هنا طريقتين اثنتين لإنشاء مجال الرقم العشوائي، وأن الرقم ينحصر قطعاً بين القيمتين، أي من القيمة الدنيا إلى رقم قبل القيمة العليا. Random Class
  7. كما هو معروف، يجب استعمال Input من نوع file ليتم تصفح حاسوبك لاختيار الملف المراد تحميله، وهذا الحقل سيتواجد في View -الجزء V من MVC- ،حيث سيكون في المتحكم Controller الكود المسؤول عن نقل الملف وتخزينه في السيرفر. أي أن كودView سيكون كما يلي : @using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) { <input type="file" name="file" /> <input type="submit" value="OK" /> }والمتحكم Controller : public class HomeController : Controller { // إظهار الواجهة public ActionResult Index() { return View(); } // تحميل الملف، عن طريق نقله من مكانه إلى المكان المعيّن [HttpPost] public ActionResult Index(HttpPostedFileBase file) { // التأكد من وجود الملف if (file != null && file.ContentLength > 0) { // تحميل الملف var fileName = Path.GetFileName(file.FileName); // ~/App_Data/uploads folder نقل نسخة من الملف إلى var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName); file.SaveAs(path); } // نقل المتصفح لإظهار الواجهة من جديد return RedirectToAction("Index"); } } كما يمكنك أيضا تحميل العديد من الملفات، وذلك عن طريق إضافة عدة حقول من نوع file : <form action="" method="post" enctype="multipart/form-data"> <label for="file1">Filename:</label> <input type="file" name="files" id="file1" /> <label for="file2">Filename:</label> <input type="file" name="files" id="file2" /> <input type="submit" /> </form>http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx/ويكون كود تحميل الملفات : [HttpPost] public ActionResult Index(IEnumerable<HttpPostedFileBase> files) { foreach (var file in files) { if (file.ContentLength > 0) { var fileName = Path.GetFileName(file.FileName); var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName); file.SaveAs(path); } } return RedirectToAction("Index"); }Uploading a File (Or Files) With ASP.NET MVC
  8. تستعمل كل من Const و ReadOnly للدلالة على متغير ثابت - لا يمكن تغيير قيمته أثناء اشتغال التطبيق- أثناء اشتغال التطبيق، حيث أن كل واحدة منهما تتميز عن الأخرى: Const: متغير ثابت أو متغير موضعي، بحث تعطى له قيمته أثناء تعريفه، ويعذر عليه أخذ قيمة أخرى بعد ذلك. public const int X = 10;ReadOnly: يمنكن إنشاء هذا النوع من المتغيرات أثناء التعريف أو أثناء إنشاء الكائن من نفس الكلاس. class MyClass { readonly int X = 10; // initialized at the time of declaration readonly int X1; public MyClass(int x1) { X1 = x1; // initialized at run time } }
  9. قد يفكر البعض أن Trriger من شأنه أن يؤدي هذه الوظيفة، لكن في الحقيقة أن Trriger خاص فقط بالأحداث داخل قاعدة البيانات ولا علاقة له بعمليات BackUp، لذا يلجأ المبرمجون إلى كتابة كود خاص بهم لهذه المهمة، ومن ثم إرسال رسالة كشعار إلى بريد إلكتروني معيّن تخبره أن عملة استرجاع النسخة الاحتياطية قد تمت. وهذا مثال لما يمكن أن يتضمنه الكود: DECLARE @fn VARCHAR(MAX); SELECT @fn = SUBSTRING([path], 0, LEN([path])-CHARINDEX('\', REVERSE([path]))+1) + '\Log.trc' FROM sys.traces WHERE is_default = 1; SELECT DatabaseName, StartTime, TextData FROM sys.fn_trace_gettable(@fn, DEFAULT) WHERE EventClass = 115 AND TextData LIKE '%RESTORE%'; -- since can't differentiate between backup/restore حيث أن الكود : EventClass = 115مخصص لحالة Backup، كما يشير موقع Microsoft. هذا مثال عملي يشرك كيف تتم هذه العملية:
  10. سبب الخطأ في عدم إعطاء المصدر -references- بشكل جيد، حيث أنك ذكرت اسم الجدول فقط، في حين يتوجب عليك ذكر اسم الحقل أيضاً، لأنه وكما تعلم فالجدول يتوفر على أكثر من حقل، وليس بالضرورة أن يكون الحقل المعرِّف -PrimaryKey- هو المصدر في جدول آخر، أي أن الكود الصحيح هو: create table department (dept_name varchar(20), building varchar(15), budget numeric(12,2), primary key (dept_name) ); create table course (course_id varchar(8), title varchar(50), dept_name varchar(20), credits numeric(2,0), primary key (course_id), foreign key (dept_name) references department(dept_name) );Using FOREIGN KEY Constraints
  11. أولا لنعطي تعريفاً لـ HTTP: هي اختصار لـ HyperText Transfer Protocol وهو بروتوكول -لغة تواصل- يُمرّر المعلومات بين العميل -الحاسوب الشخصي- وبين الخوادم، أما HTTPS فهو نفس البروتوكول لكنّه يُؤمن المعلومات المتنقلة بين العميل والخادم، حيث أنك لاحظت الحرف S وأيضا اللون الأخضر للأيقونة جانب الرابط، مما يعني أنك تستعمل موقع يتمتع بكامل الأمان من حيث المعلومات المستخدمة، كاستعمال بطاقة ائتمان أو تسجيل معلومات شخصية، أي أن الموقع محمي من أي عملية اختراق ويتمتع بحماية ممتازة. وهذا راجع بالأساس إلى استخدام المواقع لتقنية SSL التي تجعل من الموقع آمن، حيث أن غالبية المواقع اليوم - الجيدة- تعتمد https.
  12. في أطر العمل الكبيرة والمنتشرة بقوة مثل Rails، نجد إمكانية إضافة ما يسمى بـ Internationalization، وهي أداة تمكّن الموقع من تحويل وترجمة الموقع -تقريبا- إلى أي لغة في العالم، وغالبا ما يُرمز لهذه التقنية بـ i18n . في Rails بالتحديد توفر لنا إضافة Gem التي تفي بهذا الغرض، ومن تجربة شخصية أرى أنها قوية، وسهلة الاستعمال، اسمها - الإضافة - : rails-i18n. هذا رابطه : rails-i18n ولبضبط الإعدادات: في ملف GemFile نضيف السطر التالي: gem 'rails-i18n', '~> 4.0.0' ومن خلال الطرفية، نشغّل الأمر التالي: gem install rails-i18n -v '~> 4.0.0' في المسار التالي من المشروع: config/environments/نختار اللغة المراد اعتمادها في الموقع: config.i18n.available_locales = ['es-CO', :de]وهذه لائحة جميع اللغات المتاحة -لاحظ وجود اللغة العربية- : af, ar, az, bg, bn, bs, ca, cs, cy, da, de, de-AT, de-CH, el, en, en-AU, en-CA, en-GB, en-IE, en-IN, en-NZ, en-US, en-ZA, eo, es, es-419, es-AR, es-CL, es-CO, es-CR, es-EC, es-MX, es-PA, es-PE, es-US, es-VE, et, eu, fa, fi, fr, fr-CA, fr-CH, gl, he, hi, hi-IN, hr, hu, id, is, it, it-CH, ja, km, kn, ko, lo, lt, lv, mk, mn, mr-IN, ms, nb, ne, nl, nn, or, pl, pt, pt-BR, rm, ro, ru, sk, sl, sr, sv, sw, ta, th, tl, tr, tt, uk, ug, ur, uz, vi, wo, zh-CN, zh-HK, zh-TW, zh-YUEباقي الخطوات أتركك لتتبعها مع هذا الفيديو: Ruby On Rails Tutorial - I18n
  13. عادة ما تكون لوحة التحكم ذات الشكل العادي والذي تتداولها المواقع المهتمة بتطوير الوِب، كمثال هذه الصورة: حيث نجد في الجانب الأيسر - بالنسبة للمواقع الأجنبية- قائمة بمختلف وظائف لوحة التحكم، على أن يكون الجزء الأكبر في الجهة اليمنى يُظهر محتوى كل وظيفة بشكل أوضح، ويمكّن مدير الموقع من إجراء مختلف التغيرات في الموقع. هذا مثال للوحة تحكم في موقع ووردبريس لموقع عربي-: وعلى العموم فلوحة التحكم لن تخرج عن هذا التصميم، نظراً لتعود المستخدمين على هذا الشكل، والذي يمكن اعتباره شكل قياسي في هذه المرحلة. 24beautifully-designed web dashboards that data geeks will love
  14. هناك خطأين في الكود، هما كالتالي: : nbrStep character varyingتعريف المتغير nbrStep يجب أن يكوم من نوع NUMBER لأنه سيكون بمثابة العداد في Loop. FOR i IN 0..nbrStep LOOP : في loop For على ORACLE تبدأ بالقيمة 1 وليس 0. ليصبح الاجراء 'Procedure' كالتالي: CREATE OR REPLACE PROCEDURE ADDSTEP(nbrStep NUMBER) is i integer :=1; BEGIN FOR i IN 0..nbrStep LOOP INSERT INTO mytabletest VALUES (i); END LOOP; END;
  15. يلزمك استعمال نافذة Fill and Stroke، مما يعطيك تحكم أكبر في لون الجوانب، ملأ اللون... لإدراج اللون بدقة متناهية: حدد الشكل المراد تطبيق اللون عليه.اضغط Object > Fill and Stroke أو الإختصار Ctrl+Shift+F.في نافذة Fill اختر اللون الذي تريده.للعلم فإن هذا النظام هو RGBA وليس RGB أي أنه لا يتوفر على نظام Hex، لذا إذا كنت ترغب بإدراج اللون 666666# أدرج اللون 666666ff# عوض عنه، حيث أن الحرفين ff خاصين ب A الموجودة في RGBA.
  16. الخطأ بهذا الجزء: :input_html => {data-dismiss="modal" aria-hidden="true"}يمكنك تجربة هذا المقطع: :input_html => {"data-dismiss" => "modal", "aria-hidden" => "true"}ثم زر Submit: <%= submit_tag 'Cancel', :type => :reset, :class => "btn btn-danger", "data-dismiss" => "modal", "aria-hidden" => "true" %>Form Helpers
  17. يمكنك action_mailer_optional_tls من إرسال رسائل إلكترونية باستعمال Google Mailer، وذلك عن طريق إضافة الكود التالي إلى ملف environment.rb: ActionMailer::Base.smtp_settings = { :tls => true, :address => "smtp.gmail.com", :port => "587", :domain => "YOURDOMAIN", :authentication => :plain, :user_name => "GOOGLEUSERNAME", :password => "GOOGLEPASSWORD" }Sending Email via SMTP Gmail on Ruby
  18. يمكنك استعمال أي من الطريقتين التاليتين: <script type="text/javascript"> var w = window; for (i=0;i<10;i++) { w["arr_"+i] = []; } </script>أو مصفوفة داخل مصفوفة: var arr = []; // أنشيء مصفوفة فارغة. for (var i = 0; i < 10; i++) { arr[i] = [];// أدخل القيم في المصفوفة }
  19. تأكد من مكان وضع الملفات ومن صلاحياتك اتجاه الملفات، حيث أن ملفات موقعك يجب أن تكون على الشكل التالي: /public /stylesheets home.css home.html server.jsوإعدادات الخادم، على هذه الشاكلة: var express = require("express"); var app = express(); var path = require("path"); app.get('/',function(req,res) { res.sendFile(__dirname + '/home.html') }) app.use(express.static(__dirname + '/public')) app.listen(3000); console.log("Running at Port 3000");ثم قم بتشغيل الخادم: node ./server.jsثم زر الرابط http://localhost:3000/stylesheets/home.css سيُفتح ملف Css، مما يعني أنه يعمل.
  20. يمكنك التأكد من ظهور أو اختفاء نافذة المتصفح من خلال دالة Javascript التالية: visibilitychangeوالتي تتيح لك التأكد من ظهور أو اختفاء نافذتك، بالطريقة التالية: app.controller("myCtrl", function($scope, ngAudio, $window, $document) { $scope.src = "aud.mp3"; $scope.play = false; $scope.play = function() { $scope.audio = ngAudio.load('aud.mp3'); $scope.audio.play(); }; $scope.stop = function() { $scope.audio = ngAudio.load('aud.mp3'); $scope.audio.pause(); }; $document[0].addEventListener("visibilitychange", function() { var doucmentHidden = document.hidden; $scope.$apply(function() { //need to apply scope from events to run digest cycle if (doucmentHidden) $scope.stop(); else $scope.play(); }); }, false); })JQuery Trigger Event on Show/Hide of Element
  21. الخطوات التالية كفيلة بجعلك تثبت Rails4 على Ubuntu: تثبيت Ruby: حيث أن Ruby هي اللغة التي تبرمج بها التطبيقات على Rails.sudo apt-get update sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-devبعد ذلك نستعمل RVM :sudo apt-get install libgdbm-dev libncurses5-dev automake libtool bison libffi-dev curl -L https://get.rvm.io | bash -s stable source ~/.rvm/scripts/rvm rvm install 2.2.3 rvm use 2.2.3 --default ruby -vثم RubyGem:echo "gem: --no-ri --no-rdoc" > ~/.gemrc gem install bundlerثم تثبت NodeJs لأنه ضروري لعمل Rails: sudo add-apt-repository ppa:chris-lea/node.js sudo apt-get update sudo apt-get install nodejsثم:gem install rails -v 4.2.4نستعمل الأمر للتأكد من تثبيت Rails:rails -vسنتعمل # Rails 4.2.4وهكذا يكون Rails قد ثبتت بنجاح. Setup Ruby On Rails on Ubuntu 15.04
  22. يمكنك تصميمها على Illustrator بشكل أسرع وأيسر، إليك الخطوات التي عليك اتباعها لبلوغ ذلك: أنشئ دائرة من خلال أداة الشكل الدائري: قم بإزالة نصف الدائرة الأيمن، وذلك بإزالة نقط الارتكاز بالجانب الأيمن، من أجل الحصول على قوس: ننسخ القوس مع ضرورة الإزاحة بزاوية دوران °72 كما هو مبيّن: لنحصل على النتيجة المطلوبة:
  23. إليك الخطوات: أنشئ شكل مربع. ثم أنشئ بجانبه نصف دائرة: قم بإزاحة نصف الدائري حتى تتوافق وَ الشكل التالي: انسخ نصف الدائرة وضعها في المكان المناسب، كما في الشكل: قم بإدارة الشكل كاملاً:
  24. اضغط على الاختصار Ctrl+L أو بالذهاب إلى القائمة: Windows => Dockable Dialogs => Layersوستفتح لك نافذة خاصة بالشفافية، حيث يمكنك من خلالها التعديل على قيمة الشفافية الخاصة بالصورة. صورة قبل خفض قيمة الشفافية: بعد التعديل على قيمة الشفافية -خفض القيمة-: How to Make a Semi-Transparent Image Using GIMP
  25. Console, Terminal و Tty مرتبطة ارتباطا وثيقا فيما بينها، حيث تعتبر كلها من الطرق والوسائل التي تُمكّن من التفاعل مع الكمبيوتر في بدايات لينكس، واسم Terminal جاء على غرار وجهة نظر إلكترونية. لأنه في غالب الأمر ما يتم التفاعل عبر لوحة المفاتيح وشاشة العرض سوداء اللون، مما يغني المستخدم عن استخدام الواجهة الرسومية وفأرة الحاسوب أيضا. بالنسبة لـ Console تتعلق أساسا بالنظام، حيث ارتبط الاسم بإعداد بيئة الاستخدام من بدايات ظهور الحاسوب. Shell هو برنامج خاص يتفاعل مع المستخدم، وهو أيضا وسيلة لإطلاق وتفعيل برامج أخرى،( كـ باتش، CSH...)
×
×
  • أضف...