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

E.Nourddine

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

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

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

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

    18

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

  1. الإطار باللون الأسود مع النقط الصفراء، ما هو إلا إطار مُحدّد للشكل، ويظهر في صورتك المُرفقة في سؤالك بشكل يضمّ على جميع نقط الشكل المُنشأ، وهذا طبيعي في كل برامج التصميم ،حيث تتيح للمصمم تحديد مختلف الأشكال الموجودة بالمشروع وكذا إمكانية التحكم بها. مثال: يمكن إخفاء إطارLayer boundary الممثل في الصورة: من خلال القائمة الممثلة في الصورة: لتكون النتيجة: م
  2. عند رسم أي شكل على برنامج Photoshop يمكن تعديل القيم الافتراضية للشكل عن طريق القائمة العلوية أسفل قائمة العناوين Menu، والتي تحتوي كل ما يخص بالشكل Shape،تمثلها الصورة التالية: كما يمكن التحكم في عرض الخط عن طريق weight : مما ينتج عنه:
  3. من خلال الرابط يمكن استخلاص أنه لتحديد مجموعة طبقات layers على برنامج Gimp، يكفي الضغط على Shift مع تحديد الطبقات : مصدر مصدر 1
  4. للسماح لك باستعمال AddNew على BindingListالخاصة بـ BankAccount عليك التوفر على خاصية New الخاصة بـ Constrctor، كما هو موضح في الكود التالي: Public Class BankAccount Public Property BSB As String Public Property Account As String Public Sub New() 'Do initialization here if you need 'Or Remove the constructor if you don't need any initialization. End Sub End Classكما أنك لن تحتاج لاستعمال accountList.AllowNew = True، يكفي أن تستعمل(BindingList(Of T ) كـ DataSource: Private accountList As BindingList(Of BankAccount) Private Sub frmAccountLoad_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load accountList = New BindingList(Of BankAccount) dgvAccounts.DataSource = BS End Subإذن يمكنك استعمال()accountList.AddNew في أي مكان تريد من الكود:
  5. جملة الاستعلام المستعملة في كودك السابق، وجب أن تكون على الشكل التالي: Dim con As dbConn = New dbConn() Dim SqlSelect As String SqlSelect = "SELECT * FROM login Where user_id= @parmUserID" Dim cmd As New OleDbCommand(SqlSelect, con.oleconnection) cmd.Parameters.AddWithValue( "parmUserID", WorkerID_.Text )بالنسبة للمتغير النصي InsertSQL والذي يحتوي على جملة استعلام تأخذ قيمها من خلال القيم الموجودة بالحقول النصية، أنصحك باستخدام هذه الطريقة في ربط Values بجملة الاستعلام مع الحقول النصية، هذه أوضح وأكثر تنظيما من طريقتك المُستعملة والتي تعتمد على Concatenation، بهذا الشكل: Dim InsertSQL As String InsertSQL = "INSERT INTO login (user_id, user_role, user_password, user_status) " InsertSQL &= " VALUES ( @parmUser, @parmRole, @parmPwd, @parmStatus )" Dim cmdInsert As New OleDbCommand(InsertSQL, con.oleconnection) cmdInsert.Parameters.AddWithValue( "parmUser", WorkerID_.Text ) cmdInsert.Parameters.AddWithValue( "parmRole", "Worker" ) cmdInsert.Parameters.AddWithValue( "parmPwd", "12345" ) cmdInsert.Parameters.AddWithValue( "parmStatus", 1 ) Dim SqlUpdate As String SqlUpdate = "INSERT INTO Worker (ID, WorkerID, WorkerName, DoB, Address, Phone, Email, CompanyName, PassportNum, PassportExp, VisaExp, VisaStatus, user_id) " SqlUpdate &= " VALUES ( @parmID, @parmName, @parmDoB, etc... ) " Dim cmdUpdate As New OleDbCommand(SqlUpdate, con.oleconnection) cmdUpdate.Parameters.AddWithValue( "parmID", WorkerID_.Text ) cmdUpdate.Parameters.AddWithValue( "parmName", WorkerName.Text ) cmdUpdate.Parameters.AddWithValue( "parmDoB", DoB.Text ) -- etc with the rest of the parameters.
  6. هناك ثلاث طرق لاستخدام Web Service على بيئة التطوير Vb.net: استعمال String: وهي أن تحليل المدخلات كقيمة نصية، ثم تتفحصها، مثال: [WebMethod] public bool ImportXML(string xmldoc) { /*XML تحليل القيم النصية وتحويلها إلى كائنات */ }ربطها بـClass: MSDN <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <SubmitClass xmlns="http://msdn.microsoft.com/AYS/XEService"> <input> <child1>foo</child1> <child2>bar</child2> </input> </SubmitClass> </soap:Body> </soap:Envelope>مثال: public class MyClass { public string child1; public string child2; } [WebMethod] public void SubmitClass(MyClass input) { // Do something with complex input parameters return; }استعمال XmlElement: [WebMethod] public void SubmitXml(XmlElement input) { return; } للاستفادة حول الموضوع أكثر Msdn.
  7. من الواضح أن اسم Id كحقل غير معترف به من قبل dt، لذا وجب عليك استعمال أسماء حقول صحيحة متواجدة بقاعدة البيانات، حتى لا تقع في هذا الخطأ، مثل: dr("Product ID")= dr("Product Name")= dr("Price")= dr("Quantity")=أو يمكننا استعمال القيم الترتيبية للحقول: dr(0)= dr(1)= dr(2)= dr(3)=ومن وجهة نظر، أن تستعمل هذه الطريقة لربط قيم DataGridView [قيم لحقول نصية من نوع TextBox، بهذا الشكل: If Trim(txt_qty.Text) = "" Then MsgBox("Please insert quantity") Else Dim rnum As Integer = datagridviewname.Rows.Add() datagridviewname.Rows.Item(rnum).Cells("name_of_productid_column").Value = txt_id.Text datagridviewname.Rows.Item(rnum).Cells("name_of_productname_column").Value = txt_name.Text datagridviewname.Rows.Item(rnum).Cells("name_of_price_column").Value = txt_price.Text datagridviewname.Rows.Item(rnum).Cells("name_of_qty_column").Value = txt_price.Text End If
  8. هذه بعض الروابط المفيدة في مجال تعلم Node.js دروس: دروس على أكاديمية حسوبNodeSchool.io interactive lessonsThe Art of Node (an introduction to Node)Hello World ExampleHello WorldHello World Web Server Node.js guideBuild a blog with Node.js, express and MongoDBNode.Js Tutorials At Project 70Node.js for BeginnersLearn Node.js Completely and with ConfidenceAbsolute Beginners Guide To Node.jsNode JS Processing Model – Single Threaded Model with Event Loop Architectureفيديوهات: http://nodetuts.com/Introduction to Node.js with Ryan DahlNode.js: Asynchronous Purity Leads to Faster DevelopmentParallel Programming with Node.jsServer-side JavaScript with Node, Connect & ExpressNode.js First LookNode.js with MongoDByan Dahl's Google Tech TalkReal Time Web with Node.jsNode.js Tutorials for BeginnersPluralsight coursesكتب: The Node Beginner BookMastering Node.jsUp and Running with Node.jsNode.js in ActionSmashing Node.js: JavaScript EverywhereNode.js & Co. Sam's Teach Yourself Node.js in 24 HoursMost detailed list of free JavaScript Books
  9. على برنامج photoshop، وكما هو الأمر على مختلف برامج Adobe المخصصة للتصميم، يتيح رسم أشكال shapes بمميزات مختلفة، ومن بين الإعدادات التي يرتكز على كل مصمم ما يدعى بـ Stroke الإطار وَ Fill الملء، حيث بالإمكان التحكم في كلا الخاصيتين. في حالتنا هذه سنستعمل خاصية الملء Fill وهي المسؤولة عن ضبط محتوى الشكل، كما تبين الصورة التالية: بعد تحديد الشكل، ومن خلال القائمة العلوية الخاصة بإعدادات الشكل، توجد خاصية Fill، سنختار قيمة بدون محتوى حتى نحصل على شكل بدون محتوى.
  10. الطريقة التي سننهجا للوصول إلى نتيجة المعادلة الكيميائية هي: (income + income => outcome) H2 + O2 => H2Oأي أن جملة الاستعلام ستكون على الشكل: SELECT CONCAT(GROUP_CONCAT(CASE WHEN type='income' THEN CONCAT(IF(num=1, '', num),substance) END SEPARATOR ' + '), ' => ', GROUP_CONCAT(CASE WHEN type='outcome' THEN CONCAT(IF(num=1, '', num),substance) END SEPARATOR ' + ')) AS reaction FROM tbl_reaction_item GROUP BY reid;تم استعمال GROUP By للتجميع الحقول حسب حقل معيّن. النتيجة النهائية للمعادلة: ╔══════════════════╗ ║ reaction ║ ╠══════════════════╣ ║ 2H2 + O2 => 2H2O ║ ╚══════════════════╝استخدمنا: GROUP_CONCAT مع علامة + للحصول على الشكل العلمي لكتابة المعادلة.CONCAT للحصول على الرمز <=.╔══════╦═══════════╦═════════╦═════╦══════╗ ║ reid ║ substance ║ type ║ num ║ pos ║ ╠══════╬═══════════╬═════════╬═════╬══════╣ ║ 1 ║ H2 ║ income ║ 2 ║ 1 ║ ║ 1 ║ O2 ║ income ║ 1 ║ 2 ║ ║ 1 ║ H2O ║ outcome ║ 2 ║ 1 ║ ╚══════╩═══════════╩═════════╩═════╩══════╝ مثال تطبيقيالنتيجة النهائية: ╔═════╦════════════╦═════════════╦══════════╦══════════════════╗ ║ id ║ condition ║ phenomenon ║ infor ║ reaction ║ ╠═════╬════════════╬═════════════╬══════════╬══════════════════╣ ║ 1 ║ abcd123 ║ abcd123 ║ abcd123 ║ 2H2 + O2 => 2H2O ║ ║ 2 ║ wer ║ wer ║ wer ║ (null) ║ ╚═════╩════════════╩═════════════╩══════════╩══════════════════╝
  11. أولا عليك ببداية حلقة التكرار بالعدد 1 وليس 3 لأنك تريد البدء بـ Number 1. و استعمالك لـ $num$iدون اللجوء إلى رابطة concatenation وهي النقطة "." سيتسبب في رفع استثناء exception. وتكون الطريقة الصحيحة لفعل ذلك، كما يلي: $num1 = "Number 1"; $num2 = "Number 2"; $num3 = "Number 3"; for ($i = 1; $i <=3; $i++) { $num = 'num' . $i; echo ${$num} . "<br>"; } أو: <?php $num1 = "Number 1"; $num2 = "Number 2"; $num3 = "Number 3"; for ($i = 0; $i < 3; $i++) { echo ${"num".$i} . "<br>"; }يمكن الحصول على نفس النتيجة، باستعمال مصفوفة تخزّن فيها القيم المناسبة للمتغيرات، ثم تتصفحها عن طريق حلقة التكرار for: $nums = array("Number 1", "Number 2","Number 3"); for ($i = 0; $i <3; $i++) { echo $nums[$i] . "<br>"; }
  12. الخطأ الوحيد في كودك هو استعمالك لـ absoulute عوض relative. عملت على تصحيح الكود ليكون بالشكل التالي: .bodyContent { position:relative; padding:20px; margin-bottom:50px; } .footer { position: relative; background-color:#333; width:100%; height:50px; margin-bottom:0px; } خاصية position في ملف التنسيق css تتعلق بتموضع العنصر داخل العنصر المحتوي له، وتمتلك أربع قيم من الممكن أن تأخذها كقيم: staticrelativefixedabsoluteThe position Property
  13. بالرغم من أن العنصر مخفي إل أنه يمكن الحصول على عرضه -height- من خلال مكتبة Jquery، وذلك من خلال الشفرة التالية: var previousCss = $("#myDiv").attr("style"); $("#myDiv") .css({ position: 'absolute', //تتضمنها من قبل #myDivهذه الخاصية يمكن الاستغناء عنها في حال كانت visibility: 'hidden', display: 'block' }); optionHeight = $("#myDiv").height(); $("#myDiv").attr("style", previousCss ? previousCss : "");ويعتبر المتغيّر optionHeight، كمتغير يحتوي على قيمة Height الخاصة بـ myDiv#.
  14. يمكنك الاستعانة بوسم Strong للحصول على كلمة أو جملة تتميز بتأثير Bold.مثال: <strong>حسوب</strong>أكاديميةالطريقة الثانية لفعل ذلك، استعمال خاصية تنسيق font-weight :span { font-weight: bold; }<span>أكاديمية حسوب</span>
  15. <% @post.each do |p| %> <%= p.jpost_title %> <%= p.company.company_name %> <%= p.post_location %> <% end %>عليك استعمال delegate في رابط الجدولين، بهذا الشكل: #app/models/post.rb class Post < ActiveRecord::Base belongs_to :company delegate :company_name, to: :company #-> @post.company_name end مما يسمح لك باستخدام: <% @post.each do |p| %> <%= p.jpost_title %> <%= p.company_name %> <%= p.post_location %> <% end %>وحتى أضعك في الصورة بشكل وجيد، أظر إلى الرسم التالي المبين لبنية الجداول-كمثال- داخل قاعدة البيانات: post.company@ وجب التأكد من استعمال رابط بين الجدولين. يمكن الوصول إلى company عن طريق id ومن ثم اسنخراج جميع معلوماتها: للحصول على نتيجة عند استعمال post.company@ يجب التأكد من استعمال رابط بين الجدولين. يمكن الوصول إلى company عن طريق id ومن ثم استخراج جميع معلوماتها: @post.company_id #-> 1 @post.company.company_name #-> "Test"
  16. لتوضيح المفهوم فـ after_create تعمل بعد حدث إدخال بيانات إلى قاعدة البيانات. و في كود الحقل name لم يتم تخزينه بعد: user = User.create(some_attiributes) user.name #=> "Test name" user.reload user.name #=> nilمما يحتم إعطاءه القيمة في حال أردت إدخال قيمة name في قاعدة البيانات استعمل before_create والتي تعمل عكس الوظيفة السابقة أي قبل عملية التخزين في db. مثال، لنفترض وجود حقلين first_name و last_name: before_create :set_user_full_name def set_user_full_name self.name = "#{first_name} #{last_name}" endكحالة من الممكن الوقوع فيها، وهي عدم توفر المستخدم على قيم لـ fisrt_name و last_name، يمكننا استخدام الكود التالي لتفادي أي نوع من رفع excepton من خلال المتحكم Controller: class Users::RegistrationsController < Devise::RegistrationsController before_filter :set_name_param, only: [:create] private def set_name_param params[:user][:name] = "#{params[:user][:first_name]} #{params[:user][:last_name]}" end end
  17. من أساسيات الحياة أنّ الإنسان لا يمكن أن يمضي يومه بأكمله في العمل، وإن صادف ووجدت شخصا يعمل بشكل متواصل طيلة اليوم فاعلم أنه سيصاب بنوبة من الإرهاق والتعب من المجهود المبذول، وذلك لأنه يعمل بطريقة ستوصله إلى أقرب مستشفى لتلقي العلاج، لذلك ينصح المتخصصون في هذا المجال بضرورة الموازاة بين العمل والراحة، وكطريقة أجدها فعالة بشكل جيد -من خلال تجربة شخصية-، طريقة POMODORO، حيث تعتمد هذه التقنية على مبدأ أساسي بسيط: أعمل 25 دقيقة وخذ مدة راحة تساوي 5 دقائق.ثم أعد العملية بشكل متواصل إلى أن تنتهي ساعات العمل.خلال 5 دقائق، يمكنك الذهاب إلى الحمام، أو إعداد كوب القهوة خاصتك، أو المشي في أرجاء مكتبك لتنشط دورتك الدموية، وتخرج من روتينية العمل. هذا ستجدد نشاطك وتبقى حيوياً لوقت أطول مما يساعدك على الاستمرار في العمل بشكل أفضل. بالنسبة لـ POMODORO يمكنك اقتناء هذا المؤقت الذي سيساعدك على ضبط أوقات العمل والراحة: تقنية pomodoro
  18. في العموم ليس هناك وقت محدد لرفع السعر، بمعنى آخر لن يقدّر أحد سواك الحاجة والوقت المناسب لفعل ذلك، حيث أنّه مغامرة يجب حساب عقباتها جيداً قبل الإقدام عليها، فمثلاً من الممكن أن تفقد عميلاً مهما بسبب هذه الزيادة إذا لم يلمِس في عملك الأحقّية للسعر المعروض مقابل الساعة الواحدة، أضف إلى ذلك إمكانية مصادفة نوع من العملاء مستعد للمجادلة في أي شيء وبالتحديد في السعر. كوقت أعتبره مناسبا لرفع السعر بشكل تقريبي - وهنا لن أتحدث عن مهارتك، سأعتبرك ماهراً ومحترفا في عملك - فهو وقت زيادة الطلب على العرض أي عندما تشعر أن هناك إلحاحا على طلبك للعمل وأنك بصدد العمل على مشروعين أو أكثر، يمكنك هنا رفع سعر ساعتك، مع مراعاة أن تكون درجة رفع السعر معقولة وغير مبالغ فيها، حيث ستضع حداً للمتلاعبين في عرض المشاريع وتعمل مع الجادين. ولا تنسى المحافظة على العملاء المداوِمين على العمل معك، فتجعل رفع السعر هو الغاية القصوى من عملك فتفقد عملاءك المخلصين للعمل معك.
  19. عادة ما تكون هذه المبيانات غرض عرض تقارير ومبيانات للمستخدم، حتى يتمكن وبصورة واضحة من استنباط الفرق بين قيم ومعايير بخصوص ظاهرة معينة أو نتائج وإحصائيات في مجال ما. كهذه المبيانات مثلاً: ملاحظة: وظيفة المبيانات هي تسهيل استنتاج وإيصال المعلومة، بشكل هندسي جميل. تيقى وسيلة عرض مثل هذا النوع من التقارير على العميل، تختلف من مستقل لآخر: استعمال Balzamiq كبرنامج عرض وتصميم شكل التطبيق، حيث يوفر إمكانية عرض chart data أي المبيانات، كمثال: والطريقة الثانية، والتي ستتطلب منك بعض الوقت و احتراف أحد برامج التصميم-وأنا لست مع هذه الطريقة-، حيث ستقوم بتصميم مبيانات بقيم عشوائية غرض عرضها للعميل. يلجأ غالبية المطورين إلى استعمال صور لمبيانات موجودة على النت لإعطاء العميل صورة تقريبية، ¦أو استعمال برنامج Balzamiq كما ذكرت من قبل.
  20. هذه بعض مميزات البرامج الأكثر استعمالاً : Adobe Premiere Pro: مقاطع الفيديو والصوت معا...دمج الفيديو أو الصوت (Mix).تصحيح الألوان.إضافة تأثيرات متنوعة، animation،...سهل الاستعمال.Adobe After Effects: متخصص بالأساس في إضافة التأثيرات الخاصة.إضافة مجسمات 3D.إضافة أي تأثيرات 2D من الممكن تخيلها.تصحيح الألوان.Vegas Pro: دمج الفيديو أو الصوت (Mix).به العديد من مميزات Adobe Premier ولكن ليس كلها.به العديد من مميزات Adobe After effects ولكن ليس كلها.سهل الاستعمال.
  21. هذه بعض المحررات الخاصة بالفيديو، هناك الكثير وهذه أفضلها: VLMC: هو برنامج مهيكل بالأساس على برنامج VLC،ويقدم إمكانيات جيدة، هذا بالإضافة إلى أنه برنامج مفتوح المصدر، ويمكن من تحرير قطع فيديو عديدة. Lightworks : برنامج حديث، يمتلك مميزات تحرير الأشرطة ويتميز بإمكانية حفظ الفيديو بصيغة AVI. Avidemux: محرر فيديوهات بسيط، يُنصح به للتغيرات الطفيفة والسريعة. Kdenlive: محرر بمميزات كبيرة ، وهو مفتوح المصدر أيضا يمكن تنصيبه على بيئة Linux وماك أو اس.
  22. في النسخة الحديثة من FFmpeg، استعمل crop filter. عن طريق ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4 حيث : out_w: هي عرض المستطيل الناتج.out_h: طول المستطيل الناتج.xو y :إحداثيات النقطة الأعلى جهة اليسار للمستطيل الناتج، أي نقطة بداية عملية القص.الصورة الأصلية(320x240): مثال1: لقص 60*80 ابتداءً من النقطة(200،100): ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4 مثال2: لقص الجزء السفلي جهة اليمين: ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4 أو: ffmpeg -i in.mp4 -filter:v "crop=320/2:240/2:320/2:240/2" -c:a copy out.mp4 أو: ffmpeg -i in.mp4 -filter:v "crop=240:120:240:120" -c:a copy out.mp4 مثال3: قص وإزالة 20px من أعلى الشريط و20أخرى من أعلاه: ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4
  23. إذا كنت تريد جعل النص المحدد بمحاذاة اليمين، يمكنك استعمال الخاصية "HorizontalContentAlignment="Right وذلك داخل وسم Combobox، بهذه الطريقة: <ComboBox ... HorizontalContentAlignment="Right">وفي حال كنت تريد جعل محاذاة عناصر القائمة المنسدلة إلى اليمين يمكنك استعمال خاصية HorizontalContentAlignment الخاصة بعناصر القائمة ComboBoxItems: <ComboBox> <ComboBox.ItemContainerStyle> <Style TargetType="{x:Type ComboBoxItem}"> <Setter Property="HorizontalContentAlignment" Value="Right"/> </Style> </ComboBox.ItemContainerStyle> </ComboBox>ولضبط محاذاة العنصر المحدد داخل القائمة فقط إلى اليمين، نستعمل: <ComboBox ... HorizontalContentAlignment="Right"> <ComboBox.ItemContainerStyle> <Style TargetType="{x:Type ComboBoxItem}"> <Setter Property="HorizontalContentAlignment" Value="Stretch"/> </Style> </ComboBox.ItemContainerStyle> </ComboBox>
  24. الطريقة السهلة لفعل ذلك هي بتصميم إطار Stroke لدائرة على شكل خطوط Dashed Line، وذلك من خلال نافذة Stroke Panel: الطريقة الثانية والتي أراها مركبة نوعا ما بالمقارنة مع الطريقة الأولى، وهي رسم خط ثم تكراره بشكل دائري، مما يتح لنا الحصول على نفس النتيجة: رسم القطعة الأساسية: من خلال القائمة Effect > Distort & Transform > Transform, ثم نحدد Preview. نكرر الشكل الأول بصورة دائرية، مما يتيح لنا الحصول على الشكل: Preview يمكن التحكم في المسافة الفاصلة بين شكلين متتابعين:
  25. هناك طريقتين اثنتين لفعل ذلك: الأولى:باستخدام الأمر التالي: Cmd+A, Cmd+C, Cmd+N. عند إنشاءك لمشروع جديد ستظهر نافذة تحتوي على مقاسات widthو height المشروع، وهي أيضا مقاسات الطبقات المكونة للمشروع. ملاحظة Cmd هي Ctrl على أنظمة ويندوز. الثانية:يمكنك تحديد-عمل Selection- لطبقة ما أو جزء من المشروع عن طريق ضغط زر ctrl -أو Cmd- مع تحديد الجزء بالفأرة. لتظهر المعلومات في نافذة أخرى -info panel-، يمكن إظهار هذه النافذة من خلال الاختصار F8:
×
×
  • أضف...