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

E.Nourddine

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

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

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

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

    18

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

  1. الأمر ليس متعلقاً بكبر العدسة، فدقّة الصورة ودرجة وضوحها لا يتعلقان فقط بهذا، فقد نجد عدستين لهما نفس البعد البؤري ونفس كبر الفتحة، إلا أن الصور مختلفة، ويعود كبر قطر العدسة إلى استخدام عناصر خاصة بالعدسة الكبيرة والتي تتيح مزايا مخصصة لذلك كـ دخول أكبر قدر ممكن من الضوء، وحواف الصورة.. في العموم تتسم العدسات كبيرة القطر بالتقاطها للصور ذات المسافات البعيدة، ولعلّك تدري سبب اختلاف العدسات من حيث القطر، نطراً لاختلاف ضرورة الاستعمال. مما يعطينا تصورا ونتيجة مقنعة، وهي أن كِبَرَ العدسة لا يتعلق بدقة وجودة الصور المُلتقطة. وفي الحالة التي وصفتها بأنه رغم اختلاف قطر العدستين لم تلاحظ الفرق، لاحظ من خلال ما سبق أني قلت أن كل قطر مخصص لوضعية معينة، أي أن الفرق ستلاحظه عند استعمالك للعدستين بمسافة بعيد، حاول التقاط صورة منظر طبيعي بعيد شيئاً ماـ عندها ستلاحظ الفرق في دقة الصورتين. comparing-6-cameras
  2. Algorithm أو الخوارزميات وهو اسم نسبة إلى محمد بن موسى الخوارزمي عالم الرياضيات العربي، ويقصد بالخوارزميات في مجال علوم الحاسب مجموعة من الخطوات والإجراءات تنفذ بشكل متسلسل لحل مشكل ما، انطلاقا من معطيات يمكن الاعتماد عليها لإيجاد الحل في آخر البرنامج. ويعتبر Algorithm من أساسيات البرمجة ، سواء على الحاسوب أو الهواتف الذكية، وحتى برمجة الآلات الكبيرة، و يعتبر هذا العلم من أهم المفاهيم التي يتلقاها المبرمج أثناء دروسه الأولى. ليتم بعد ذلك الانتقال إلى لغة برمجة من لغات البرمجة، كـ php، #،.Java... حيث تختلف كل لغة عن الأخرى فقط في طريقة كتابة الشيفرة، لكن يبقى منطق التحليل وتتابع الإجراءات البرمجية واحد. فهم خوازميات البرمجة أمر مهم لكل مبرمج. يكتب كود الخوارزمية بلغة مفهومة لبني البشر، وفي أغلب الأحيان باللغة الانجليزية، مثل هذه الصورة: حيث يتوفر الكود على علامة البداية والنهاية تحدان من شيفرة الخوارزمية. https://www.youtube.com/watch?v=DF2XAc07eI0
  3. سأضع التصور التالي لصفحة html الخاصة بك، متضمنةً الجدول، كما يلي: <table id="myTable"> <tbody> <tr>...</tr> <tr>...</tr> </tbody> </table>عند استعمالك للكود السابق المُدرج في سؤالك: $('#myTable').append('<tr><td>my data</td><td>more data</td></tr>');سيتم إضافة السطر- الصف- الجديد بعد الجدول أي بعد غلق الوسم <body> بهذا الشكل: <table id="myTable"> <tbody> <tr>...</tr> <tr>...</tr> </tbody> <tr>...</tr>الصف الجديد،بعد محتوى الجدول </table>وقد يتجه بك التفكير إلى استعمال خاصية last وتستعملها بالشكل: $('#myTable tr:last').after('<tr>...</tr><tr>...</tr>');مما يجعلك تقع في نفس الخطأ، لأنك حددت آخر صف، وعليه سأرشدك للحل الأمثل وهو استعمال الوسم body مع تحديد آخر عنصر بداخل ثم تضيف بعده الصف الجديد، بهذه الطريقة: $('#myTable > tbody:last-child').append('<tr>...</tr><tr>...</tr>');
  4. تمكننا دالة splice من تغيير محتوى مصفوفة على javascript وذلك إما بإضافة، حذف أو تغيير عناصر في أماكن محددة، وهذه هي طريقة كتابتها من الموقع الرسمي: array.splice(start, deleteCount[, item1[, item2[, ...]]]) في حالتنا هذه، سنستعملها هكذا: باعتبار لدينا المصفوفة التالية:var arr = []; arr[0] = "Jani"; arr[1] = "Hege"; arr[2] = "Stale"; arr[3] = "Kai Jim"; arr[4] = "Borge"; سنُظهر محتواها:console.log(arr.join()); //Jani,Hege,Stale,Kai Jim,Borgeنُضيف لها القيمة:ملاحظة أن القيمة 'Lene' مُدرجة في الرتبة 3 أي في index 2. arr.splice(2, 0, "Lene");نُظهر محتوى المصفوفة من جديد:console.log(arr.join()); //Jani,Hege,Lene,Stale,Kai Jim,Borge
  5. إليك الكود التالي: function isScrolledIntoView(elem) { var $elem = $(elem); var $window = $(window); var docViewTop = $window.scrollTop(); var docViewBottom = docViewTop + $window.height(); var elemTop = $elem.offset().top; var elemBottom = elemTop + $elem.height(); return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop)); }الوظيفة السابقة، تقبل elem عنصر كمُدخل لها، أي العنصر الذي نريد التأكد من ظهوره على الشاشة في صفحة html، وبعملية المقارنة بين مكان تواجد هذا العنصر والجزئية المرئية من صفحة html، يمكن التعرف على حالة العنصر بالمقارنة مع الشاشة، يعني هل هو مرئي أم لا. وفي الأخير تُرجع الوظيفة حالة العنصر true في حالة كان ظاهراً وfalse في حالة كان العكس.
  6. في ملف التنسيق css أو ملف Jquery لكي تتمكن من تحديد عنصر معرّف عن طريق اسمه name يكفي استعمال: $('td[name=tcol1]')حيث أن td هو وسم الخانة، وتم تعيينها بتحديد الاسم الخاص بها، في هذه الحالة 'tcol1'. لتحديد صف معين عن طريق الاسم : مثال لصف به اسم: <tr name="tr1"> <td>data1</td> <td name="tcol1" class="bold"> data2</td> </tr>كود التنسيق لتحديد الصف: $('tr[name=tr1]')وهذه هي طريقة المتالية المتفق عليها: $("[attribute~='value']")مثال تطبيقي: <!DOCTYPE html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script> $(document).ready(function(){ $("input[name~='nation']").css("background-color", "yellow");}); </script> </head> <body> <input name="nationality" type="text" value="Chinese"> <input name="nation" type="text" value="English"> <input name="country" type="text" value="Germany"> <input name="anothernation" type="text" value="Norwegian"> <p>'nation' في هذا المثال سيتم تحديد العنصرصاحب الاسم.</p> </body> </html>
  7. أهمية المشروع بالنسبة للمستخدم لست أنت من يحددها، وإن كان بمميزات كبيرة وخصائص جيدة- من وِجهة نظركَ أنت - فقد لا تكون ذات أهمية للمستخدم، وعلى العكس من ذلك قد يراها هو شيء عادي ومتواجد على مواقع أخرى. لذا، فأول خطوة يقوم بها صاحب المشروع هي إصدار تجريبي للموقع، مع أخذ أراء المستخدمين، وأخذها بالاعتبار، بل والتغيير من الموقع بناء عليها - طبعا في حال كانت منطقية-، هذا مع التركيز دائما على تطوير الموقع- وجعله في مرتبة متقدمة وينافس كبار المواقع المشابهة. كما يبدو من خلال وضعك للسؤال، أنك لم تقم بحملة تسويقية للموقع، مما يجعله غير مرئي ولا معروف بالنسبة للكثير من المستخدمين المحتملين، فكما تعلم أنت في سوق كبير، وفقط من يملك القدرة على الإقناع من يبقى فيه، سواء عن طريق المواقع الاجتماعية،مواقع الإعلانات، قائمة البريد الإلكتروني...أعلن عن موقعك، أوصله للمستخدم بشتى الطرق، وهذا لن يتأتى مجاناً، عليك بخصيص نصيب من الاهتمام، المال والجهد لذلك. كيف-تدرس-السوق-من-خلال-استطلاعات-الرأيكيف-أختار-الحملة-الإعلانية-الأنسب-لمُنتجي-أو-لشركتي-النّاشئة؟
  8. الملل والتقاعس من أكثر العادات السيئة التي من الممكن أن تصيب الإنسان، وخاصة في مجال العمل الحر حيث لا مدير يراقب عملك بشكل دائم، أيضا الجانب النفسي يلعب دوراً كبيراً في ذلك. في العديد من التدوينات الخاصة بهذه الإشكالية، ستجد الكثير من الناس يركزون على تدوين قائمة مهام والالتزام بها، وشخصيا أراها من الطرق الناجعة شريطة أن نلتزم بها، ويُعدّ عامل الالتزام هو أساس المشكلة، فالشعور بالملل يؤدي إلى التقاعس وعدم الالتزام بالمهام المسطّرة في القائمة سلفا، بالإضافة إلى الانهماك في العمل لساعات طويلة تشعر بعدها بالتعب، وهذا يؤدي لا شعوريا إلى ربط العمل بالتعب. من الأشياء التي أفعلها شخصيا لفعل ما يتوجب عليّ فعله من عمل منوط بي: إلغاء المُلهيات، من مواقع اجتماعية ورسائل.., لأنها بصراحة قد تأخذ يومكَ كله وأنت لا تدري، من صفحة لأخرى، ومن منشور لآخر... حتى إذا ما انقضى اليوم تجد نفسك دون فائدة تٌرجى، بخلاصة ركز على عملك. خصص فترات راحة ترتاح فيها بعد تأديتك لمدة من العمل، كساعة مثلا ارتح 5 أو 10 دقائق، لكي تعود بنفس جديدة للعمل. جدول قائمة للمهام المُبرمجة لهذا اليوم، على أن تحاول جاهداً الالتزام بها. كافئ نفسك بقطعة شكولاطة بعد انتهاء اليوم وبعد تأديتك لجميع المهام المبرمجة. في وقت الراحة، اقرأ في سير- جمع سيرة- الناجحين وخذ منهم بعض الأفكار المُلهمة. دعك من البحث الكثير عن أساليب وخلطات سحرية للعمل، فقط ركز جيداً فيما تفعله.
  9. هناك العديد من التقنيات التي تتيح للمصور التقاط صور ليلية بدقة عالية، منها: تقنية التصوير الحراري 'Termal Imaging':وتعتمد بالأساس على التقاط الأشعة تحت الحمراء Infrared بعيدة المدى (9.000-14.00 ملم)،أي بصيغة أخرى تعتمد على حرارة الأشياء. ومعظم الحيوانات أكثر حرارة من الوسط المحيط بها، مما يجعلها تظهر بشكل أكثر وضوح ودقيق. من بين سلبيات الكاميرات الحرارية أنها مكلفة للغاية وتتميز بدقة ضعيفة بالمقارنة مع باقي الكاميرات، وتعتمد بشكل أساس على الحرارة كمعيار للالتقاط الصور أي أنها لا يمكن أن تُظهر المحيط بدقة جيدة كتلك المتعلقة بالحيوانات، لعدم توفر نفس الحرارة. تقنية الأشعة تحت الحمراء القريبة مع وجود الإضاءة:نفس المبدأ السابق لكن مع تواجد بعض الإضاءة، تصل إلى مدى (700-1000ملم) ،وتستعمل الضوء المثبت على الكاميرا كمصدر للإضاءة أو الفلاش في حالة تسجيل فيديو، ويتميز هذا لنوع من الضوء بعدم رؤيته من قبل العديد من الحيوانات، مما يساعد على عدم نفورها والتقاط الصور أوضح، كما أنه ذو إضاءة خافتة. تقنية تكثيف الصورة 'Image Intensification':وهي بالاعتماد على تكثيف الضوء المُستَقبل من طرف الكاميرا، مما يتيح رؤية أفضل، بالإضافة إلى تقنية الأشعة تحت الحمراء التي تعتبر الركيزة الأساسية للالتقاط والتصوير ليلا. بالنسبة للمهتمين بالتصوير، التقاط الصور الليلية -كما أسلفت الذكر- يستوجب التوفر على كاميرا بمميزات عالية، ويلجأ البعض إلى توفير عامل الإضاءة للتمكن من التصوير ليلا وتفادي التكاليف المرتفعة للكاميرات الخاصة، أما الهاتف الذكي أظنه محدود المميزات في هذا الجانب.
  10. بعد إدراجك لشكل المربع -مثلا- سيظهر لك المَعلم ثلاثي المحاور الممثلة بالألوان الأزرق، الأحمر والأخضر، حيث يمثل كل محور بُعد من الأبعاد الثلاث للمجسمات، والتي تتحكم في مكان الكائن: استعمل زر Tab للولوج إلى نمط التغيير على الكائن. نمط تغيير والتعديل على المجسم، حيث يصبح المعلم - المُتجهات الثلاث في الركن الأسفل من الكائن- ويتغير Object Mode إلى Edit Mode: كل كائن يتكون من مجموعة خطوط Edge ومجموعة نقط vertex وأوجه face: رابط يمكن تحديد كل عنصر عن طريق الضغط على المجسم بالزر الأيمن للفأرة لتظهر النافذة التالية: Vertex: Edge: Face: الإزاحة: تمكّنك الأسهم الثلاث المكوّنة للمعلم من إزاحة أي عنصر من العناصر المذكورة سابقة (Edge,Vertex,Face) وذلك بعد تحديد العنصر وإزاحته من خلال تحديد وضعية الإزاحة من السهم المبين داخل الدائرة باللون الأحمر في الصورة: الدوران: يمكن أيضا القيام بعملية دوران أي جزء من خلال تعيين وضعية الدوران في الدائرة الحمراء: التكبير: تعيين وضعية التكبير من خلال الأيقونة المبينة في الدائرة الحمراء من الصورة: يمكنك الاستفادة من هذه القناة على يوتيوب. وهذا نموذج لسكة القطار التي يمكنك تصميمه وبناءه عن طريق برنامج Blender.
  11. يمكنك استعمال : (nth-last-child(2: . حيث ستتمكن من تحديد العنصر انطلاقًا بالعد ابتداء من العنصر الأخير، ليصبح كود تحديد العنصر ما قبل الأخير على الشكل التالي: $('ul').find('li:nth-last-child(2)').css('color', '#f00')<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul> <li>Glen</li> <li>Tane</li> <li>Ralph</li> <li>David</li> </ul> <button>Draw it</button>مثال على استعمال nth-last-child: <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>nth-last-child demo</title> <style> button { display: block; font-size: 12px; width: 100px; } div { float: left; margin: 10px; font-size: 10px; border: 1px solid black; } span { color: blue; font-size:18px; } #inner { color: red; } td { width: 50px; text-align: center; } </style> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> </head> <body> <div> <button>:nth-last-child(even)</button> <button>:nth-last-child(odd)</button> <button>:nth-last-child(3n)</button> <button>:nth-last-child(2)</button> </div> <div> <button>:nth-last-child(3n+1)</button> <button>:nth-last-child(3n+2)</button> </div> <div> <table> <tr><td>John</td></tr> <tr><td>Karl</td></tr> <tr><td>Brandon</td></tr> <tr><td>Benjamin</td></tr> </table> </div> <div> <table> <tr><td>Sam</td></tr> </table> </div> <div> <table> <tr><td>Glen</td></tr> <tr><td>Tane</td></tr> <tr><td>Ralph</td></tr> <tr><td>David</td></tr> <tr><td>Mike</td></tr> <tr><td>Dan</td></tr> </table> </div> <span>tr<span id="inner"></span></span> <script> $( "button" ).click(function() { var str = $( this ).text(); $( "tr" ).css( "background", "white" ); $( "tr" + str ).css( "background", "#ff0000" ); $( "#inner" ).text(str); }); </script> </body> </html>nth-last-child() Selector
  12. حتى تتمكن من إظهار جدولين بشكل مترابط، أولا يجب أن يتوفر حقل رابط بينها، وفي هذه الحالة هنا حقل type الموجود بكل من جدول events وجدول types. والرابط سيتم استخدامه عن طريق INNER JOIN مع تحديد الحقلين المترابطين، حيث يكونا من نفس النوع (Int,String,date...) ليتم ربط القيم المتساوية فيما بينها وبالتالي نحصل على جدول به الجدولين السابقين بشكل مترابط، هكذا: SELECT events.id, events.title, events.type, types.id, types.type, types.label FROM events INNER JOIN types ON events.type = types.typeوهذا مثال آخر مع Inner Join: SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name;الصورة التالية تبيّن مبدأ Inner Join: لرؤية مثال على النتائج المحصل عليها من خلال مثال توضيحي: select_join_inner
  13. هذه الجزئية يجب إدراجها ضمن لوحة التحكم الخاصة بالأدمن. حدد صنف المنتوجات من خلال قائمة منسدلة، حيث يتم بعد ذلك تحديد جميع المنتوجات المُدرجة تحت هذا الصنف، مع وجود حقل لإدراج القيمة التي تريد إضافتها لحقل ثمن المنتج، ليكون الكود على الشكل التالي: <?php // updateprice.php ملف require_once('app/Mage.php'); ob_implicit_flush(true); umask(0); set_time_limit(0); ini_set('display_errors', 1); ini_set('memory_limit', '2048M'); Mage::setIsDeveloperMode(true); Mage::app(); Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); function productCallback($args) { $product = Mage::getModel('catalog/product'); // جلب المنتوجات ووضعها في مصفوفة $product->setData($args['row']); $product_data = array(); // جلب حقل الثمن من المنتج الحالي $price = $product->getPrice(); // إضافة القيمة المُعيّنة إلى القيمة السابقة لثمن المنتج +70 $product->setPrice($price + .70); // إظهار رسالة تفيد بأنه تم التحديث بشكل ناجح echo "Updating Price for: ".$product->getName()."<br />\n\r"; // حفظ التغيرات على المنتج $product->save(); $product->clearInstance(); unset($price); } try { // جلب مصفوفة المنتوجات $collection = Mage::getResourceModel('catalog/product_collection') ->addAttributeToSelect('*') ->addAttributeToFilter('type_id','Booking/reservation'); // تعيين الصتف المختار من القائمة المنسدلة // إظهار جملة الاستعلام المستخدمة، من أجل التوضيح echo $collection->getSelect(); // لعدم استهلاك الكثير من موارد نظام ماجينتو magento iterator callback استعمال Mage::getSingleton('core/resource_iterator')->walk($collection->getSelect(), array('productCallback'), array('arg1' => '====')); } catch (Exception $e) { zend_debug::dump($e); } تجدر الإشارة إلى أنه يمكن تطوير هذا النظام أكثر من خلال إضافة العديد من الخصائص، كتحديث حقول أخرى من المنتج عن طريق اختيار الحقل، وأيضا إظهار حقول checkboxs جانب كل من منتج من أجل إلغاء منتوجات معينة. Updating product prices in Magento in an easier & faster way Product Update
  14. المشكل الأساسي في الكود المُدرج في كودك هو في المنعطف bend، حيث أنك لم تُعطه زاوية مما يجعل الرابط يصطدم بحلقات أخرى، لذا الحل الوحيد لتفادي ذلك هو إعطاء قيمة لزاوية الانعطاف blend، بهذا الشكل: edge [bend left=60] node {$a$} (0)ليكون الكود الكامل لـ Automat الخاص بك على الشكل التالي، مع مراعاة زوايا الانعطاف : \documentclass[a4paper,twoside,11pt]{article} \usepackage{tikz} \usetikzlibrary{automata,positioning} \begin{document} \begin{tikzpicture}[shorten >=1pt,node distance=2.5cm,on grid,auto] \node[state,initial] (0) {$q_0$}; \node[state] (1) [right=of 0] {$q_1$}; \node[state, accepting] (2) [right=of 1] {$q_2$}; \node[state, accepting] (3) [right=of 2] {$q_3$}; \node[state] (4) [right=of 3] {$q_4$}; \path[->] (0) edge [bend left] node {$a$} (2) (0) edge [loop below] node {$b$} (0) (0) edge node {$c$} (1) (1) edge node {$a$} (2) (1) edge [bend left] node {$b$} (4) (1) edge [loop below] node {$c$} (1) (2) edge [bend left=60] node {$a$} (0) (2) edge [loop below] node {$b$} (2) (2) edge node {$c$} (3) (3) edge [bend left=60] node {$a$} (0) (3) edge node {$b$} (4) (3) edge [loop below] node {$c$} (3) (4) edge [loop below] node {$a$, $b$, $c$} (4); \end{tikzpicture} \end{document}لا تنس استدعاء مكتبة tikz للتمكّن من رسم الخطاطة: \usepackage{tikz}المكتبة مُدرجة في أول الكود.
  15. فقط عليك العمل بـ Hashtags و خاصية href على الوسم <a>، بهذا الشكل: <div class="icon-nav"> <a class="link" href="#first"><img src="img1.png" class="blue-icons"></a> <a class="link" href="#second"><img src="img2.png" class="blue-icons"></a> <a class="link" href="#third"><img src="img3.png" class="blue-icons"></a> <a class="link" href="#fourth"><img src="img4.png" class="blue-icons"></a> </div>بينما كود الجافا سكريبت على هذا الشكل، حيث يُظهر Tab عند الضغط عليه ويخفيه عند الضغط على Tab آخر: //تحديد جميع العناصرالمخفية var tabs = $('.textWord_tab').hide(); var buttons = $('.link'); function showTab(key) { // الظاهرtab تحديد var tabToShow = tabs.filter('[data-link=' + key + ']'); // tab التأكد من عدم ظهور if(tabToShow.is(':hidden')) { buttons.removeClass('selected') .filter('[href=#' + key + ']').addClass('selected'); tabs.hide(); tabToShow.stop().fadeIn({ width: '200px' }, 300); return true; } } //الأول tab إظهار if(!window.location.hash || !showTab(window.location.hash)) { showTab(buttons.filter(':first').attr('href').substr(1)); } buttons.click(function () { showTab($(this).attr('href').substr(1)); });يمكنك رؤية تغير hashtag مع قيمة data-link-value عند الضغط على tab .
  16. أولاً أنصحك بعدم استخدام دالة ()query_posts في مثل هذه الحالة، وتعويضها بالدالة WP_Query، والصورة التالية توضح طريقة عملية WP_Query: لتكون جملة الاستعلام في حالتك على الشكل التالي: $the_query = new WP_Query( array( 'post_type' => 'Adverts', 'tax_query' => array( 'taxonomy' => 'advert_tag', 'field' => 'slug', 'terms' => 'politics', ), ) ); while ( $the_query->have_posts() ) : $the_query->the_post(); // إظهار المنشورات endwhile; /* Restore original Post Data * NB: Because we are using new WP_Query we aren't stomping on the * original $wp_query and it does not need to be reset. */ wp_reset_postdata();
  17. للتوضيح، فأزرار -C -Copy-، X-ِCut-، V-Past تأتي مجاورة لبعضها البعض على لوحة المفاتيح، بالإضافة إلى قربها من زر Ctrl -أو Command على Mac-، مما يعني أن المستخدم لو قام بنسخ أي شيء عن طريق Ctrl+C وأراد لصقه، سيكون من الشاق عليه استعمال Ctrl+P في حين ان Ctrl+V أقرب إلى الزر C وزر Ctrl أيضا. صورة لوحة المفاتيح: من الناحية المنطقية تعتبر P أفضل من استعمال V، لكن Human–computer interaction أقرت باستعمال زر V نطراً لسهولة استعمالها بالنسبة للأصابع، وأيضا بهدف ربطها بمثيلاتها -X و C- المجاورة على لوحة المفاتيح.
  18. استعمال نمط 16bit رهين بما تود القيام به في التصميم من حيث الألوان بالتحديد، ولاستعماله إيجابيات و سلبيات. من إيجابياته: في حالة كنت ستستعمل الكثير من الألوان والتعديل على الصور بشكل كبير من خلال تقنية photo manipulation، فهذا النمط يعتبر الأمثل لفعل ذلك، بخلاف 8bit.في حالة العمل على صورة تعتمد في مواردها على أكثر من 8bit من حيث الألوان، آنذاك يعتبر استعمال 16bit ذو إيجابية.السلبيات: عند العمل على 16bit لا تتوفر لك إمكانية العمل على جميع الفلاتر المتوفرة على Photoshop.أثناء العمل بـ 16bit تُستغلّ ضعف الذاكرة مما قد ينتج عنه بطء في الجهاز - حسب خصائص الجهاز وحجم المشروع المستعمل-.في الأخير يجب العلم أن وضوح الصورة عند استعمال نمط 16bit لن يتغير بشكل كبير، خاصة بالنسبة للعميل، لذا إذا لم يكن لك حاجة ملحة في استعمال 16bit فالأفضل استعمال النمط العادي -8bit- وتبقى أوجه الاختلاف هي التي تم ذكرها مسبقاً.
  19. يمكنك النظر وقراءة الكود الموجود في ملف theme.php حيث نجد الدالة get_stylesheet_directory_uri معرّفة هناك، كما يمكنك أيضاً التأكد من تضمنها للدالة str_replace وهي تعتبر من دوال php، والتي كما هو معروف تتطلب مجموعة من البيانات والمعلومات التي تحتاج بدورها إلى تخصيص جزء من مردودية النظام - موارد نظام ووردبريس -عند طلبها كل مرة. ليكون الحل لتفادي هذا المشكل هو استدعاءها مرة واحدة فقط. مما سبق يظهر أن الاستدعاء المتكرر للدالة get_stylesheet_directory_uri يستلزم استدعاء str_replace والذي يستهلك الكثير من موارد النظام، بالمقارنة مع استدعاء ثابث، كما أن استعمال وتعويض الدالة بثابث يضيع الفلتر المطبق من خلال get_stylesheet_directory_uri في حالة تغييرها وكتابة كود خاص بك . Function Reference/get stylesheet directory uriWhen to use get_template_directory_uri
  20. بما أن المستخدم يُدخل البيانات على شكل 3-3، لنجعل عملية التخزين تتم على أساس الأعمدة وليس الصفوف، أي على هذا الشكل : Scanner scan = new Scanner(System.in); int[] col1 = new int[3]; int[] col2 = new int[3]; int[] col3 = new int[3]; for (int i=0; i<3; i++){ //الترتيب بالإعتماد على الأعمدة لا الصفوف col1[i] = scan.nextInt(); col2[i] = scan.nextInt(); col3[i] = scan.nextInt(); } int[][] matrix = new int[3][3]; matrix[0] = col1; matrix[1] = col2; matrix[2] = col3; for (int i=0; i<3; i++){ // columnsترتيب الأعمدة Arrays.sort(matrix[i]); } //طباعة المحتوى بالإعتماد على الصفوف for (int i=0; i<3; i++){ for (int j=0; j<3; j++){ System.out.print(matrix[j][i]+" "); } System.out.println(); }بعد عملية الفرز اعتمادا على الأعمدة، يمكن تغيير المصفوفة إلى التخزين حسب الصفوف. كما يمكن للمستخدم تعيين حجم المصفوفة، أي بطريقة أخرى يكون حجم المصفوفة ديناميكي، ومُتَحكّم به من طرف المستخدم، بهذا الشكل: Scanner scan = new Scanner(System.in); int N = 3; //حجم المصفوف، والذي يتحكم فيه المستخدم int[][] matrix = new int[N][N]; for (int n=0; n<N; n++){ //بداية الأعمدة for (int column=0; column<N; column++){ matrix[column][n] = scan.nextInt(); //Store based on column } } for (int i=0; i<N; i++){ //ترتيب الأعمدة Arrays.sort(matrix[i]); } for (int i=0; i<N; i++){ for (int j=0; j<N; j++){ System.out.print(matrix[j][i]+" "); } System.out.println(); }
  21. الأمر لا علاقة له باختلاف البرنامج في هذه الحالة، نعم تتحكم البرامج - تحرير النصوص والصور- من حيث الدقة، لكن بشكل عام اختلاف وضوح النص بين برنامج وآخر يتدخل فيه عامل مهم وهو عامل الدقة DPI. فعند العمل على ملف word يكون بدقة 300dpi محددة مسبقا في إعدادات البرنامج، مما يتيح للنص ظهورا واضحا ومتناسقا رغم تغيير نوع الخط المُستعمل. بالنسبة لبرنامج Gimp وبرامج التصميم كـ Photoshop، يتعيّن على المصمم التدخّل لتغيير إعدادات المشروع وإعطاءه دقة تساوي لـ 300dpi حتى يحصل على دقة واضحة أكثر. ولكي نتأكد من الأمر، أنشىء مشروع على Gimp بـ 2550px- 3300px مع دقة بقيمة 300dpi، وأضف نصاً لترى دقة الخط بشكل واضح: في حين عند كتابتنا لنص على مشروع بـ 400px و72dpi مع تكبير بـ%500 نحصل على الصورة:
  22. المشكل في الكود المُدرج في سؤالك، هو كيفية دمج المتغيرين، وكتصحيح للخطأ إليك الطريقة الصحيحة: @url: "@{root}@{file}"; ليكون الكود كاملا بالطريقة التالية: @root: "../img/"; @file: "test.css"; @url: "@{root}@{file}"; .px{ background-image: url(@url); } مثال آخر للتوضيح أكثر: // Variables @my-selector: banner; // Usage .@{my-selector} { font-weight: bold; line-height: 40px; margin: 0 auto; }لينتج بعد عملية Compilation الكود التالي: .banner { font-weight: bold; line-height: 40px; margin: 0 auto; }Less Variable Interpolation
  23. إليك الطريقة لتحصل على تصميم أشبه بالحقيقي وأقرب ما يمكن إلى الشكل المُدرج في الصورة من خلال سؤالك. من خلال الاختصار Alt+B بغرض الحصول على عرض للمشروع بهذه الطريقة: وللعلم فقط فالقطعة في الشكل ليس صلبة، فقط علينا إدخال القيم المبينة بشكل جيد، حتى نحصل على تأثير الإضاءة المبينة في الصورة: لنحصل على الشكل المشابه والمماثل إلى درجة كبيرة بالشكل الحقيقي لأداة Sonic screwdriver. يمكنك تحميل المشروع من خلال: doctorwholight_realistic.blend
  24. بما أنك تريد دوران الخلفية على برنامج Blender، من قائمة البرنامج ومن خانة Node Editor اضغط على أيقونة الكرة الأرضية -Globe- المُعلّمة بالإطار الأحمر في الصورة: تأكد من تفعيلك للخاصية Use Nodes . من قائمة :add an Input > Texture Coordinate and a Vector > Mapping node لتظهر لك النافذة التالية: كما تلاحظ هناك قسم بـ Rotation مخصص لدوران الخلفية، وكما يظهر لك فالدوران يقبل ثلاث محاور x,yوz كمحاور للدوران.
  25. من خلال الشرح الذي قدَّمته في سؤالك، سنستعمل تقنية SubQuery - جملة استعلام داخل جملة استعلام-، على الشكل التالي: select yourcolumn from yourtable where id=(select max(id) from yourtable ) حيث تحدد جملة الاستعلام الثاني أعلى قيمة لـ ID:select max(id) from yourtableوجملة الاستعلام الأساسية تحدد الحقل أو الحقول المُراد جلبها مع شرط أن يكون ID مساوي لأعلى قيمة - التي حصلنا عليها من خلال الجملة الثانية-:select yourcolumn from yourtable where id= مثال آخر: SELECT * FROM tutorial.sf_crime_incidents_2014_01 WHERE Date = (SELECT MIN(date) FROM tutorial.sf_crime_incidents_2014_01 )نجلب هنا جميع القيم بشرط أن يكون حقل date مساوِ لأصغر date موجود على الجدول. understanding sql subqueriesAdvanced subqueriessql sub queries
×
×
  • أضف...