d مدونة الفريق – الصفحة 24 – مدونة فريق شركة المطورون بلس

Blog

  • مكتبة الصور المجانية Visual Studio Image Library

    لسنوات عديدة عند تنصيب الفيجوال ستوديو نختار تنصيب مكتبة الصور ، ومع هذا لا نعرف ما الفائدة الكاملة وراء هذه المكتبة، وإليكم أكثر من ألف أيقونة وصورة لتطبيقات الويندوز والأوفيس والفيجوال ستوديو وغيرها

    الصور موجودة في المجلد
    C:\Program Files\Microsoft Visual Studio 10.0\Common7\VS2010ImageLibrary\1033

    في ملف

    VS2010ImageLibrary.zip

    قم بفك الضغط عنه وتمتع

  • حل مشكلة عدم تخزين البيانات في قاعدة البيانات

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

    إذا سأعطيك الحل الأمثل لهذه المشكلة وهو كالتالي :
     يتم في البداية وضع قاعدة البيانات في مجلد Debug الموجود بداخل مجلد bin
    وبعدها يتم الانتقال إلى خصائص قاعدة البيانات من خلال النقر عليها بالزر الأيمن للماوس واختيار properties
    وجعل خاصية Copy to Output Directory تأخذ القيمة Do not copy
    وهكذا تكون الطريقة وتستطيع أن تجربها الآن بنفسك وتحل مشاكلك السابقة

  • زيادة حجم قاعدة البيانات المستوردة في phpmyadmin

    إذا حاولت أن ترفع قاعدة بيانات (  استيراد ) في phpmyadmin ، فإنك ستواجه مشكلة تحديد حجم المرفوعات ب 2 ميغابايت.
    هنالك حل جميل وهو ضغط القاعدة بامتداد zip ، وهو ما سيجعل حجم القاعدة صغير ، ولكن لو كان حجم القاعدة بعد الضغط أكبر من 2 ميغا، فالحل كالتالي
    اذهب إلى مسار php لديك ، والمسار لدي هو :
    C:\Program Files\PHP
    افتح الملف
    php.ini

    ابحث عن الكلمة
    upload_max_filesize

    ستجد هكذا

    ; Maximum allowed size for uploaded files.

    upload_max_filesize = 2M

    قم بتغيير الرقم من 2 ميغا إلى الرقم الذي تريده ، وأعد تشغيل السيرفر أو الجهاز .

    هذا الأمر لمستخدمي الوندوز ، اما لمستخدمي اللينكس فنفس الأمر ولكن عليكم بإيجاد المسار المناسب.
    هذه المشكلة واجهتني في رفع قاعدة بيانات منتدى على سيرفر وندوز وإلا لا دخل لي بال PHP كليا

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

    C:\Program Files\MYSQL
    وغير في ملفات الاعدادات القيم التالية

    max_allowed_packet = 6M

  • ما هو IIS Express

    سابقاً كنا كمطوري ASP.NET أو أي نوع آخر من التطبيقات نستخدم إحدى الطريقتين التاليتين لتجريب و نشر تطبيقات الويب على مخدمات الويب:

    1. مخدم تطوير ASP.NET الإفتراضي المضمن في فيجول استديو و يعمل في حال تشغيل و نشر التطبيق.
    2. مخدم IIS المضمن في بيئة نظام التشغيل ويندوز.

    لكل من الطريقتين السابقتين الميزات و العيوب و الكثير منا قد يرغب بالجمع بين الميزات الموجودة في كليهما أي إستخدام المخدم المضمن في الفيجول استديو مع الميزات الموجودة في المخدم IIS  الكامل و المضمن في النظام كالإضافات Extension مثلاً, و لهذا السبب تم تطوير المخدم IIS Express و الذي يجمع ميزات كلا المخدمين السابقين و الذي يجعل عملية تطوير تطبيقات الويب أسهل.

  • تعلم كيف تتجاهل التشكيل والهمزات عند البحث بالنصوص العربية في قواعد بيانات Sql

    طرحت سؤالاً في منتديات الفريق العربي للبرمجة عن كيفية تجاهل التشكيل عند البحث باستخدام عبارات Sql وكان ذلك قبل ما يقارب السنتين..
    ومن ذلك الوقت وأنا مستمر في البحث عن أفضل طريقة لتجاهل التشكيل عند البحث في النصوص العربية، حتى وصلت إلى أفضل حل ولله الحمد.
    هذا العناء كانت Microsoft تستطيع أن توفره على مبرمجي العرب لو قامت بتخديم اللغة العربية بشكل جيد في برامجها كما خدمت غيرها من اللغات..
    فمثلاً: اللغات التي تحتوي على أحرف تشكيل غير اللغة العربية قامتMicrosoft بوضع خاصية لهم عند بناء قاعدة بيانات Sql وهي من خصائص الحقل لو وضعتها لقام معالج البحث بتجاهل التشكيل في هذه اللغات بكل تلقائي، هذه الخاصية هي:
    Collation = SQL_Latin1_General_CP437_CI_AI
    أو غيرها حسب اللغة..
    فبهذا الخيار لو بحث المستخدم عن حرف a مثلاً ستظهر له كافة النتائج التي تحتوي على a والتي تحتوي على ä أو å.
    أما اللغة العربية فلا يوجد خيار لدعم تجاهل التشكيل لها في قواعد بيانات Sql..
    ولهذا اضطر المبرمجون العرب لسلوك طرق مختلفة معوجة حتى يصلوا إلى طريقة لتجاهل التشكيل أثناء البحث في النصوص العربية وكانت هذه الطرق حسب ما رأيت كالتالي:

  • لخبطه html tags وماذا تعني <% %> <% #%> <% $%>


    كثيرا ما الاحظ لخطبه وخيوط عجيبه غريبه في اكواد ال html
    اقواس وخيوط سباغيتي كل وحده لها شكل
    بالرغم من اني فقط استعمل ال كثيرا <%# %>
    داخل القريد فيو
    الا ان الفضول دفعني لمعرفة باقي الاكواد ماذا تعني وكيف استعملها
    واخيرا وجدت معلومات جيده

    <% %>  An embedded code block is server code that executes
    during the page’s render phase. The code in the block can execute programming statements
    and call functions in the current page class
    .http://msdn2.microsoft.com/en-gb/library/ms178135(vs.80).aspx

    <%= %> most useful for displaying single pieces of information.http://msdn2.microsoft.com/en-us/library/6dwsdcf5(VS.71).aspx

    <%# %> Data Binding Expression Syntax.
    http://msdn2.microsoft.com/en-us/library/bda9bbfx.aspx

    <%$ %> ASP.NET Expression.
    http://msdn2.microsoft.com/en-us/library/d5bd1tad.aspx

    <%@ %> Directive Syntax.
    http://msdn2.microsoft.com/en-us/library/xz702w3e(VS.80).aspx

    <%– –%> Server-Side Comments.
    http://msdn2.microsoft.com/en-US/library/4acf8afk.aspx

    <%: %> Like <%= %> But HtmlEncodes the output (new
    with Asp.Net 4).
    http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and-asp-net-mvc-2.aspx

    باختصار ال <% %> يستعمل لاكواد السيرفر
    مثال

            
            <%@ Page Language="C#" %><html><body>    
    <form id="form1" runat="server">    <% for(int i = 0; i < 6; i++) %> 
          <% { Response.Write("<br>" + i.ToString()); }%>    
    </form></body></html>

    وايضا هذا مثال رائع

    <% if (IsPostBack) { %>
       
    <a href="SomeURL.aspx">Text for Link</a>
    <% } %>
    هذا الكود جدا رائع برايي ويعطي تحكم اكبر لاكواد ال
    html
    ويعني انه الرابط

    SomeURL.aspx

    لايعمل الا اذا اعطى قيمه
     true
    <%$ %> يستخدم لتعابير asp.net
    مثل الوصول الى بيانات webconfig
    وال resources
    مثال

    <asp:Label id="label1" runat="server" text="<%$ Resources: Messages, ThankYouLabel %>" />
    للوصول الى ال
     Resources
    <asp:SqlDataSource ID="SqlDataSource1" Runat="server" SelectCommand="SELECT * FROM [Employees]" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString1 %>"></asp:SqlDataSource>

    للوصول لبيانات الاتصال


    NorthwindConnectionString1 <%# %>

    استخدامه شائع وهو للبيانات المتصله في قاعدة البيانات او الغير متصله مثال

    <html><head>    <script language="C#" runat="server">        void SubmitBtn_Click(Object sender, EventArgs e) {          // Rather than explictly pulling out the variable from the
                    StateList control          // and then manipulating
                        a Label control, just call Page.DataBind.          //
                            This will evaluate any <%# %> expressions within the page.           Page.DataBind();        }    </script></head><body>    <h3><font face=
    "Verdana">Binding to a property of another server control</font></h3>    <form runat="server">        <asp:DropDownList id="StateList" runat="server">          <asp:ListItem>CA</asp:ListItem>          <asp:ListItem>IN</asp:ListItem>          <asp:ListItem>KS</asp:ListItem>          <asp:ListItem>MD</asp:ListItem>          <asp:ListItem>MI</asp:ListItem>          <asp:ListItem>OR</asp:ListItem>          <asp:ListItem>TN</asp:ListItem>          <asp:ListItem>UT</asp:ListItem>        </asp:DropDownList>               <asp:button Text="Submit" OnClick="SubmitBtn_Click" runat="server"/>                <p>             Selected State: <asp:label text='<%# StateList.SelectedItem.Text %>' runat="server"/>         </form></body></html>

  • ما ينقصك معرفته عن صيغ الفيديو و HTML5

       

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

    حول وسم الفيديو / فهو مدعوم في المتصفحات التالي <video>

    IE 9

    FireFox 3.5

    Safari 3 , 4

    Chrome

    Opera

    حاويات الفيديو:

    كما كنت اعتقد أن امتداد الفيديو يحدد نوعه، ولكن هذا خطا فالامتداداتj مثل AVI  أو WMV  أو MP4 هي حاويات الفيديو وليس نوع الفيديو ، مثال هي كالملف المضغوط ZIP , RAR  وبداخلها الملفات

    ولأكون أكثر دقة، فهي مسؤولة عن كيفية تخزين الفيديو بداخلها، وليس نوعه، وهنا يجب معرفة أن الملف يخزن مسار الفيديو، مسار الصوت ( أو تكون أحيانا عدة مسارات )، بعض المعلومات الهامة عن المحتوى.

    وهذه بعض من حاويات الفيديو المشهورة

    Flash Video: مشهور بالامتداد FLV من شركة أدوبي

    MP4 : من شركة أبل ، مبني أساسا على الامتداد mov

    Ogg : امتداد مفتوح المصدر، ويسمى ثيورا Theora، وبعض المتصفحات توفر دعم تلقائي لهذا الامتداد ، بدون تحميل ملحقات مثل الفايرفوكس 3.5 وأوبرا 10.6. بالأساس تم تطويره لبيئة اللينكس ، ولكنه يعمل على كل الأنظمة فمثلا برنامج VLC المشهور، يشغله بدون أي مشاكل.

    Webm  وهو الامتداد الجديد الذي سمعتم عنه ، ويسمى ماتروسكا Matroska ، وهذا الامتداد يعتمد على النوع VP8  والصوت من فوربس Vorbis وهو ما سيتم توضحيه لاحقا.

    Audio Video Interactive : وهو امتداد مايكروسوفت المشهور AVI  ، والذي أصبح قديما ، لأنه لا يدعم الأنواع الحديثة، وأيضا لا يدعم التوصيف Meta data.

    محولات الفيديوVideo Codecs

    عند الحديث عن تشغيل ملف فيديو ، فنحن نتحدث عن تشغيل مسار فيديو وتشغيل مسار صوت، أو عدة مسارات ، مقترنين ببعض، ليظهر لنا كأنهم مقطع واحد في نفس اللحظة، وبالتالي نفهم أن المشغل ، يقوم بعدة عمليات منها تشغيل مسار الصوت والصورة، وكذلك محاولة فكهم من الحاوية بدقة ( Decoding )، وهذا هو محول الفيديو ( الكوديك )

    ويمكن من هنا تعريف الكوديك على أنه خوارزمية معينة لحفظ الفيديو وترميزه Encoding  ثم فك ترميزه عن العرض، لكي يعرض الصوت والصور على أنها إطار مستمر ، ومن هنا نشأت صيغ كثيرة للكودكس، فمنها ما يعرض عدد إطارات أقل لتقليل الحجم مثلا MKV ، ومنها ما يضحي بالصوت وجودته، ومنها ما يضحي بجودة الصورة وهكذا. وهذه قائمة بببعض كودكس الفيديو http://samples.mplayerhq.hu/V-codecs/، ولكن في هنا سنتكلم عن أهم ثلاثة وهم : H.264, Theora, VP8

    الكودك: H.264

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

    الكودك : Theora

    وهو مجاني ومفتوح المصدر من شركة xiph.org  ومبني على الكودك VP3 ، ويمكن تحميل المتطلبات من موقعه الرسمي http://www.theora.org/downloads/

    الكودك : VP8

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

    أما عند الحديث عن كودك الصوت ، فيوجد Advanced Audio Layer 3 ( MP3 ) وهو الأوسع انتشارا إلا أنه يعيبه قلة نقاء الصوت به،

    وهنالك Advanced Audio Coding ( AAC) وهو مقدم من شركة أبل ، وأفضل من النوع السابق في نواحي كثيرة،

    وأخيرا هنالك النوع Vorbis الموجود في الامتداد Ogg  وهو مفتوح المصدر، وواسع الانتشار ومدعوم ضمنيا في بعض المتصفحات مثل الفايرفوكس.

    الكودك :WebM

    يستخدم الكودك VP8 للفيديو ، والكودك Vorbis  للصوت ،وهو ما تدعمه جوجل الان والعديد من الشركات لأنه مفتوح المصدر ومجاني

    إذا أي نوع أستخدم.

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

    وهذه الصورة توضح المشكلة: حيث كل متصفح يدعم على هواه

    وهنا اما ان تستخدم الكودك WebM  وهو مدعوم بشكل واسع، وقم بالتضحية بأبل وبمتصفحها، مع العلم أن الإكسبلورر، يحتاج لملحقات لتشغيل هذا الامتداد

    وبخصوص الأندريود حسب وعد جوجل، ستقوم بدعم كودك WebM في القريب العاجل جدا جدا.

     أو أن تستخدم النوع Ogg المبني على الثيورا والفوبس بنفس الوقت وهو اختيار سائد

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

    تحديث:

    يوجد برنامج آخر اسمه Miro وهو مجاني ، وقد ارتحت له كثيرا ( أكثر من الفايرفوج ) ، وقد استخدمته عدة مرات ولم يخيبني

    بالتوفيق

  • خصائص HTML5 المدعومة في Internet Explorer 9

    إنترنت أكسبلورر 9 الجديد ، يدعم الكثير من الإضافات والمعايير وهذه قائمة بما يدعمه المتصفح للآن من خصائص ووسوم

  • نصيحة لرواد التكنولوجيا ( مبرمجين أو مصممين ) للبقاء في الصدارة

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

    وأتذكر في هذا المقام الإمام الشافعي رحمه الله وهو يقول :
    نعيب زماننا والعيب فينا …….. وما لزماننا عيبٌ سوانا
    ونهجو ذا الزمانَ بغير ذنبٍ ….. ولو نطق الزمان لنا هجانا

    وحتى لا أجعلكم حائرين في الموضوع ،لماذا نشعر أحيانا بأن السوق يتراجع ، وأن ما
    إعدتنا أن نطلبه ونعمله ، لم يعد يجدي مع العملاء ( الزبائن ) !؟
    أتذكر أول ما بدأت برمجة مواقع وتركي لبرمجة البرامج ، كان سبب نجاحي على باقي
    المبرمجين هو أنني كنت أعمل على تقنيات جديدة مثلا كنت أتقن الأجاكس، وكذلك كنت
    أعمل على إصدار جديد من منصة العمل ألا وهو فيجوال ستوديو 2005، وكنت متابع لكل ما
    هو جديد ، وخلال فترات العمل وضغطه ، تتقدم التقنيات ، وبسبب كثرة العمل لا تجد
    نفسك تواكب ، فيسبقك من هم دونك ، ويصبحون في المقدمة وأنت تتأخر عنهم.
    ما أود أن أقوله بصيغة أخرى ، هو أنت في المقدمة لأنك تتقن كل ما هو جديد ، ولكن
    بعد فترة إن لم تحدث علمك ، سيصبح علمك قديم ، وسيأتي من يتعلم كل ما هو جديد وتصبح
    أنت وعلمك من الماضي.
    فالسوق والعمل يرغب بكل ما هو جديد ، وكل ما هو أفضل ، بل أساسا كل ما هو جديد
    سيكون غالبا تم استحداثه للأفضل ( أفضل للوقت وللجهد ) ، ولكن عليك ببعض العناء
    لتعلم الجديد.

    فإذا أردت أن تبقى في الصدارة، عليك بتحديث علمك ومواكبة كل جديد في مجالك ، وعلى
    سبيل المثال ، المبرمجون هنا ما زالوا يستخدمون للاتصال بقواعد البيانات شيء يسمى
    ADO.NET Framework وهذا النمط موجود من عام 2001 ، وللعلم من العام 2001 ، إلى
    العام 2011 ، ظهرت 9 تقنيات جديدة أفضل منه ، ولكن من منا حدث ؟
    من كثرة إختلاطي بالمعلمين ، وبأصحاب الخبرة من المبرمجين ، وبأفضل المراكز التي
    تعطي الدورات ، لم أجد أحد قد استخدم ولو ثاني تقنية مثلا التي ظهرت في عام 2004 ،
    وإن قرأ البعض عن بعض التقنيات الحديثة إلا أنه لا أحد استخدمها ، ولا حتى أساتذة
    الدورات ( المدربون ) قد حدثوا دورتهم وأفادوا طلابهم، ولذلك يخرج الطالب من الدورة
    بعلم قديم وعليه البدء من جديد بتعلم كل ما هو جديد.
    الخلاصة ، اجعل لك كل أسبوع يوم ، نعم يوم كامل للقراءة ومواكبة التحديثات
    والتقنيات الجديدة في مجالك ، وإلا سيسبقك القطار.