السبت، 13 يونيو 2015

الموضوع الشامل عن شهادات أوراكل للجافا OCPJP OCAJP


بسم الله الرحمن الرحيم

بعدما تكلمت في المقالة السابقة عن الأسباب التي تدفعك إلى السعي وراء شهادات أوراكل للجافا آن الوقت عن الحديث عن هذه الشهادات وكيفية الاستعداد لها

شركة أوراكل معروفة لا تخفى على أحد له اتصال بالتقنية وما دار حول فلكها ، وشركة أوراكل لها منتجات كثيرة ، ولكل منتج جعلت له شهادة ، كما هو الشأن في الشركات الكبرى مثل ميكروسفت وسيسكو.
منتجات أوراكل كثيرة واشهرها محرك قواعد البيانات ولغة البرمجة جافا ، يمكنك الاطلاع على الشهادات التي تمنحها أوراكل لمنتجاتها من اتباع هذا الرابط

وما يهمنا من ذلك شهادات الجافا وهي تأتي في قسمين ، الأول شهادات javase والثاني شهادات javaee
1-شهادات JavaSe وهي اثنتان
Oracle Certified Associate, Java SE 7 Programmer
Oracle Certified Professional, Java SE 7 Programmer

ويرمز للثنتين ب: OCAJP & OCPJP

2-شهادات javaee وهي كثيرة حسب الاختصاص كما رايت في الرابط السابق ولكن أشهرها
Oracle Certified Expert, Java EE 6 Enterprise JavaBeans Developer
Oracle Certified Master, Java EE 6 Enterprise Architect

ولا يمكنك المرور إلى شهادة حتى تتحصل على سابقتها على الترتيب الذي رايت في الأربع شهادات

هل يشترط أن اكون متحصلا على شهادة تعليم سابقة لخوض الامتحان ؟
لا

هل يشترط أن يكون لي خلفية في الجافا لكي أحضر للشهادة الأولى OCAJP

لا ، فدروس هذه الشهادة تفترض أنك لا تعرف شيئا في البرمجة

ماهي مواضيع الامتحان في الشهادتين الأوليين ؟
مواضيع شهادة OCA


Java Basics
  • Define the scope of variables
  • Define the structure of a Java class
  • Create executable Java applications with a main method
  • Import other Java packages to make them accessible in your code
Working With Java Data Types
  • Declare and initialize variables
  • Differentiate between object reference variables and primitive variables
  • Read or write to object fields
  • Explain an Object's Lifecycle (creation, "dereference" and garbage collection)
  • Call methods on objects
  • Manipulate data using the StringBuilder class and its methods
  • Creating and manipulating Strings
Using Operators and Decision Constructs  
  • Use Java operators
  • Use parenthesis to override operator precedence
  • Test equality between Strings and other objects using == and equals ()
  • Create if and if/else constructs
  • Use a switch statement
Creating and Using Arrays
  • Declare, instantiate, initialize and use a one-dimensional array
  • Declare, instantiate, initialize and use multi-dimensional array
  • Declare and use an ArrayList
Using Loop Constructs
  • Create and use while loops
  • Create and use for loops including the enhanced for loop
  • Create and use do/while loops
  • Compare loop constructs
  • Use break and continue  
Working with Methods and Encapsulation
  • Create methods with arguments and return values
  • Apply the static keyword  to methods and fields  
  • Create an overloaded method
  • Differentiate between default and user defined constructors
  • Create and overload constructors
  • Apply access modifiers
  • Apply encapsulation principles to a class
  • Determine the effect upon object references and primitive values when they are passed  into methods that change the values
Working with Inheritance
  • Implement inheritance
  • Develop code that demonstrates the use of polymorphism
  • Differentiate between the type of a reference and the type of an object
  • Determine when casting is necessary
  • Use super and this to access objects and constructors
  • Use abstract classes and interfaces
Handling Exceptions
  • Differentiate among checked exceptions, RuntimeExceptions and Errors
  • Create a try-catch block and determine how exceptions alter normal program flow
  • Describe what Exceptions are used for in Java
  • Invoke a method that throws an exception
  • Recognize common exception classes and categories





مواضيع شهادة OCPJP

Java Class Design 
  • Use access modifiers: private, protected, and public
  • Override methods 
  • Overload constructors and methods 
  • Use the instanceof operator and casting
  • Use virtual method invocation
  • Override the hashCode, equals, and toString methods from the Object class to improve the functionality of your class. 
  • Use package and import statements
