VIP برنامه نویسی Server Side

وضعیت
موضوع بسته شده است.

☾♔TALAYEH_A♔☽

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2017/05/18
ارسالی ها
35,488
امتیاز واکنش
104,218
امتیاز
1,376
اوراکل هم هک شدني است



Lic




يک پژوهشگر خبره امنيتي کامپيوتر راهي پيدا كرده که مي‌توان از طريق آن به ضعف‌هاي ديتابيس اوراکل نفوذ کرد و از راه دور به اطلاعات اين ديتابيس دست يافت. به‌گزارش رويترز، اين نفوذ از يک باگ در پايگاه داده اوراکل سرچشمه مي‌گيرد و هکرها مي‌توانند از طريق همين باگ و اينترنت به اطلاعات ديتابيس‌هاي شخصي دسترسي پيدا کنند. ديويد ليچفيلد، محقق امنيتي موسسه نرم‌افزاري NGSSoftware، که شرکت امنيتي انگليسي است، اين باگ را کشف کرده است و گفته مي‌شود در صورتي که جلوي اين باگ گرفته نشود، اعتبار بزرگترين شرکت بانك اطلاعاتي دنيا که به‌تازگي يکي ديگر از ديتابيس‌هاي معروف يعني ماي‌سه‌کوئل را خريده است، خدشه‌دار خواهد شد. وي پس از کنفرانس کلاه سياه که کنفرانسي امنيتي است و در واشنگتن برگذار شده، در مورد اين باگ گفت: «اين باگ طوري است که مي‌توان بدون شناسه و گذرواژه کنترل کامل ديتابيس را به‌دست گرفت و تمام ديوارهاي آتش را دور زد.» او همچنين اعلام کرد که اوراکل را از اين حفره امنيتي باخبر ساخته و قرار است اين شرکت در ماه جاري، يک وصله براي اين مساله ارائه کند. او همچنين اعلام کرد، از آنجايي که اوراکل هنوز هيچ وصله‌اي را براي اين مشکل ارائه نکرده، تصميم گرفته است اين مساله را عمومي کند. گفتني است سران اوراکل از هر گونه اظهار نظري در اين‌باره خودداري کرده‌اند. ليچفيلد همچنين اعلام کرد که از هر 10ديتابيس اوراکل، 9تاي آنها به اين مشکل دچار هستند و مستعد حمله‌اند. او همچنين افزود که تغيير تنظيمات پيش‌فرض در نرم‌افزار اوراکل تنها کاري است که مي‌شود تا حدي از خطر را به‌کمک آن کاهش داد. او همچنين افزود مشخص نيست بالاخره کدام هکر براي اولين‌بار مي‌تواند از اين حفره براي نفوذ به اوراکل سوءاستفاده کند.
 
  • پیشنهادات
  • ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    نرم‌افزار ایرانی تبدیل متن به گفتار تولید شد


    Lic




    پژوهشگران یکی از شرکت‌های دانش‌بنیان، نرم‌افزاری را به حجم ۷ مگابایت ارائه دادند که علاوه بر آنکه می‌تواند متن را به صوت تبدیل کند، با نصب آن بر روی گوشی‌های همراه می‌تواند پیامک ارسالی را برای کاربر بخواند. به گزارش ایتنا سمیه باقربیگی از محققان این پروژه تحقیقاتی در گفت‌وگو با مهر، با اشاره به سابقه تولید نرم‌افزارهای تبدیل متن به گفتار در دنیا، افزود: با رشد این فناوری در ۱۰ سال اخیر، نرم‌افزارهای بسیاری در زمینه تبدیل متن به گفتار در زبان‌های مختلف دنیا تولید شده است. وی از تولید نرم‌افزاری در این زمینه در ایران خبر داد و اظهار داشت: این نرم‌افزار قادر است فایل‌های متنی را با کیفیت صدایی شبیه انسان و بدون لرزش به گفتار تبدیل کند. باقربیگی با تاکید بر اینکه این نرم‌افزار قابل نصب بر روی گوشی تلفن همراه و کامپیوتر است، ادامه داد: این نرم‌افزار می‌تواند یک کتاب ۲۰۰ صفحه‌ای با فرمت‌های DOC ،DOCX و PDF را به فایل صوتی wav و mp3 (گفتاری) تبدیل کند. این محقق با بیان اینکه این نرم‌افزار با باز کردن فایل متنی شروع به خواندن آن می‌کند، توضیح داد: اساس این نرم‌افزار علم "پردازش زبان طبیعی" است به این صورت که با آنالیز و پردازش بر روی متن آن را تبدیل به صوت و با زبان مورد نظر ارائه می‌دهد. وی با تاکید بر اینکه این نرم‌افزار برای زبان فارسی تنظیم شده است، ادامه داد: این نرم‌افزار با نصب بر روی گوشی‌های تلفن همراه می‌تواند پیامک را برای کاربران نابینا و یا در حین رانندگی برای کاربران بخواند بدون آنکه کاربر به تنظیمات خاصی دست بزند. باقربیگی اضافه کرد: علاوه بر این با نصب این نرم‌افزار در گوشی‌های همراه می‌توان متنی را در گوشی ذخیره کرد و در زمان‌های مورد نیاز متن را به صورت صوت به کاربر ارائه داد. وی حجم کم این نرم‌افزار را از دیگر قابلیت‌های آن ذکر کرد و یادآور شد: نرم‌افزارهایی که تاکنون در دنیا عرضه شده‌اند با حجم ۴۰۰ تا ۵۰۰ مگابایت است ولی در این پروژه با استفاده از روش‌های خاصی حجم نرم‌افزار تولید شده به ۷ مگابایت کاهش یافت. باقربیگی با بیان اینکه این نرم‌افزار بر روی کامپیوترها هم قابل نصب است، گفت: خروجی این نرم‌افزار بر روی کامپیوترهای شخصی فایل‌های MP3 است به گونه‌ای که کتاب‌های متن به کتاب گویا تبدیل و به کاربر ارائه می‌شود. وی با بیان اینکه این پروژه با همکاری مهندس مهدی گلزارنیا اجرایی شد، از برنامه‌های توسعه این نرم‌افزار خبر داد و اظهار داشت: تبدیل گفتار به متن از برنامه‌های توسعه‌ای این نرم‌افزار است که در دستور کار قرار دارد.
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    سیزدهمین دوره مسابقه برنامه‌نویسی غرب آسیا با حمایت شرکت توسن برگزار شد


    Lic




    در سیزدهمین دوره رقابت‌های منطقه‌ای برنامه‌نویسی (ACM، ۷۸ ) تیم از ۵۰ دانشگاه کشور شرکت کردند، که در نهایت پس از دو روز رقابت تیم دانشگاه صنعتی شریف با حل ۷ مساله رتبه اول و یک تیم از دانشگاه تهران با حل ۶ مساله رتبه دوم را از آن خود کردند. به گزارش ايتنا این دور از مسابقات که با حمایت شرکت توسن برگزار شد. از سوی انجمن ACM بین‌المللی نظارت و برنامه‌ریزی می‌شود، و هر ساله در سطح منطقه‌ای برگزار می‌شود و تیم‌های دانشجویی برتر به مسابقات جهانی راه خواهند یافت. بر همین اساس، شرکت توسن با توجه به برنامه توسعه فعالیت‌های مرتبط با مسئولیت‌های اجتماعی خود، موضوع حمایت از فعالیت‌های دانشجویی که بر پایه فناوری اطلاعات در کشور صورت می‌گیرند را را در سند استراتژی کسب و کار مسئولانه خود قرار داده است. این شرکت با حضور مستمر و مسئولانه خود، در کلیه مراحل برگزاری این دور از مسابقات سعی کرد تا همکاری مناسبی را به جهت هر چه با شکوه تر برگزار شدن این دور از مسابفات صورت دهد که برگزاری موفق این دور از مسابقات گواه مناسبی بر این مدعا می باشد. رامتين خسروي، عضو هيئت علمي دانشكده مهندسي برق و كامپيوتر دانشگاه تهران و سرپرست مسابقه برنامه‌نویسی((ACM ، منطقه غرب آسیا با بیان اینکه تیم دانشگاه صنعتی امیرکبیر در جایگاه سوم قرار گرفت، یادآور شد: این تیم با حل ۶ مساله در مدت زمان بیشتر از دانشگاه تهران حائز رتبه سوم شد. وی افزود: دو تیم برگزیده به مسابقات جهانی ACM که اردیبشهت سال آینده در لهستان برگزار می‌شود راه می‌یابند. بر اساس این گزارش: ACM مخفف Association for Computing Machinery نام اولین انجمن علوم کامپیوتر است که در سال ۱۹۴۷ تاسیس شد. این انجمن اولین مسابقه رسمی ICPC را در سال ۱۹۷۶ برگزار کرد. این مسابقات پس از مدتی با استقبال گسترده ای از سوی دانشگاهها مواجه شد تا جایی که در سال ۱۹۹۷ شرکت IBM به عنوان حامی اصلی این مسابقات معرفی شد و تعداد تیمهای شرکت کننده به بیش از ۳ هزار تیم از ۶۷ کشور دنیا رسید. قاره آسیا از سال ۱۹۹۵ به مسابقات ACM پیوست و بعد از ۴ سال ایران نیز به عنوان یکی از سایتهای قاره آسیا پذیرفته شد. در این راستا دانشگاه شریف به عنوان یکی از ۱۰ سایت آسیا است که تا کنون ۷ دوره مسابقه منطقه ای ACM را برگزار کرده است. وی در ادامه افزود: از ۱۲ سال پیش، دانشگاه صنعتی شریف رسماً به عنوان سایت غرب آسیا میزبان تیم‌های مختلف از داخل و خارج کشور بوده است. دانشکده مهندسی برق و کامپیوتر دانشگاه تهران در سال جاری برای نخستین بار میزبان مسابقه‌ی برنامه‌نویسی دانشجویی اِی‌سی‌اِم در منطقه غرب آسیا است. همچنین، قبل از مسابقه‌ی منطقه‌ای، یک مسابقه‌ی اینترنتی در روز ۱۹ آبان۱۳۹۰ توسط سایت‌های منطقه‌ای برگزار شد تا تیم‌هایی که برای نخستین بار در این مسابقه شرکت می‌کنند با شرکت در آن بتوانند با سبک برگزاری آن آشنا شوند و تیم‌های باتجربه نیز در یک رقابت اولیه بتوانند نقاط ضعف و قوت خود را بیشتر بشناسند. سیزدهمین دوره مسابقه برنامه‌نویسی منطقه غرب آسیا، در سه بخش، مسابقه آزمایشی، مسابقه منطقه‌ای سایت تهران و مسابقه هوش مصنوعی در روزهای۱۰ و ۱۱ آذرماه ۱۳۹۰ به میزبانی پردیس دانشکده‌های فنی دانشگاه تهران، در موسسه تحقیقات ارتباطات و فناوری اطلاعات و با حمایت شرکت توسن برگزار گردید.
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    Access-to-MySQL v5.3


    Lic




    پشتیبانی Access-to-MySQL v5.3 از Queryهای MS Access

    شرکت Intelligent Converters نگارش جدید مبدل Access به MySQL را منتشر کرده است . این برنامه بانکهای اطلاعاتی MS Access را به سرور MySQL ، در قالب پشتیبانی از Queryهای MS Access ، منتقل می نماید .

    شرکت روسی Converters Intelligent اعلام نموده نسخه جدید Access-to-MySQL v5.3 می تواند Queryهای MS Access را به view های MySQL تبدیل نماید .

    Queryهای MS Access بعنوان مستندات نامگذاری شده SQL در جدول مخفی system قرار می گیرند . اگرچه SQL یک زبان استاندارد بوده که جهت کار با هرنوع برنامه بانک اطلاعاتی که بتواند با SQL کار کند ، طراحی شده ولی MS Access دارای تعدادی توابع اختصاصی خود می باشد که در استاندارد SQL پشتیبانی نمی شوند . بدین دلیل نرم افزار Access-to-MySQL v5.3 صرفا" Queryهای بانک اطلاعاتی MS Access را به MySQL کپی نمی کند . در عوض ، این نرم افزار عبارت SQL موجود در هر MS Access query را پویش نموده و توابع MS Access مربوطه را با معادل پیش بینی شده MySQL آن جایگزین می نماید .

    ویژگی های دیگر این نرم افزار :

    - تمامی نسخه های MS Access (از جمله 2010 MS Access) پشتیبانی می شود.

    - تمامی نسخه های Linux/Unix و سرورهای Windows MySQL پشتیبانی می شود.

    - روش و متد خاص جهت کاربران Virtual Server .

    - تبدیل اندیکس ها با کلیه attributes های مربوطه .

    - تبدیل کلیه ارتباطات بین جدولی .

    - وجود گزینه تبدیل جداول بصورت تک تک .

    - وجود گزینه تبدیل بخشی از داده ها با استفاده از SELECT-queries

    - ذخیره تنظیمات تبدیل انجام شده در پروفایل

    - وجود گزینه اتصال و چسباندن داده های MS Access به یک بانک اطلاعاتی MySQL موجود .

    - وجود گزینه منطبق نمودن (سینکرونایز) MySQL database با MS Access data

    - مدیریت بر بانکهای اطلاعاتی MS Access دارای پسورد

    - مدیریت بر بانکهای اطلاعاتی MS Access که دارای حفاظ امنیتی user-level می باشند .

    - پشتیبانی از کاراکتر ست های چند بایتی .

    - وجود گزینه export جهت انتقال از MS Access data به فایل MySQL dump

    - پشتیبانی از خط فرمان

    - رابط کاربری ویزارد گونه جهت استفاده آسان

    - پشتیبانی کامل از Full install/uninstall

    اطلاعات بیشتر در سایت convert-in.com/acc2sql.htm موجود می باشد .
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    PHP نسخه 5.3.9 وارد بازار شد {دهم ژانویه 2012}



    Lic






    تیم ارائه کننده PHP اعلام نمود که نسخه 5.3.9 این نرم افزار وارد بازار برنامه نویسی شده است . این نسخه بر روی بهبود ثبات و پایداری در PHP 5.3.x تمرکز نموده که منجر به حذف بیش از 90 باگ شده که بیشتر آنها اشکالات امنیتی بوده است .

    بهبود امنیتی مربوطه در PHP 5.3.9 :

    - اضافه شدن فرمان max_input_vars جهت جلوگیری از حمله های مبتنی بر hash collisions

    - حذف باگ شماره 60150# (Integer overflow during the parsing of invalid exif header)

    بهبودهای کلیدی در PHP 5.3.9 :

    - حذف باگ شماره 55475# :

    (is_a() triggers autoloader, new optional 3rd argument to is_a and is_subclass_of)

    - حذف باگ شماره 55609# (mysqlnd cannot be built shared)

    - تغییرات اساسی در FPM SAPI module



    به تمامی برنامه نویسان مربوطه توصیه میشود PHP خود را به نگارش 5.3.9 بروز نمایید .
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    آموزش jquery



    Lic






    شروع کار با JQuery



    این راهنما مقدمی ای بر کتابخانه JQuery است. برای ادامه به آشنایی مقدماتی با جاوااسکریپت و document object model (DOM) نیاز است. این راهنما از سطح پایین شروع و در صورت لزوم جزئیات را توضیح می دهد. یک مثال hello world هم آورده می شود، اصول selector و رخدادها، AJAX، FX و استفاده و مدیریت پلاگین ها آموزش داده می شود.



    این راهنما شامل مثال های "click me" نمی باشد هدف از استفاده از کد "copy me" ترغیب شما به تست است. یک مثال را کپی نحوه کار ان را ببینید و انرا دستکاری کنید.

    Contents

    Setup. 1

    سلام JQuery 1

    استفاده از selector ها و رخدادها 3

    استفاده از AJAX. 7

    نوشتن پلاگین. 10

    پلاگین checkbox 10





    Setup
    برای شروع کار، به یک کپی از کتابخانه JQuery نیاز داریم، که میتوانیم از صفحه اصلی دانلود کنیم. jQuery Starterkit چندین markup و CSS اماده دارد. بعد از دانلود و باز کردن محتویات ما فایل jquery.js را در همان پوشه قرار داده و فایل starterkit.html و custom.js را با برنامه ویرایشگرمان باز می کنیم. فایل startkit.html را با مرورگر نیز باز کنید.



    الان تمام ابزار برای شروع با مثال "hello world" را داریم.

    لینک های مفید برای این بخش

    • jQuery Starterkit
    • Downloading jQuery
    سلام JQuery
    با یک صفحه خالی html شروع می کنیم:

    <html>

    <head>

    <script src="jquery.js"></script>

    <script type="text/javascript">

    // we will add our javascript code here

    </script>

    </head>

    <body>

    <!-- we will add our HTML content here -->

    </body>

    </html>



    صفحه فقط کتابخانه jquery.js را لود می کند ( مطمئن شوید مقدار URL به آدرس فایل jquery شما اشاره می کند! برای این مثال فرض شده که فایل jquery.js در پوشه فایل html قرار دارد). دو کامنت مشخص شده را گسترش خواهیم داد.



    از انجا که تقریبا تمام کارهای ما با jQuery شامل خواندن و دستکاری document object model (DOM) می شود، باید مطمئن شویم که به محض آماده شدن DOM رخدادها را اضافه کنیم.



    به این منظور، یک رخداد ready را برای document رجیستر می کنیم:

    $(document).ready(function() {
    // do stuff when DOM is ready
    });


    قرار دادن یک کد هشدار دهنده درون این تابع معقول نیست، چون کد هشدار نیازی به اماده بودن DOM ندارد. اجازه دهید چیز پیچیده تری را آزمایش کنیم: نشان دادن یک هشدار هنگام کلیک شدن یک لینک.



    کد زیر را به تگ <body> اضافه کنید:

    <a href="">Link</a>


    حالا $(document).ready را آپدیت کنید:

    $(document).ready(function() {
    $("a").click(function() {
    alert("Hello world!");
    });
    });


    حالا به محض کلیک کردن روی لینک باید یک هشدار نمایان شود. حالا می توانید کد را درون فایل custom.js کپی کنید. سپس، فایل starterkit.html را با مرورگرتان باز کرده و بر روی یک لینک کلیک کنید. روی هر لینکی که کلیک کنید باید یک پنجره pop-up با پیغام "hello world!" ببینید.

    اجاز دهید نگاهی به کارمان بیندازیم: $("a") یک jQuery selector است، که در مثال بالا تمام عناصر از نوع a را انتخاب می کند. $ نام مستعاری برای کلاس jQuery است.بنابراین $() یک شی jQuery جدید می سازد. تابع click() که در ادامه صدا می زنیم یکی از متدهای شی jQuery است. این کار یک رخداد کلیک را به تمام عناصر انتخاب شده ( در این مثال، یک عنصر anchor) پیوست کرده و هنگام رخداد آن تابع را اجرا می کند.



    این مشابه کد زیر است:

    <a href="">Link</a>


    تفاوت واضح است: لازم نیست ما برای هر عنصر یک onclick بنویسیم. ما به طور شفاف ساختار (HTML) را از رفتار (JS) جدا کرده ایم، درست همانطور که ساختار را از نحوه نمایش (CSS) جدا کرده ایم.

    در ادامه selector ها و رخدادها را کمی بیشتر برسی می کنیم.

    لینک های مربوط به این بخش:

    • jQuery Base
    • jQuery Expressions
    • jQuery Basic Events
    استفاده از selector ها و رخدادها
    jQuery دو روش برای انتخاب عناصر دارد. در روش اول از ترکیب selector های XPath و CSS استفاده می شود که به صورت string به سازنده jQuery فرستاده می شود (مثلا $("div > ul a")). روش دوم از متد های شی jQuery استفاده می کند. این دو روش را میتوان ترکیب کرد.

    برای ازمایش این selector ها، اولین لیست مرتب starterkit را انتخاب و تغییر می دهیم.

    برای شروع، خود لیست را انتخاب میکنیم. آی دی لیست "orderedlist" است. در جاوااسکریپت، می توان با کد document.getElementById("orderedlist") انرا انتخاب کرد. با jQuery اینگونه کار می کنیم:

    $(document).ready(function() {
    $("#orderedlist").addClass("red");
    });
    starterkit یک stylesheet با کلاس "red" دارد که یک پس زمینه قرمز رنگ را به عنصر اضافه می کند. بنابراین، وقتی صفحه را در مرورگر دوباره لود کنیم، اولین لیست مرتب باید پس زمینه قرمز داشته باشد. لیست دوم تغییر نکرده است.



    حالا اجازه دهید به عناصر زیرشاخه لیست کلاس های دیگری اضافه کنیم.

    $(document).ready(function() {
    $("#orderedlist > li").addClass("blue");
    });
    این کد تمام li های عنصری که آی دی ان orderedlist است را انتخاب و کلاس "blue" را به انها اضافه می کند.



    حالا یک کار کمی پیچیده تر: می خواهیم هنگامی که کاربر موس را روی عنصر li نگه می دارد کلاس را اضافه و حذف کنیم، اما فقط برای اخرین عنصر داخل لیست.

    $(document).ready(function() {
    $("#orderedlist li:last").hover(function() {
    $(this).addClass("green");
    },function(){
    $(this).removeClass("green");
    });
    });


    selector های بسیاری با ساختار CSS و XPath وجود دارد. مثال های بیشتر و لیست دستورهای موجود را اینجا ببینید.

    برای هر رخداد به صورت onxxx، مانند onclick، onchange، onsubmit، یک معادل در jQuery وجود دارد. برخی رخدادهای دیگر، مانند Ready و hover برای سهولت بیشتر فراهم شده است.

    لیست کامل رخدادها را می توانید در jQuery Events Documentation بیابید.



    با این Selector ها و رخدادها می توان کار های زیادی انجام داد، ولی Selector های دیگری هم وجود دارد.

    $(document).ready(function() {
    $("#orderedlist").find("li").each(function(i) {
    $(this).append( " BAM! " + i );
    });
    });
    find() برای جستجوی زیرعنصرهای درون عناصر انتخاب شده است، بنابراین $("#orderedlist").find("li") تقریبا همان $("#orderedlist li") است.



    each() برای پویش تک تک عناصر و پردازش بیشتر است. بیشتر متدها، مانند addClass() خود از متد each() استفاده می کنند.

    در این مثال، از append() برای الحاق یک متن به ان و قرار دادن ان در انتهای هر عنصر استفاده شده است.

    کار دیگری که اغلب نیاز است انجام دهیم فراخوانی متدهای عناصر DOM است که در jQuery وجود ندارد. تصور کنید می خواهید یک فرم را بعد از اینکه با AJAX ارسال شد ریست کنید.

    $(document).ready(function() {
    // use this to reset a single form
    $("#reset").click(function() {
    $("form")[0].reset();
    });
    });


    این کد اولین فرم را انتخاب و تابع Reset() ان را صدا می زند. اگر بیش از یک فرم دارید این کار را بکنید:

    $(document).ready(function() {
    // use this to reset several forms at once
    $("#reset").click(function() {
    $("form").each(function() {
    this.reset();
    });
    });
    });


    این کد تمام فرم های document را انتخاب کرده، انها را پویش و متد Reset() را برای تک تک انها فراخوانی می کند. دقت کنید که در تابع .each() ، this به خود عنصر اشاره می کند. همچنین از انجایی که تابع Reset() به فرم تعلق دارد و نه شی jQuery، نمی توانیم برای ریست کردن تمام فرمهای صفحه از $("form").reset() استفاده کنیم.



    یک مسئله دیگر انتخاب عناصر خاصی از بین یک گروه از عناصر مشابه یا یکسان است. برای این منظور jQuery توابع filter() و not() را فراهم اورده است. filter() انتخاب ها را بر اساس جمله فیـلتـ*ـر کاهش می دهد در حالی که not() برعکس تمام عناصری که با جمله ان سازگاز است را حذف میکند. تصور کنید می خواهید در یک لیست مرتب تمام li هایی که دارای زیر عنصرهای ul نیستند را انتخاب کنبد.

    $(document).ready(function() {
    $("li").not(":has(ul)").css("border", "1px solid black");
    });


    این کد تمام عنصر های li که دارای زیر عنصرهای ul هستند را انتخاب و انها را از محدوده انتخاب ها حذف می کند. بنابراین تمام li هایی که زیرعنصر ul ندارند لبه دار می شوند.



    شکل دستوری [expression] از XPath گرفته شده است و می توان برای فیـلتـ*ـر کردن بر اساس attribute ها از ان استفاده کرد. ممکن است بخواهید تمام anchorهایی که دارای نام هستند را انتخاب کنید:

    $(document).ready(function() {
    $("a[name]").css("background", "#eee" );
    });
    این کد به تمام anchorهایی که دارای attribute با نام name هستند پس زمینه اضافه می کند.



    ممکن است به جای نام نیاز باشد یک anchor را بر اساس href attribute ان انتخاب کنید. این ممکن است مشکل ساز باشد چون مقدار href که مرورگرهای مختلف بر می گردانند نا سازگار با هم است ( این مشکل در jQuery ورژن های بالاتر از 1.1.1 حل شده است). برای تطبیق فقط یک بخش از مقدار می توان از contains select "*=" به جای تساوی "=" استفاده کرد:

    $(document).ready(function() {
    $("a[href*='/content/gallery']").click(function() {
    // do something with all links that point somewhere to /content/gallery
    });
    });
    تا اینجا، تمام selector ها برای انتخاب زیرعنصرها و فیـلتـ*ـر کردن استفاده شد. حالاتی وجود دارد که می خواهیم عنصر بعدی یا قبلی (sibling) را انتخاب کنیم. یک صفحه "سوالات متداول" را تصور کنید که تمام پاسخ ها در ابتدا پنهان است، و هنگامی که روی سوال کلیک می شود پاسخ ان ظاهر می شود. کد jQuery برای این:

    $(document).ready(function() {
    $('#faq').find('dd').hide().end().find('dt').click(function() {
    $(this).next().slideToggle();
    });
    });
    در اینجا برای کم کردن طول کد از chaining استفاده کرده ایم،و چون "#faq" فقط یکبار انتخاب می شود افزایش سرعت و کارایی را خواهیم داشت. استفاده از end()، اولین find() خنثی را می کند. بنابراین، find() دوم جستجو را با شروع از عنصر #faq (در عوض زیر عنصرهای dd)، انجام می دهد .

    درون کد پردازشگر رخداد کلیک،همان تابعی که به متد click() فرستاده شده، از $(this).next() برای پیدا کردن sibling بعدی با شروع از dt کنونی استفاده کرده ایم. به این شکل می توانیم به سرعت پاسخ پرسش کلیک شده را بیابیم.



    علاوه بر sibling ها، می توانیم عنصرهای والد را نیز انتخاب کنیم ( در XPath انها را با نام ancestor می شناسیم). ممکن است بخواهید پاراگراف والد لینکی که کاربر ماوس را روی ان نگه داشته، هایلایت کنید. این کد را ازمایش کنید:

    $(document).ready(function(){
    $("a").hover(function(){
    $(this).parents("p").addClass("highlight");
    },function(){
    $(this).parents("p").removeClass("highlight");
    });
    });


    برای تمام لینک ها، پاراگراف والد جستجو . کلاس "highlight" اضافه و حذف می شود.



    اجازه دهید قبل از ادامه دادن یک قدم به عقب برگردیم: jQuery برای کوتاه تر کردن کد و ساده تر کردن خواندن و نگهداری است. کد زیر میانبری برای $(document).ready(callback) است:

    $(function() {
    // code to execute when the DOM is ready
    });


    اگر انرا به مثال hello world! اعمال کنیم خواهیم داشت:

    $(function() {
    $("a").click(function() {
    alert("Hello world!");
    });
    });
    حالا که اصول را می دانیم، می خواهیم جتبه های دیگری از jQuery را برسی کنیم. اول AJAX.

    لینک های مربوز به این بخش:

    • jQuery API documentation
    • Visual jQuery - A categorized browsable API documentation.
    • jQuery Selectors
    • jQuery Events
    • jQuery DOM Traversing
    استفاده از AJAX
    در این بخش یک برنامه کوچک AJAX می نویسیم که کاربر می تواند با ان مانند سایت youtube.com، به یک مطلب امتیاز دهد.



    برای این کار به کمی کد سرور نیاز داریم. مثال من از یک فایل php استفاده می کند که پارامتر rating را خوانده و تعداد و متوسط امتیازها را بر می گرداند. برای کد server-side نگاهی به rate.php بیندازید.

    ما نمی خواهیم این کد بدون AJAX کار کند، هر چند امکان پذیر است، بنابراین ما کد markup مورد نیاز را با jQuery نوشته، انرا به یک container div با آی دی "rating" الحاق می کنیم.

    $(document).ready(function() {
    // generate markup
    $("#rating").append("Please rate: ");

    for ( var i = 1; i <= 5; i++ ) {
    $("#rating").append("<a href='#'>" + i + "</a> ");
    }

    // add markup to container and apply click handlers to anchors
    $("#rating a").click(function(e) {
    // stop normal link click
    e.preventDefault();

    // send request
    $.post("rate.php", {rating: $(this).html()}, function(xml) {
    // format and output result
    $("#rating").html(
    "Thanks for rating, current average: " +
    $("average", xml).text() +
    ", number of votes: " +
    $("count", xml).text()
    );
    });
    });
    });


    این تکه کد پنج عنصر از نوع anchor تولید و انرا به عنصر container با آی دی"rating" الحاق می کند. سپس، برای هر anchor درون container ، یک پردازشگر رخداد کلیک اضافه می شود. هنگامی که anchor کلیک می شود، یک درخواست post همراه با محتویات ان anchor به عنوان یک پارامتر به rate.php فرستاده می شود. نتیجه که به صورت XML برگردانده می شود به container اضافه شده و جایگزین anchor می شود.



    اگر وب سروری با قابلیت PHP ندارید، می توانید ناگاهی به مثال انلاین بیندازید.

    مستندات بیشتر درباره متدهای Ajax برای jQuery را می توانید در Ajax Documentation یا Visual jQuery ببینید.

    یک مشکل متداول هنگام لود کردن با استفاده از Ajax این است: هنگام اضافه کردن پردازشگرهای رخدادها به document، این پردازشگر ها باید مجددا به محتویات لود شده هم اعمال شود، برای جلوگیری از دوباره نویسی کد، می توان از delegate کردن تابع استفاده کرد. مثلا:

    function addClickHandlers() {
    $("a.remote", this).click(function() {
    $("#target").load(this.href, addClickHandlers);
    });
    }
    $(document).ready(addClickHandlers);
    حالا addClickHandlers یکبار هنگامی که DOM لود شد و سپس هر بار که کاربر لینکی با کلاس remote را کلیک کند و لود شدن محتویات تمام شده باشد، اجرا می شود.

    به کد پرس و جوی $("a.remote", this) دقت کنید، this به صورت موقعیتی(context) فرستاده شده است: برای رخداد document ready، شی this به document اشاره دارد، بنابراین تمام document برای anchorهایی با کلاس remote جستجو می شود. هنگامی که از addClickHandlers به صورت یک Callback برای load() استفاده می شود، this به یک عنصر دیگر اشاره دارد: در این مثال، عنصری با آی دیtarget . این مانع از این می شود که رخداد کلیک چندبار به یک لینک اعمال شود و نهایتا منجر به از کار افتادن برنامه شود.

    مشکل دیگر Callback ها پارامترها هستند. Callback خود را مشخص کرده اید ولی نیاز دارید یک پارامتر اضافه به ان بفرستید. ساده ترین راه قرار دادن Callback درون یک تابع دیگر است:

    // get some data
    var foobar = ...;

    // specify handler, it needs data as a paramter
    function handler(data) {
    //...
    }

    // add click handler and pass foobar!
    $('a').click(function() {
    handler(foobar);
    });

    // if you need the context of the original handler, use apply:
    $('a').click(function() {
    handler.apply(this, [foobar]);
    });
    با Ajax بخش زیادی از وب 2.0 را می توانیم پوشش دهیم. حالا که به اصول Ajax نگاهی انداخته ایم، بگذارید چند افکت ساده و انیمیشن به صفحه اضافه کنیم.

    لینک های مربوط به این بخش

    • jQuery Ajax Documentation
    • jQuery API - Contains description and examples for append and all other jQuery methods
    • ThickBox - A jQuery plugin that uses jQuery to enhance the famous lightbox
    افکت ها

    انیمیشن های ساده را می توان با show() و hide() پیاده کرد.

    $(document).ready(function(){
    $("a").toggle(function(){
    $(".stuff").hide('slow');
    },function(){
    $(".stuff").show('fast');
    });
    });
    با animation() می توانید هر ترکیبی از انیمیشن را مانند slide و fade بسازید:

    $(document).ready(function(){
    $("a").toggle(function(){
    $(".stuff").animate({ height: 'hide', opacity: 'hide' }, 'slow');
    },function(){
    $(".stuff").animate({ height: 'show', opacity: 'show' }, 'slow');
    });
    });
    افکت های فانتزی تر را می توان با interface plugin collection ساخت. این سایت دارای دمو ها و مستندات زیادی است.

    لینکهای مربوط به این بخش:

    • jQuery Effects Documentation
    • Interface plugin


    نوشتن پلاگین
    نوشتن پلاگین برای jQuery ساده است. اگر قوائد زیر را رعایت کنید استفاده از پلاگین شما برای دیگران هم ساده می شود.

    نامگذاری پلاگین

    نام پلاگین تان را انتخاب کنید، مثلا "foobar" . حالا یک فایل با نام jquery.[yourpluginname].js بسازید، یعنی jquery.foobar.js.

    افزودن یک متد

    با گسترش شی jQuery یک یا چند متد بسازید:

    jQuery.fn.foobar = function() {
    // do something
    };
    برای دسترسی به این متد از این کد استفاده می کنیم:

    $(...).foobar();

    تنظیمات پیش فرض

    تنظیمات پیش فرض را بنویسید که توسط کاربر قابل تغییر است، مثلا:

    jQuery.fn.foobar = function(options) {
    var settings = jQuery.extend({
    value: 5, name: "pete", bar: 655
    }, options);
    };
    برای صدا زدن پلاگین بدون option ها و با استفاده از مقادیر پیش فرض:

    $("...").foobar();
    یا با چند پیش فرض:

    $("...").foobar({ value: 123, bar: 9 });


    مستند سازی

    اگر پلاگین خود را منتشر می کنید، باید همراه ان چند مثال و مستندات ارایه کنید.



    حالا که با اصول ساخت پلاگین اشنا شدید اجازه دهید از ان استفاده و یک پلاگین بسازیم.



    پلاگین checkbox
    هنگام دستکاری فرم ها با jQuery بیشتر کاربران نیاز به تیک زدن یا تیک برداشتن radiobutton ها و checkbox ها دارند. انها معمولا به این کد می رسند:

    $(":checkbox").each(function() {
    this.checked = true;
    this.checked = false; // or, to uncheck
    this.checked = !this.checked; // or, to toggle
    });


    هر گاه در کدتان یک each دارید می توانید سرراست انرا به صورت پلاگین بنویسید:

    jQuery.fn.check = function() {
    return this.each(function() {
    this.checked = true;
    });
    };
    الان می توان از پلاگین استفاده کرد:

    $(":checkbox").check();


    حالا می توانید هم برای uncheck() و هم برای toggleCheck() پلاگین بنویسید. در عوض پلاگین مان را طوری تغییر می دهیم که option بگیرد.

    jQuery.fn.check = function(mode) {
    // if mode is undefined, use 'on' as default
    var mode = mode || 'on';

    return this.each(function() {
    switch(mode) {
    case 'on':
    this.checked = true;
    break;
    case 'off':
    this.checked = false;
    break;
    case 'toggle':
    this.checked = !this.checked;
    break;
    }
    });
    };
    با نوشتن مقدار پیش فرض برای option ، کاربر می تواند option را حذف و یا یکی از مقادیر "on"، "off"، یا "toggle" را بفرستد. یعنی:

    $(":checkbox").check();
    $(":checkbox").check('on');
    $(":checkbox").check('off');
    $(":checkbox").check('toggle');
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    10 کاربرد Qt که تا به حال نمی‌دانستید!



    Lic






    هر کسی را که در کنفرانس SXSW پیدا می‌کردید به احتمال زیاد برنامه‌نویس بوده یا حداقل کسی بود که با کامپیوتر کار می‌کرد.
    این کنفرانس یک فستیوال موزیک، فیلم و سرگرمی است که هر سال در ماه مارس طی یک دوره ۱۰ روزه در شهر آستِن تگزاس برگزار می‌شود.
    در این کنفرانس سخنگویان و شرکت‌کنندگان ایده‌های خلاقانه خود در زمینه‌های نمایش فیلم، پخش موزیک و سرگرمی‌های مدیا را با دیگران به اشتراک گذاشته و ارائه دهند.
    با یکی از ۴۰۰ هزار برنامه‌نویس Qt که صحبت کنید به شما می‌گوید که کجاها می‌توان اثری از Qt پیدا کرد.
    ما این شانس را داشتیم که با یکی از آنها مصاحبه کنیم و ۱۰ کاربرد آن را در این مطلب به شما می‌گوییم.

    کاربردهایی که شاید حتی فکرش را هم نمی‌کردید:

    Spotify
    Spotify یک سرویس پخش موزیک پرطرفدار در اروپای غربی است. سازندگان Spotify توسعه برنامه خود را با لینوکس باکس انجام می‌دهند. بعد از اینکه آنها از عدم استفاده از سرویس‌های خود در دستگاه‌هایشان خسته شدند تصمیم گرفتند از چارچوب منعطف Qt برای نسخه لینوکس Spotify استفاده کنند.

    VLC Player
    VLC Player به عنوان یک پروژه آکادمیک طی دهه ۹۰ در فرانسه آغاز شد. این ویدئوپلیر که همه چیز را پخش می‌کند از همان ابتدا کار Qt بوده است و تا کنون میلیون‌ها بار دانلود شده است.

    Roku Set-top Box
    Netflix را می‌توانید در تلویزیون خود با کمک Roku Set-top Box و Qt تماشا کنید. Roku برای کاهش زمان ورود به بازار و بهره گرفتن از رابط کاربری قوی‌اش از Qt استفاده می‌کند.

    Autodesk Maya ۲۰۱۱
    Autodesk Maya یک نرم‌افزار گرافیک سه‌بعدی کامپیوتری است که جدیدترین نسخه‌اش توسط Qt بازنویسی شده است. Plug-inها هم توسط Qt ساخته شده است.


    Google Earth desktop
    بله! Google Earth هم توسط Qt نوشته شده است. یک بار که در Qt بنویسید می‌توانید برنامه‌هایتان را در ویندوز، لینوکس و Mac هم اجرا کنید.

    HP Envy printer
    اچ‌پی برای رابط کاربری صفحه لمسی چاپگرهای Envy نیز از Qt استفاده کرده است.

    German Air Traffic Control
    اگر تا به حال به آلمان پرواز کرده باشید به کمک Qt بوده است. خدمات ناوبری هوایی آلمان، از زمان ایجاد Qt حدود ۱ میلیون یورو و ۱۰۰ نفر نیروی کار در ماه صرفه‌جویی کرده است.

    DreamWorks
    سازنده کارتون انیمیشنی شِرِک و کله کدو (Mega mind) هم با ابزاری که از Qt استفاده می‌‌کنند، کارهایش را خلق می‌کند.

    Mathematica
    Wolfram Research برای ساختن نرم‌افزار Mathematica نیز از Qt استفاده می‌کند.

    ۳ کاربرد دیگر...
    سامسونگ برای کتاب‌خوان‌های الکترونیک و قاب عکس دیجیتالش نیز از Qt استفاده می‌کند. در برخی از دوچرخه‌های ورزشی هم از Qt استفاده می‌شود.
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    استفاده از کد QR (پاسخ سریع) برای انتشار بدافزار اندروید



    Lic






    سنجاي كتكار مدير دپارتمان فني تکنولوژی‌های کوییک‌هیل - نویسندگان بدافزار اندروید راهی جدید برای ارسال مخرب‌ها(malwares) به گوشي کاربران یافتند.

    این راه چیزی جز استفاده از کدهای مخرب Quick Response نمی‌باشد.

    کدهای QR) Quick Response) نوعی از بارکدهای ماتریکسی هستند که شامل داده‌های کدشده می‌باشند.

    از این بارکدخوان همچنین برای ذخیره اطلاعات آدرس‌های اینترنتی استفاده می‌شود.

    بیشتر مردم با استفاده از رایانه‌های شخصی به دنبال نرم‌افزارهای جدید برای دستگاه‌های دیجیتالی خود هستند.

    بنابراین به جای تایپ کردن کامل آدرس اینترنتی در مرورگر تلفن‌های هوشمند، معمولاً وب‌سایت‌ها دارای کدهای QR می‌باشند که به راحتی توسط گوشی موبایل اسکن می‌شوند.

    تروجان جدید در برخی سایت‌های آلوده که از کد QR‌ استفاده می‌کنند، یافت شده است.

    زمانی که کاربران کد QR را با استفاده از گوشی همراه خود اسکن می‌کنند، کد مربوطه آنها را به سایتی هدایت می‌کند که برنامه آلوده و تروجان را بر روی گوشی آنها نصب می‌کند.

    وقتی برنامه نصب شد، تروجان تعدادی پیامک به شماره‌های سرویس‌های ارزش افزوده ارسال می‌کند.

    این کار باعث می‌شود تا با انتقال مبالغی از سیم‌کارت به صاحبان شماره‌ی خاص، هزینه‌ی قابل توجهی به کاربر تحمیل شود.
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    نرم‌افزار Dynamics ERP مايکروسافت ارتقاء يافت



    Lic






    اين نسخه از نرم‌افزار جديد مايکروسافت با نام Microsoft Dynamics AX۶ شناخته مي‌شود و به گفته کارشناسان نياز به استفاده از کدهاي قابل تغيير براي شرکت‌هاي توسعه‌دهنده نرم‌افزار را کم مي‌کند. نسخه جديد اين نرم‌افزار به گونه‌اي ساخته شده است که با ديگر ابزارهاي مايکروسافت از جمله SQL Server و Microsoft Office سازگاري بيشتري دارد.
    هدف اصلي از ارائه اين نرم‌افزار افزايش همکاري‌ها با شرکت‌هاي خصوصي نرم‌افزاري(ISV) است تا بتوانند راهکارهاي خود براي Dynamics را با سرعت بيشتر و کيفيت بالاتر توليد کنند. هم‌اکنون بيش از ۱۰۰ شرکت خصوصي نرم‌افزار در حال آزمايش نرم‌افزار Dynamics AX ۶ هستند که در کنار آن‌ها تعداد زيادي از کارشناسان و متخصصان نرم‌افزاري نيز روي اين محصول تحقيق و بررسي مي‌کنند.
    دوگ کِنِدي، مدير مرکز Dynamics Partners در شرکت مايکروسافت در اين خصوص گفت: «تعداد زيادي از شرکت‌هاي خصوصي نرم‌افزاري که هم‌اکنون با ما همکاري مي‌کنند، راهکار‌هاي نرم‌افزاري خود را دارند و در بيشتر مواقع يک پلتفورم واحد را براي خود توليد مي‌کنند. ما با عرضه نسخه جديد نرم‌افزار خود شرايطي را فراهم کرده‌ايم تا امکان سازگاري تمامي اين پلتفورم‌ها با نرم‌افزارDynamics فراهم شود».
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    جنگ گوگل و برنامه‌نویسان آندروید


    Lic




    يكي از برنامه‌نويسان سيستم عامل آندرويد كه از عملكرد گوگل طراح اين سيستم عامل ناراضي است، اتحاديه‌اي به نام اتحاديه برنامه‌نويسان آندرويد تاسيس كرده و از ديگر برنامه‌نويسان اين سيستم عامل خواسته تا عليه گوگل اعتراض كنند.
    n00017264-b.jpg



    وي معتقد است كه نحوه مديريت گوگل بر بازار آنلاين آندرويد درست نيست و اقدامات اين شركت بر ضد افرادي است كه براي كاربران آندرويد نرم‌افزار و برنامه مي‌نويسند.

    اين افراد با راه اندازي يك وبلاگ اينترنتي از اينكه گوگل با برنامه‌نويسان آندرويد مانند كشاورزان جزء در سياره ديجيتال اختصاصيش برخورد مي‌كند به شدت انتقاد كرده و هشدار داده‌اند كه در صورت تداوم اين وضعيت علاقه‌اي به همكاري با گوگل ندارند و اين شركت بايد سياست‌هاي منفعت طلبانه‌اش را در برخورد با برنامه‌نويسان ثالث تغيير دهد.

    آنها تهديد كرده‌اند كه اگر گوگل سهم لازم را از سود فروش برنامه‌هاي طراحي شده توسط آنان پرداخت نكند، ترجيح مي‌دهند براي پلاتفورم‌ها و سيستم عامل‌هاي ديگر همراه برنامه‌ريزي كنند و عطاي همكاري با گوگل را به لقايش ببخشند.

    در حال حاضر گوگل بعد از كسر ۳۲ درصد ماليات سود جزيي را از محل فروش هر برنامه به نرم‌افزارنويسان ثالث پرداخت مي‌كند كه اين مساله موجب اعتراض گسترده آنان شده است.

    كارشناسان معتقدند اين اقدامات گوگل به نفع ديگر شركت‌هاي طراح سيستم‌هاي عامل مانند اپل، مايكروسافت و پالم تمام خواهد شد.
     
    وضعیت
    موضوع بسته شده است.

    برخی موضوعات مشابه

    بالا