Advanced Class Design 
  • Identify when and how to apply abstract classes
  • Construct abstract Java classes and subclasses
  • Use the static and final keywords
  • Create top-level and nested classes
  • Use enumerated types
Object-Oriented Design Principles 
  • Write code that declares, implements and/or extends interfaces
  • Choose between interface inheritance and class inheritance
  • Apply cohesion, low-coupling, IS-A, and HAS-A principles
  • Apply object composition principles (including has-a relationships)
  • Design a class using a Singleton design pattern
  • Write code to implement the Data Access Object (DAO) pattern
  • Design and create objects using a factory pattern
Generics and Collections
  • Create a generic class
  • Use the diamond for type inference  
  • Analyze the interoperability of collections that use raw types and generic types 
  • Use wrapper classes, autoboxing and unboxing
  • Create and use List, Set and Deque implementations
  • Create and use Map implementations
  • Use java.util.Comparator and java.lang.Comparable
  • Sort and search arrays and lists
String Processing 
  • Search, parse and build strings (including Scanner, StringTokenizer, StringBuilder, String and Formatter)
  • Search, parse, and replace strings by using regular expressions, using expression patterns for matching limited to: . (dot), * (star), + (plus), ?, \d, \D, \s, \S,  \w, \W, \b. \B, [], ().
  • Format strings using the formatting parameters: %b, %c, %d, %f, and %s in format strings.
Exceptions and Assertions 
  • Use throw and throws statements 
  • Develop code that handles multiple Exception types in a single catch block
  • Develop code that uses try-with-resources statements (including using classes that implement the AutoCloseable interface)
  • Create custom exceptions
  • Test invariants by using assertions
Java I/O Fundamentals 
  • Read and write data from the console
  • Use streams to read from and write to files by using classes in the java.io package including BufferedReader, BufferedWriter, File, FileReader, FileWriter, DataInputStream, DataOutputStream, ObjectOutputStream, ObjectInputStream, and PrintWriter
Java File I/O (NIO.2) 
  • Operate on file and directory paths with the Path class 
  • Check, delete, copy, or move a file or directory with the Files class  
  • Read and change file and directory attributes, focusing on the BasicFileAttributes, DosFileAttributes, and PosixFileAttributes interfaces
  • Recursively access a directory tree using the DirectoryStream and FileVisitor interfaces
  • Find a file with the PathMatcher interface
  • Watch a directory for changes with the WatchService interface
Building Database Applications with JDBC 
  • Describe the interfaces that make up the core of the JDBC API (including the Driver, Connection, Statement, and ResultSet interfaces and their relationship to provider implementations)
  • Identify the components required to connect to a database using the DriverManager class (including the jdbc URL)
  • Submit queries and read results from the database (including creating statements, returning result sets, iterating through the results, and properly closing result sets, statements, and connections)
  • Use JDBC transactions (including disabling auto-commit mode, committing and rolling back transactions, and setting and rolling back to savepoints)
  • Construct and use RowSet objects using the RowSetProvider class and the RowSetFactory interface
  • Create and use PreparedStatement and CallableStatement objects
Threads 
  • Create and use the Thread class and the Runnable interface
  • Manage and control thread lifecycle
  • Synchronize thread access to shared data
  • Identify code that may not execute correctly in a multi-threaded environment.
Concurrency 
  • Use collections from the java.util.concurrent package with a focus on the advantages over and differences from the traditional java.util collections.
  • Use Lock, ReadWriteLock, and ReentrantLock classes in the java.util.concurrent.locks package to support lock-free thread-safe programming on single variables.
  • Use Executor, ExecutorService, Executors, Callable, and Future to execute tasks using thread pools.
  • Use the parallel Fork/Join Framework
Localization 
  • Read and set the locale by using the Locale object
  • Build a resource bundle for each locale
  • Call a resource bundle from an application
  • Format dates, numbers, and currency values for localization with the NumberFormat and DateFormat classes (including number format patterns)
  • Describe the advantages of localizing an application
  • Define a locale using language and country codes


كيف هي طبيعة الامتحان ؟
الامتحان هو اسئلة مع أجوبة مقترحة ويطلب منك أن تختار منها جوابا صحيحا واحدا أو اثنين أو ثلاثة حسب السؤال وعدد المقترحات
كم عدد الأسئلة ؟


حسب الشهادة ، فمثلا OCPJP فيها 90 سؤالا في مدة ساعتين ونصف ، ولا تقلق بشأن الوقت فهو محسوب بسهولة الأسئلة وصعوبتها ، بمعنى أنه قد يصادفك سؤال سهل لا يأخذ منك سوى عشرين ثانية وتجد آخر يأخذ منك أكثر من دقيقتين ، فتعطي من وقت هذا لهذا


كيف أسجل للامتحان ؟
شركة أوراكل كما هو الشأن مع الشركات الكبرى الأخرى متعاقدة مع شركة Pearson VUE وهذه الشركة متعاقدة مع مراكز الامتحان في العالم
لكي تبحث عن المركز الاقرب إليك اتبع الرابط التالي ثم ادخل اسم دولتك
ثم ابحث عن locate a test center في الصفحة واضغط عليه


عندما تذهب إلى المركز الأقرب إليك تختار نوع الامتحان ثم تدفع رسوم التسجيل والامتحان التي هي 150 دولار زائد حقوق المركز ، قد تكون أحيانا 100 دولار حسب كل مركز وجشعه
هذه الشركة توفر عبر مراكزها المعتمدين برنامجا يعمل أونلاين لكي تتلقى الاسئلة ، هذه الأسئلة تأتي من سيرفرات أوراكل عبر هذه الشركة الوسيطة وبرنامجها


متى تظهر نتيجة الامتحان
بعد ما يقارب نصف ساعة من انتهاء الامتحان ستصلك رسالة بريدية فيها تفاصل النتيجة ، يعتبر من حصل على 63 بالمئة ناجحا في الشهادة الأولى و 65 بالمئة في الشهادة الثانية


كيف احضر للامتحان؟
أولا يجب عليك أن تكون ذا مستوى لا بأس به في اللغة الانجليزية ، لأن الكتب التي سوف تحضر بها هي باللغة الانجليزية
ثانيا إذا كنت تريد التحضير الامتحان الأول OCA فعليك بهذين الكتابين
OCA/OCP Java SE 7 Programmer I & II Study Guide (Exams 1Z0-803 & 1Z0-804)
OCA Java SE 7 Programmer I Certification Guide: Prepare for the 1ZO-803 exam


والامتحان الثاني OCP أنصحك بهذين الكتابين
الأول وقد سبق ذكره لأنه يشمل على الامتحانين
الثاني
Oracle Certified Professional Java SE 7 Programmer Exams 1Z0-804 and 1Z0-805


الكتب الثلاثة موجودة على موقع أمازن لمن اراد ان يسلك الطريق القانوني وأما من لم يكن له مال أو لا يستطيع ان يشترى فهذه الكتب ستجدها للتحميل مجانا في الشبكة وليس علي ان آتيك بالروابط هاهنا


هل سأكون مستعدا إذا قرأت الكتب الخاصة بالامتحان ؟
لا ، بل يبقى عليك ان تجري امتحانات تجربية ، وهي موجودة على الشبكة منها ما ستجده مجانا ومنه ما هو مدفوع
أنا شخصيا أنصحك بهذا الموقع http://enthuware.com
فهو يوفر برنامجا محاكيا للذي ستمتحن فيه مع ستة امتحانات تجربية محاكية للحقيقي مع التصحيح والشرح
كل ذلك فقط ب10 دولارت للامتحان الواحد


أرجو أني قد وفيت بالمقصود وإن فاتني سؤال فأرجو تذكيري به لكي اجيب عنه
في الجزء القادم إن شاء الله تعالى سأضع أمثلة من الامتحانات


الجمعة، 12 يونيو 2015

لماذا ينبغي عليك الحصول على شهادة الجافا

بسم الله وبه أستعين

الحمد لله أولا وآخرا ، فقد حصلت البارحة على شهادة OCP Java Programmer , وكنت قد وعدت كثيرا من الإخوة بالكتابة في هذا الشأن وقد آن الوفاء بالوعد
سيكون ما أكتبه مجزأ إلى ثلاث مقالات
الأول لماذا ينبغي الحصول شهادة الجافا
الثاني تعريف بالشهادة كيفية تستعد للامتحان
الثالث أمثلة من أسئلة الامتحان

قبل السؤال الأول هنالك سؤال آخر وهو لماذا ينبغي لك أن تختار الجافا وجواب هذا السؤال سيفتح حربا لا نهاية لها ، لذلك سادعك وغوغل ، واكتب فيه شئت مثل java vs C Sharp وستجد العجب

أما الآن فسأفترض أنك من محبي الجافا على الأقل وإن لم تكن من مبرمجيها

لماذا ينبغي لك أن تسعى للحصول على شهادة الجافا

السبب الأول أنك ستقوي معرفتك وخبرتك بالجافا وتضرب في العمق في كثير من فصولها وأصولها وتتعلم ما لم تكن تعرفه من قبل في وقت قصير .
وهذا الكلام عن تجربة ، فقبل خوضي في التحضير للامتحان كنت أحسب اني مبرمج جافا متمكن لما كنت قد قضيت فيها سنيتين قراءة وتطبيقا ، والحقيقة اني لما أجريت اختبارا تجريبيا قبل البدء لمعرفة مستواي تفاجات كثيرا من الاشياء الدقيقة التي غابت عني على بساطتها
سوف تتعلم عن Multithreading و generic و المدخلات والمخرجات و ومعاملة الملفات ، والاتصال بقواعد البيانات ، والكثير الكثير
وسوف أعرض امثلة في الجزء الثالث لكي يتبين لك معنى هذا الكلام

السبب الثاني أنه سيكون لك فرصة أكبر للحصول على وظيفة راقية ، لأن شهادة الجافا ستكسبك تميزا من بين طالبي الوظيفة الذين تقدموا لها ولهم نفس مستواك الدراسي
هذا السبب مذكور في موقع اوراكل الرسمي واعترف به كثير من مديري الموارد البشرية

السبب الثالث أنها ستكسبك قوة في اجتياز اختبارات الوظائف Java interviews لأنك ستكتسب مهارة في كتابة الأكواد وحل المشاكل وسيكون اجياز Java interviews سهلا بسيطا

السبب الرابع إذا كنت في شركة فستكسبك شهادة الجافا احتراما بين المبرمجين وستعطي لك قيمة كبيرة ، لأن الكل يعرف أنه لا يحصل على شهادة الجافا إلا من تمكن منها وعرف الكثير من أصولها وفروعها

السبب الخامس بعض الشركات العالمية تعطي راتبا أعلى لمن حصل على شهادة الجافا

السبب السادس تدعيم السيرة الذاتية بشهادة قوية ، لا سيما لمن له معرفة بالبرمجة وليس له شهادة أكاديمية مثلي أنا

السبت، 17 يناير 2015

كيف تتجاوز Anti-adBlock في موقع 4shared

سلام عيكم

في موقع 4shared يوجد الكثير مما يريد طالب العلم عموما تحميله لا سيما الكتب الالكترونية وفي الوقت نفسه لا يمكن الاستغناء عن adBlock بسبب الإعلانات المزعجة والمخالفة للحياء والأخلاق

المشكلة أن هذا الموقع يستعمل سكريبت anti adblock ويفرض عليك تعطيله وإلا اضطررت إلى الانتظار 1000 ثانية اي 16 دقيقة قبل بدأ التحميل

والحل وجدته في هذا السكريبت


$("#downloadDelayTimeSec").text(20); // To show 20 on display.
$("#secondsLeft").val(20); // 4shared use this input-hidden for the count-down offuscation.
Events.fireEvent("change.seconds.left", 20); // Unknown purposes, but nessesary.
$("body").removeClass("jsBlockDetect"); // Hide "Disable AdBlodk" messages


طريقة التنفيذ من chrome

1-اضغط على ctrl+chift+c
2-اذهب إلى تبويب console
3-نسخ ولصق ثم entre

الجمعة، 28 نوفمبر 2014

طباعة ملف pdf في لينكس

بسم الله الرحمن الرحيم



كيف تطبع ملف pdf

قبل ايام قمت بتثبيت طابعة من نوع canon LBP 1120 وكانت تطبع بشكل جيد إلا ملفات pdf
وقد وجدت هذا الحل وجرت الأمور بشكل جيد

الحل هو أضافة الفلاتر التالية إلى CUPS
  • imagetopdf
  • texttopdf
  • pstopdf
  • pdftopdf
  • pdftoraster
  • pdftoijs
  • pdftoopvp
  • cpdftocps 
أولا قم بتحميل الفلاتر (Filtres) من هذا الرابط
ثانيا فك الضغط وادخل إلى المجلد ثم نفذ الأمر التالي

sudo ./addtocups pdftopdf
ثالثا أعد تشغيل السيرفر CUPS

sudo service cups restart



الجمعة، 18 أبريل 2014

القلب النازف: هل قانون "لينوس تروفالدز" باطل؟!


في اﻷيام القليلة الماضية، تمّ اكتشاف ثغرة حرجة في مكتبة OpenSSL والتي سُميت بـ "القلب النازف" (Heartbleed) والتي أثارت صخبًا واسعا في المجال البرمجي، وبالتأكيد لقد سمعتم عنها كثيرا في اﻵونة اﻷخيرة.

هذه الثغرة، والتي تعرّض معلوماتك الهامة على الوِب كمعلومات بطاقتك الائتمانية ومعلومات تسجيل الدخول إلى الخطر؛ كما ظهرت مؤخرًا بعض المقالات التي هي ضدّ المصدر المفتوح تتهمه ببعض المغالطات، والتي تحاول أن تخلق جوًا من المخاوف المثارة حول المصدر المفتوح، ولذلك فلا عجب حينما ترى أحد مطوري المصدر المفتوح يتحوّل فجأة للدفاع عن شركة آبل ومُهاجمًا مجتمع لينكس، الذي يبين مقدار المال والرشوة التي تقاضاها ذلك الشخص.

العلّة تركت بعض الناس يشككون في قانون لينوس تروفالدز Linus's Law الشهير، والذي ينصّ على:  "إذا وُجدت عيون كافية، فإن كل العلل ستصبح سطحيّة" ، أو بعبارة أكثر توضيحًا: "إذا توفرت نسبة كافية من فاحصي الشيفرة، فإن العلل ستؤول إلى إيجاد حل لها"؛ فهل هذا القانون باطل حقا؟ وهل البرنامج مفتوح المصدر أقل أفضلية من المملوك؟ كل هذا سنتكلم عنه بعد قليل مع الرد على تلك المغالطات ...

أولا وقبل كل شيء، ما هي هذه الثغرة؟!

قبل الخوّض فيما كان يفعله رجال لينكس هذا اﻷسبوع، دعونا أولا نلقي لمحة حول هذه الثغرة، Heartbleed ثغرة أمنيّة في مكتبة OpenSSL وهو بروتوكول شعبيّ مفتوح المصدر مُستخدم لتشفير أجزاء واسعة من شبكة اﻹنترنت، إنها تستخدم لحماية أسماء المستخدمين وكلمات المرور ومعلومات حساسة تعيّن على مواقع آمنة، كانت العلة موجودة ﻷكثر من عامين واكتشفت مؤخرا فقط؛ وعلى الفور، وبمجرد اكتشاف الشغرة تم ترقيعها فورا وخلال ساعات قليلة ولقد أَطلقت كافة التوزيعات المعروفة تحديثات هامة لترقيع هذه الثغرة؛ فهل هذا الضعف جعل المصدر المفتوح أقل أمنا من منتجات آبل وميكروسوفت؟!

هل البرمجيات المملوكة أفضل من المصدر المفتوح؟

كم مقدار البيانات التي تعرضت للخطر؟ كم عدد المليارات المفقودة؟ لا شيء نعرفه. كم مقدار ما يفقده العالم بسبب تقنيات ميكروسوفت المملوكة؟ البلايين من الدولارات قد خُسرت!

إن غالبية هجمات NSA ما كانت لتحدث إلا بسبب خلل في منتجات ميكروسوفت والتي ورد أنها تشترك مع وكالة NSA بحيث يمكن استغلالها لاختراق أجهزة الحاسوب، إن ثغرات ميكروسوفت هي التي تسمح للولايات المتحدة اﻷمريكية بالتجسس على الرئيس الفرنسي مثلا، وبالقضاء على البرامج النووية اﻹيرانية، وهي أيضا التي تسمح بتشغيل التجسس على نطاق واسع ضد نشطاء حقوق اﻹنسان، باﻹضافة إلى أن هنالك اﻵلاف في عداد المفقودين من القضايا والحالات كل عام حيث يفقد الناس والشركات الملايين من اﻷموال بسبب الثغرات اﻷمنية الموجودة في منتجات ميكروسوفت.

المصدر المفتوح سيظل دائما أفضل من البرمجيات المملوكة

باﻹضافة إلى كونها أكثر أمانا بكثير من المنتجات المملوكة، فالمشاريع مفتوحة المصدر كـ OpenSSL تسمح للناس بالقيام بمراجعة وتدقيق البرنامج لتحسين البرنامج نحو اﻷفضل، وهذا شيء مستحيل في البرمجيات المملوكة إذ لا يمكنك تدقيق أو مراجعة اﻷوامر البرمجية، فمجرد كلامك بهذا الشأن يعتبر ضدهم؛ ولقد شاهدنا ما تقوم به وكالة اﻷمن القومي NSA مع تلك الشركات كآبل وميكروسوفت إذ منحتهم الثقة للتجسس على حواسيب المستخدمين، كما شاهدنا في أخبار اﻵونة اﻷخيرة.

وكما ذكرنا أعلاه، تم في لينكس إغلاق الثغرة في غضون ساعات قليلة فقط، بينما استمر اﻷمر في ماك مدة ثلاثة أيام بلا ترقيع!

إن تستر الشركات الاحتكارية على مثل هذه الثغرات هو أمر محتمل جدا، لصالح إرضاء وكالة اﻷمن القومي NSA.

يقول  ريموند: "لحسن الحظ ميزة كبرى أخرى من ميزات المصادر المفتوحة، هو أننا يمكننا دفع اﻹصلاحات بسرعة في ساعات أو أيام قليلة بينما مستخدمو اﻷنظمة المملوكة فسيكونون محظوظين إذا تم ترقيع ثغرتهم بعد شهرين"

نأتي اﻵن إلى قانون لينوس

العلة ليست في القانون، إنما في التنفيذ، كم عدد فاحصي الشيفرة الذين يبحثون عن الثغرات في المشروع؟ قد يعتمد أيضا على مدى كيفية اهتمام المنظمة بصيانة المشروع... ما هي الحوافز أو الدوافع ﻷولئك الناس لتعقّب اﻷخطاء؟! هذا هو السبب حتى في الشركات الكبرى مثل "قوقل" إذ تقيم بعض المسابقات من حين ﻵخر للتشجيع المطورين لاكتشاف الخلل في منتجاتها؛ يمكن أن نفترض أن الناس في OpenSSL لديهم بعض القضايا، حيث قد لا يكون هناك حافز أو دافع لتتبع الشيفرة فيه، نحن فقط نحتاج المزيد من العيون ومتتعبي الشيفرة لمثل هذه المشاريع لا أكثر...

OpenSSL هو حالة استثنائية ولا يجوز القياس هنا

دعونا نحاول تفسير لمَ قانون لينوس غير قابل للتطبيق في هذه القضية:

ليكون قانون لينوس قابلا للتطبيق على الناس معرفة ما الذي يستخدمونه وما الذي يتابعونه أو يفحصونه، إن OpenSSL هي مكتبة أساسية في العديد من تطبيقات UNIX ولكن عادة ما يتم استخدامها على نطاق واسع من قبل الناس مُتجاهلين أهمية مُتابعة والعناية بالشيفرة الخاصة به، وقد اتخذ الناس أمرا مفروغا منه أن OpenSSL آمن، وأراهن أنه حتى بعد ترقيع هذه الثغرة سوف يعود الناس لعادتهم القديمة قائلين أن OpenSSL آمن.

OpenSSL يملك قاعدة مستخدمين كبيرة، ولكن نسبة المساهمين في الشيفرة ضئيلة جدا، وهذه الحادثة لا تدحض قانون لينوس ﻷنه لا يمكن ﻷحد أن يذكر عدد القائمين الفعليين على المشروع المتتبعين للشيفرة، وكونك تستخدمه أو لديك العديد من المعلومات حول اﻷمنيّة  لا يعني أنك مؤهل لتفسير وتشخيص القضايا الخاصة ببرنامج ما.

فالعيون الكافية هي قانون صحيح، إذ في OpenSSL لا يوجد مقدار كاف من العيون، اﻷمر الذي جعل تلك الثغرة تحصل، إنما الخلل في الحوافز والدوافع التي تقوّي المشروع.

لذا فإن قانون لينوس صحيح تماما ولا يزال ساري المفعول، وبعض المشاريع تحتاج المزيد من اﻷعين؛ ولتحقيق ذلك بالتبرع لمشروع OpenSSL ليصبح أفضل:

المصدر : لينكس اليوم