آیا استفاده از فیلترشکن جرم است؟

این روزها اگر نگاهی به برنامه‌های رایگان با بیشترین دانلود گوگل‌پلی بیندازید با لیستی از انبوه فیلترشکن‌های رایگان مواجه می‌شوید که کاربران به‌خاطر دور زدن فیلترینگ آنها را دانلود می‌کنند، فارغ از این ماجرا که این بازار داغ فیلترشکن‌ها چقدر خطرناک است (که قبلا در این گزارش به آن پرداختیم) این پرسش مطرح است که آیا بر اساس قانون کشور، استفاده از برنامه‌هایی که کاربرد دور زدن فیلترینگ را دارند جرم تلقی می‌شود؟

جرم استفاده از فیلتر شکن

«خرید و فروش فیلترشکن جرم است اما استفاده از آن جرم نیست.» پوریا قهرمانی، کارشناس حقوقی و وکیل دادگستری با گفتن این موضوع به دیجیاتو ابعاد جالبی از مبحث فیلترشکن را برایمان باز می‌کند و می‌گوید:

«در هیچ یک از قوانین کشوری ورود به سایت‌ها یا عضویت در سایت‌ها و اپلیکیشن‌های مختلف مانند فیس‌بوک و توییتر و امثال آن‌ها جرم تلقی نمی‌شود و از همین رو وزیر ارتباطات نیز تاکید دارد که فعالیت ایرانیان در توییتر جرم نیست. تاکنون در دستگاه قضایی پرونده‌ای با عنوان مجرمانه‌ استفاده از فیلترشکن به صدور رای دادگاه منجر نشده است.

در قانون موجود در کشور برای هیچ یک از اقداماتی که گفته شد مجازاتی پیش‌بینی نشده اما پس از تصویب قانون جرایم رایانه‌ای در سال ۱۳۸۸ قانونگذار کمی سختگیرانه‌تر عمل کرد و دسترسی به برخی سایت‌های فیلترشده را جرم‌انگاری کرد که فعلا تلگرام در بین آنها نیست اما شاید روزی در این لیست قرار گیرد.»

قهرمانی به سخنرانی ریاست جمهوری درباره استفاده رایج مردم از تجهیزات ماهواره‌ای اشاره می‌کند و باور دارد که دولتمردان می‌دانند برخی قوانین بعد از گذشت سال‌ها متروک می‌شوند و با وجود تصویب شدن نمی‌توان صد درصد، اجرایی شدن آنها را تضمین کرد:

«ریاست جمهوری پشت تریبون رسمی می‌گوید که آیا واقعا ماهواره جمع شده است؟ آیا باید حس کنیم که رییس جمهور می‌گوید مملکت قانون ندارد؟ خیر، اما قانون قصد دارد موضوعی را جرم تلقی کند که نمی‌تواند آن را صد درصد کنترل کند، از همین رو محدود کردن قاطعانه به‌طور حتم چندان جواب نخواهد داد. در این حالت قانونگذار هوشمندانه نگاه دیگری به مساله می‌اندازد و بخشی از آن را ممنوع می‌کند که قابل اغماض است.»

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

جرم استفاده از فیلتر شکن

او می‌گوید که پلتفرم‌ها خودشان محتوا نیستند که بخواهیم از آنها به عنوان محتوای مجرمانه یاد کنیم بلکه محتواها توسط افراد تولید می‌شوند که گاهی منجر به قانون‌شکنی می‌شود:

«اگر قانون، استفاده از فیلترشکن و وارد شدن به این سایت‌ها را قانون‌شکنی عنوان می‌کرد، آن وقت هر کودکی که این کار را انجام می‌داد خود را یاغی و قانون‌شکن می‌دانست و قبح و قداست قانون می‌ریخت. قانونگذاری برای سایبر در همه جا وجود دارد و به عنوان مثال امریکا از سال ۲۰۰۰ به فعالیت در فضای مجازی رسمیت داده و تاکنون ۲۳۰ قانون پیرامون آن به ثبت رسانده است که برخی از آنها هم به همین هوشمندی قانون‌گذاری در کشور ما هستند.»

از نظر این کارشناس حقوقی، قوانین به‌ویژه قوانین کیفری باید جامعه پذیر باشد و اگر قانون همین امروز استفاده از تلگرام و فیلترشکن را جرم معنا کند با آگاهی و علم بر اینکه حداقل طبق آمار خود دولت ۳۹ میلیون‌ نفر هنوز در این بستر فعالیت را دارند تبدیل به مجرم کرده و اجرای این حکم نشدنیست:

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

«سامان سلطانی» کارشناس حقوقی به ماجرای غیرقانونی بودن فیلترشکن در کافی نت‌ها اشاره می‌کند و آن را هم دارای وجهه قانونی نمی‌داند. او به دیجیاتو می‌گوید:

«بر اساس ماده ۲۸ قانون آیین دادرسی کیفری، ضابطان دادگستری مامورانی هستند که تحت نظارت و تعلیمات دادستان در کشف جرم، حفظ آثار و علایم و جمع‌آوری ادله وقوع جرم، شناسایی، یافتن و جلوگیری از فرار و مخفی شدن متهم، تحقیقات مقدماتی، ابلاغ اوراق و اجرای تصمیمات قضایی، به موجب قانون اقدام می‌کنند. همچنین ماده ۲۹ این قانون انواع ضابطان را معرفی کرده است که در هیچ یک از آنها نام پلیس و نیروی انتظامی آورده نشده است.»

جرم استفاده از فیلتر شکن

 

این کارشناس حقوقی عقیده دارد که اگر مجرمانه بودن استفاده از فیلترشکن در قانون صریحا تعریف نشده است، پس نمی‌توان برای آن مجازات تعیین یا آن را ممنوع کرد، چون اصل بر آزادی اطلاعات و آزادی استفاده از وسائل تکنولوژیکی است: «از چنین مسائلی نمی‌توان در برابر یک قانون دائمی یاد کرد و یک حکم کلی راجع به موضوع صادر کرد.»

سلطانی تاکید دارد که در قانون به طور مشخص مطرح نشده که استفاده از فیلترشکن جرم است و بر این اساس کاربرانی که از سایت‌های فیلتر شده استفاده می‌کنند مجرم نیستند:

«ماده ۲۱ قانون قضایی مربوط به کسانی است که محتوای خلاف قانون تهیه می‌کنند، نه اشخاصی که این مطالب را به نحوی از انحاء می‌بینند یا از آن‌ها استفاده می‌کنند. به طور کلی به نظر من ایجاد ممنوعیت در قرن بیست و یک و عصر ارتباطات نه تنها موثر نیست بلکه موجب ترغیب افراد به ورود به این سامانه‌ها و شبکه‌های اجتماعی می‌شود.»

جرم استفاده از فیلتر شکناکثر کارشناسان حقوقی باور دارند که ایجاد ممنوعیت قانونی در جهت دسترسی به اطلاعات و نیازهای روز صرفا به دور زدن قانون و باب شدن قانون شکنی در جامعه می انجامد و به همین دلیل قانونگذار را هوشمندتر از آنکه خط بطلان را دور این مسائل بکشد معرفی می‌کنند. آنها باور دارند که دولت و قانون باید بتوانند در کنارهم شرایطی را فراهم کنند که در این بحبوحه بازار اطلاعات، شهروندان به درجه‌ خوبی از آگاهی برسند و اجباری آنها را تهدید نکند.

نوشته آیا استفاده از فیلترشکن جرم است؟ اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

چگونه از Trello استفاده کنیم؟

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

چرا که شاید در نگاه اول استفاده از Trello، کار چندان ساده‌ای نباشد و اغلب افراد با اولین نگاه‌ به آن گیج می‌شوند و شاید اصلا متوجه نشوند که اوضاع از چه قرار است. به همین منظور ۱۰ سوالی که ممکن است حین استفاده از Trello برایتان پیش‌ بیاید را لیست کردیم و یک به یک به آن‌‌ها پاسخ می‌دهیم.

۱) چطور یک کارت را در Trello سریع‌تر ویرایش کنیم؟

Trello

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

فقط کافیست کلید E را روی کیبورد بفشارید تا پنجره ویرایش کارت برایتان باز شود. با باز شدن این پنجره در اولین قدم فقط می‌توانید نام کارتی که در حال ویرایشش هستید را تغییر دهید. البته نیازی هم به گفتن نیست که حین ویرایش کارت‌ها یک ساید بار جمع و جور مفید هم در اختیارتان قرار می‌گیرد که می‌توان با استفاده از گزینه‌های موجود در آن، کارت‌ها را بسته به نیاز آن لحظه ویرایش کرد.

۲) چگونه از طریق ایمیل در Trello کارت بسازیم؟

Trello

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

ایمیل آدرس مورد بحث نیز در منو کشویی بورد‌ها قرار گرفته که می‌توان آن را با کلیک روی Show Menu بیرون کشید. سپس فقط کافیست به ترتیب روی More و Email-to-board Settings کلیک کنید تا ایمیل فعلی بوردی که می‌خواهید به آن ایمیل بزنید در مقابلتان ظاهر شود.

ایمیل بورد مورد نظر را بردارید و به سراغ سرویس ایمیلی که از آن استفاده می‌کنید بروید. حالا برای ساخت یک کارت با استفاده از ایمیل، در بخش موضوع نام کارت و در بخش توضیحات، محتوایی که می‌خواهید در کارتتان ظاهر شود را درج کنید.

۳) چطور برای کارت‌ها کاور بگذاریم؟

trello

یکی از ساده‌ترین راه‌ها برای اینکه بتوانیم یک سری کارت مهم را همیشه دم دست نگه داریم تا پیدا کردنشان هم راحت‌تر شود، گذاشتن کاور یا همان عکس برای آن‌هاست. خوشبختانه گذاشتن کاور برای کارت‌ها هم اصلا کار پیچیده‌ای نیست و فقط کافیست تا تصویر مورد نظرتان را از محیط دستکتاپ خود بگیرید و آن را در کارت مورد نظر بیندازید.

۴) چطور برچسب کارت‌های Trello را حذف کنیم؟

Trello

برای پاک یا آنلینک کردن برچسب‌ها در Trello ابتدا باید به بخش Edit Labels مراجعه کنید. برای رسیدن به Edit Labels نیز دو راه پیش رویتان قرار دارد. یا می‌توانید ماوستان را روی کارت‌ها ببرید و با استفاده از آیکون مداد، روی Edit Labels کلیک کنید، یا به سراغ مسیر دوم، یعنی Show Menu > More > Labels بروید.

بالاخره زمانی که وارد بخش Edit Labels شدید، دوباره روی آیکون مداد موجود در کنار برچسب‌های مختلف کلیک کنید. با این‌ کار به منو ویرایش برچسب‌ها وارد می‌شوید که می‌توانید با کلیک روی کلید Delete برچسبی که دیگر به آن‌ احتیاجی نیست را پاک کنید.

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

۵) چگونه یک کارت را در Trello حذف کنیم؟

Trello

شاید عجیب‌ترین چیزی که در Trello شاهدش هستیم، محل قرارگیری گزینه حذف کارت‌ها باشد. این گزینه از آن دست چیزهاییست که باید همیشه دم دست باشد تا کاربر در هر لحظه خیلی راحت و سریع بتواند از آن استفاده کند.

اما متاسفانه Trello آن را در گوشه‌ای پنهان کرده و همین هم باعث شده که تازه کار‌ها نتوانند خیلی راحت پیدایش کنند. با این حال، اگر قصد پاک کردن یک کارت را داشته باشید، فقط کافیست روی کارت مورد نظرتان کلیک کنید تا پنجره مربوط به آن باز شود.

حالا به سراغ Share and more بروید و با کلیک روی آن وارد منو More شوید. اگر خوب دقت کنید، در پایین این پنجره گزینه Delete را خواهید دید که می‌توانید با کلیک روی آن، کارت مورد نظر خود را حذف کنید.

۶) چطور از یک کارت، یک لیست یا حتی یک برد نسخه‌ دیگری بسازیم؟

Trello

شاید ندانید ولی خیلی راحت می‌شود که کارت‌ها را درون یک بورد یا چندین بورد دیگر کپی کرد. جالب این جاست که بدانید می‌شود اینکار را با محدودیت‌های بیشتر روی یک لیست‌ و حتی یک بورد‌ نیز انجام داد. پس بیایید ببینیم چطور می‌شود از المان‌های اصلی Trello یک نسخه دیگر ساخت:

چطور یک کارت را در Trello کپی کنیم؟

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

چطور یک لیست را در Trello کپی کنیم؟

گزینه Copy List هم در منو List Actions هر لیست جای گرفته که می‌توان با کلیک روی آیکون سه نقطه موجود در کنار نام لیست‌ها به آن دست پیدا کرد. با ورود به List Actions و کلیک روی Copy List‌، در عرض ثانیه یک لیست مشابه دریافت خواهید کرد که می‌توانید جای آن را با کشیدنش به اطراف، جا به جا کنید.

چطور یک بورد را در Trello کپی کنیم؟

هر بوردی هم در Trello دارای گزینه‌ای به نام Copy Board ‌است که در منوی کناری آن مخفی شده. با کلیک روی این گزینه، خیلی راحت می‌توانید یک نسخه دیگر از بورد خود داشته باشد؛ البته با نامی متفاوت.

۷) چگونه کارت‌ها را در Trello مرتب کنیم؟

Trello

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

دسترسی به این گزینه‌ها هم فقط از طریق List Actions هر لیست ممکن است. به طوریکه فقط کافیست به محض باز شدن منو List Actions، روی Sort By کلیک کنید تا گزینه‌های مورد بحث در اختیارتان قرار بگیرند.

۸) چطور لیستی از آیتم‌‌های مختلف را به کارت تبدیل کنیم؟

Trello

فکر کنید یک صفحه اکسل دارید که حاوی ۲۰ نام مختلف است و می‌خواهید هر یک از این نام‌ها تبدیل شوند به کارتی مجزا در Trello. درست است که توضیح دادن این موضوع کمی سخت است، اما انجام این کار آنقدرها که فکرش را می‌کنید پیچیده نیست.

چرا که فقط کافیست تمام المان‌هایی که در آن لیست حضور دارند را یک جا کپی کنید و آن‌ها را در کارتی جدید بریزید. با کلیک روی کلید Add، دو گزینه Create 20 Cards و Just One Card انتظارتان را می‌کشند که با کلیک روی اولی می‌توانید ۲۰ کارت داشته باشید که هر یک به نامی از آن لیست اختصاص داده شده.

۹) چگونه تصویر پس‌زمینه بورد‌های Trello را تغییر دهیم؟

Trello

یکی از جذابیت‌های Trello نیز این است که به کاربرانش اجازه می‌دهد تا تصویر پس‌زمینه بوردهایشان را تغییر دهند. این ویژگی خوبی است و باعث می‌شود تا حین کار کردن با Trello احساس بهتری داشته‌ باشیم و از محیط آن لذت بیشتری ببریم.

برای این کار فقط کافیست به منو کناری بورد خود بروید و روی Change Background کلیک کنید. با پیمودن این مسیر دو گزینه در اختیارتان قرار می‌گیرد که با یکی می‌توانید یک تصاویر پس‌زمینه ساده و تک رنگ برای بورد خود بگذارید و با دیگری امکان انتخاب عکسی جذاب از آرشیو بزرگ Unsplash ممکن می‌شود.

۱۰) چطور کارت‌ها را در Trello سریع‌تر پیدا کنیم؟

با انتشار به‌روزرسانی تازه Trello، حالا می‌توانید المان‌های مهمی همچون منشن‌ها، بورد‌های ستاره‌‌دار و جزئیات تازه برخی کارت‌ها را یک‌جا در صفحه Home ببینید. پیدا کردن باقی چیز‌ها هم خیلی سخت نیست و فقط کافیست بدانید، چیزی که دنبالش هستید برای کدام بورد است.

چرا که در این صورت، می‌توانید با بیرون کشیدن منوی کشویی هر بورد به سراغ Filter Cards بروید و نام چیزی که دنبالش هستید را در سرچ‌بار آن، جستجو کنید. جالب اینجاست بدانید، که از طریق سرچ‌بار موجود در صفحه Home نیز می‌توانید دایره جستجوهای Trello را گسترده‌تر کنید و با تایپ یک عبارت در آن، تمام بوردهایی که دارید را برای دریافت نزدیک‌ترین نتیجه ممکن زیر و رو کنید.

نوشته چگونه از Trello استفاده کنیم؟ اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

سوتی یک کدنویس

کد

داشتم وبگردی میکردم .یک دفعه با یک پامپ آپ شوت شدم توی یک وبلاگ میهن بلاگی . کمی صبر کردم (من همیشه پامپ آپ هارو می بندم ولی این دفعه گفتم بزار بمونه) . بعد یک دفعه چشمم افتاد به یک باکس که نوشته بود : « کد زیارت آل یاسین » کدو توی نوت پد ++ کپی کردم و چشمم افتاد به یک سوتی که خیلی خفن بود. اول کدو میزارم و بعد سوتی رو توضیح میدم.

کد :

 

و میتونید سوتی رو در خط اول مشاهده کنید 🙂

همون طور که میدونید (یا نمیدونید) ما برای فراخوانی یک فایل جاوا اسکریپت ابتدا آن را در یک فضای وب آپلود کرده (یا درصورتی که کار ما در هاست باشد در هاست آپلود کرده) و پس از آن با استفاده از کد زیر آن را در بخش هد صفحه قرار میدهیم.

 

ولی در اینجا آدرس کامپیوتر داده شده است ! و کدنویس انتظار دارد که این فایل دانلود شود !

و سوتی های دیگری نیز وجود دارند ! مثلا تگ ها به درستی قرار نگرفته اند !

امیدوارم دیگه از این سوتی ها نبینم.

نوشته سوتی یک کدنویس اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

۵ کتاب پیشنهادی بیل گیتس برای تابستان امسال

همه می‌دانند که بیل گیتس از آن دسته افرادی است که هر لحظه از زندگی‌اش را به کتاب خوانی گذرانده و تقریبا کتابی نیست که نخوانده باشد. بنیان‌گذار مایکروسافت گهگاه در بلاگ شخصی خود درباره‌ کتابهای مورد علاقه‌اش مطالبی می‌نویسد. بر همین اساس به تازگی ۵ کتاب پیشنهادی بیل گیتس برای تابستان امسال در مطلبی منتشر شده که می‌تواند در انتخاب بسیاری از کاربران تاثیر بگذارد.

این کتاب‌ها که شامل بیوگرافی، یادداشت، خاطرات شخصی و برندگان جایزه‌‌های مختلف می‌شوند، برخلاف موضوعات سنگینشان بسیار مناسب و ساده نوشته شده‌اند. به طوری که بیل گیتس از خواندن این ۵ کتاب لذت زیادی برده است. ۵ کتاب پیشنهادی بیل گیتس برای تابستان امسال عبارتند از :

۵. لینکولن در باردو (Lincoln in the Bardo)

این کتاب «George Saunders» که موفق شده جایزه ادبی من بوکر را از آن خود کند، یک رمان تاریخی است که به غم و اندوه آبراهام لینکولن برای از دست دادن فرزندش اختصاص دارد. بیل گیتس درباره این کتاب می‌گوید:

«من فکر می‌کردم که همه چیز را درباره‌ی لینکولن می‌دانم اما این کتاب باعث شد که متوجه اشتباهم بشوم و اطلاعات جدیدی درباره‌ی این قسمت از زندگی‌اش بدست آورم.»

 

 

۴. همه چیز به دلیل خاصی رخ می‌دهد (Everything Happens for a Reason)

این کتاب توسط «Kate Bowler» تاریخدان دانشگاه دوک نوشته شده و خاطرات شخصی وی را پس از مبتلا شدن به سرطان روده به قلم می‌کشد. او سعی می‌کند که متوجه شود چرا این اتفاق برایش رخ داده است. گیتس خاطرنشان نموده این خاطرات موفق شده در عین حال هم ناراحت کننده باشد و هم لبختد بر لبان خواننده بیاورد.

 

 

 

۳. داستان پیشینه: تاریخچه‌ی بزرگی از همه چیز (Origin Story: A Big History of Everything)

این کتاب بر اساس یک سری دروس آنلاین نوشته شده که جهان هستی را از ابتدای تشکیلش یعنی ۱۳.۸ میلیارد سال قبل تا روزگار مدرن امروز به رشته‌ی تحریر در می‌آورد. بنیان‌گذار مایکروسافت معتقد است که این کتاب، مورد مناسبی برای شروع مطالعه در زمینه‌ی تاریخ هستی است و توانسته به زبانی ساده مسائل جالب و گسترده‌ای را بررسی کند.

 

 

۲. واقعیت (Factfulness)

«Hans Rosling» یک آماردان و فیزیکدان سوئدی بود که سال گذشته فوت شد اما پیش از آن با فرزند و عروسش برای نوشتن این کتاب همکاری نمود. کتاب واقعیت به بیان کردن کلی حقیقت درباره‌ی دنیا اختصاص دارد و مسائلی که نیاز است در این دنیا ارتقا بیابد را به صورت کلی مطرح می‌کند.

 

 

 

۱. لئوناردو داوینچی (Leonardo da Vinci)

«Walter Isaacson» بیوگرافی نویس معروفی است که تا به حال زندگی نامه‌های اشخاص معروفی نظیر بیل گیتس، آلبرت اینشتین و بنجامین فرانکلین را نوشته است اما این بار به سراغ مرد رنساس رفته تا ارتباط پیوسته وی با هنر و علم را به تصویر بکشد. به گفته‌ی گیتس، نویسنده توانسته رشته‌های مختلفی از زندگی داوینچی را با یکدیگر پیوند داده و خارق العاده بودن او را در ۶۰۰ صفحه تلویحاً به نمایش بگذارد.

 

 

 

 

 

گردآوری توسط ایده طلایی

جایزه باگ یابی ۳۶ هزار دلاری گوگل به جوانی اروگوئه ای رسید

گوگل به تازگی جایزه باگ یابی خود را به یک جوان اروگوئه ای اهدا کرده. این جایزه ۳۶ هزار دلاری برای یافتن باگی در یکی از سیستم های گوگل پرداخت شده است.

جایزه مذکور در برنامه «Bug bounty program» پرداخت شده که بر اساس آن به افرادی که باگ های خاصی را پیدا کرده و گزارش کنند، جوایز نقدی اهدا می شود. باگی که «ایزِگیِل پِریرا» کشف کرده به او امکان تغییر در سیستم های داخلی گوگل را می داده است.  این پنجمین باری است که باگ های گزارش شده توسط پریرا مورد قبول گوگل واقع شده و البته این مورد بیشترین سود را برای او داشته است.

پِریرا در ۱۰ سالگی صاحب یک کامپیوتر شد و از سن۱۱ سالگی به کلاس های مقدماتی برنامه نویسی رفت. در سال های پس از آن نیز یادگیری برنامه نویسی را ادامه داد.در سال ۲۰۱۶ پس از اینکه در مسابقه کد نویسی برنده شد، گوگل او را به مقر خود در کالیفرنیا فرا خواند.

جایزه باگ

پریرا که جایزه باگ یابی ۳۶ هزار و ۳۳۷ دلاری را برنده شده، این باگ را در اوایل سال جاری میلادی یافته. با این حال گوگل اکنون که این مشکل را رفع کرده، خبر از این باگ داده است. پریرا پیش از این در تیر تا مرداد ماه سال ۹۶ نیز جایزه ای ۱۰ هزار دلاری را برنده شده بود. پریرا اکنون به تحصیل در رشته کامپیوتر در دانشگاه مشغول است.

او در نهایت امیدوار است مدرک کارشناسی ارشد خود را در رشته امنیت کامپیوتری دریافت نماید. البته همچنان در وقت های آزاد به باگ یابی ادامه خواهد داد. پریرا اکنون در تالار مشاهیر گوگل رتبه ۱۲ را به خود تخصیص داده است.

گوگل در سال ۲۰۱۷ برای یافتن باگ ها مبلغ ۲٫۹ میلیون دلار را به ۲۷۴ محقق مختلف اهدا کرده بود. بیشترین مبلغ این جوایز ۱۱۲ هزار و ۵۰۰ دلار بود.

تماشا کنید: پلان؛ آشنایی با حفره های امنیتی اسپکتر و ملتداون در پردازنده ها

نوشته جایزه باگ یابی ۳۶ هزار دلاری گوگل به جوانی اروگوئه ای رسید اولین بار در دیجیاتو پدیدار شد.

 

گردآوری توسط ایده طلایی

AMP چیست و چرا باید از آن استفاده کنیم ؟

در این مقاله قصد داریم شما را  با مفهوم AMP  آشنا کنیم. اگر تابحال در تلفن خود جستجوی گوگل  انجام داده باشید،حتما علامت های کنار برخی نتایج را دیده اید. می خواهیم شما را با این علامت ها و لزوم استفاده از آن در وب سایت خود آشنا کنیم.

AMP  برگرفته از  Accelerated Mobile Pages و یک برنامه متن باز گوگل است که با هدف ایجاد اینترنت سریع و راحت تر برای موبایل تولید شده است. در واقع AMP راه حلیست که گوگل برای مقالات سریع فیسبوک  ارائه کرده، بدین معنی که پلتفرمی در اختیار شرکت های رسانه ای می گذارد تا به کاربران خود امکان خواندن سریع مقالات بدون نیاز به خارج شدن از فیسبوک را بدهند.

با استفاده از AMP ، بلافاصله نتایج جستجو به کاربران نمایش داده می شود. به دلیل اینکه بخش قابل توجهی از محتوای اصلی هر صفحه کنار گذاشته می شود و صفحه برای نمایش در موبایل بهینه می گردد.

با وجود اینکه روی آوردن کاربران به استفاده ازAMP در ابتدا پاسخی به حرکت رقبایشان بود تا سرعت بهتری به سایت بدهند و از حریفان خود عقب نیفتند  اما ما را متوجه نکته مهم دیگری هم می کند و آن تغییر جهان در نوع استفاده از اینترنت است. سال گذشته، برای اولین بار در تاریخ ، درصد بیشتر استفاده از اینترنت از طریق مرورگرهای کامپیوتر انجام نشده. هم اکنون طبق آمار StatCounter، ۵۱٫۳ درصد از کل ترافیک وب از مرورگرهای تلفن همراه می آید. جالب است بدانید که با زیاد شدن تعداد تلفن تبلت های هوشمند این رقم در حال افزایش است.

امروز مثل بیشتر مردم جهان مشتریان شما هم به جای کامپیوتر با استفاده از موبایل خود آنلاین می شوند و این شما هستید که باید وب سایت خود از طریق موبایل به آنها عرضه کنید.

اگر موقع طراحی وب سایت فکری برای این موضوع نکردید اکنون باید به فکر بهینه سازی آن برای نمایش در صفحات موبایل باشید. حتما در مسیر بهینه سازی وب سایت خود AMP را در نظر بگیرید.

چرا باید از AMP استفاده کنید؟ چون سرعت لود وبسایت شما را بسیار زیاد می کند.

حدس بزنید یک کاربر مویایل تقریبا چقدر برای لود شدن یک صفحه صبر می کند؟ ۱٫٫۲٫٫۳٫٫ فقط سه ثانیه.

به گفته معاون جستجوی گوگل، David Besbris ، اگر کاربر فقط سه ثانیه منتظر لود شدن صفحه بماند، ۵۳ درصد از جستجوهایی که از طریق موبایل انجام میگیرد، نا تمام رها می شوند.

یعنی در همین زمانی که این جمله را میخوانید تعدادی کاربر از سایت شما خارج می شوند. طبق گفته Beris که پروژه AMP را مدیریت می کند، AMP زمان لود صفحات را یک ششم می کند. (سرعت شش برابر سریعتر می شود).

ظرف دو سالی که شروع به انجام این پروژه کردیم تعداد سایت های استفاده کننده از AMP به بیش از ۲۵ میلیون رسیده است که این سایت ها بالغ بر ۴میلیارد صفحه AMP منتشر کرده اند. و نه تنها شمار این صفحات در حال افزایش است بلکه سرعت آنها هم روز به روز بیشتر می شود. جالب است بدانید زمان میانگین لود شدن یک صفحه AMP از سرچ گوگل کمتر از نیم ثانیه است.

Washington Post یکی از شرکای اولیه ی AMP اذعان می کند که محتوای  AMP برای خوانندگانش ۸۸ درصد سریعتر از محتوای غیر AMP لود می شود.

AMP مختص دسته خاصی از کاربران نیست و باعث افزایش سرعت برای همه آنها خواهد شد

به نمودار آماری زیر دقت کنید:

این نمودار سهم بازار از موتور های جستجو را نشان می دهد. خط آبی گوگل است. پس به وضوح اهمیت گوگل در موفقیت سایت خود  را در این نمودار می بینید.

هدف اصلی گوگل تضمین کارکرد AMP بدون وابستگی به نوع موبایل یا نوع سیستم عامل است. همچنین نمی خواهد AMP فقط برای صفحات  ساده موبایل مفید باشد بلکه محتواهای سنگین بخش زیادی از آن را تشکیل می دهد.

گوگل هنگام راه اندازی این پروژه در وبلاگ خود اینطور عنوان کرد که: ” ما می خواهیم صفحات وبی که دارای محتوای سنگین مثل ویدئو، انیمیشن و عکس هستند هم در کنار تبلیغات هوشمند گوگل بلافاصله لود شوند. ”

“همچنین قصد داریم کدی بنویسیم که در چندین پلتفرم و دستگاه مختلف کار کند، بنابراین محتوا در همه جا بلافاصله نمایش داده خواهد شد، بدون وابستگی به اینکه چه مدل تلفن ، تبلت یا موبایلی استفاده می کنید. “

همه آنچه گفتیم نشانگر اینست که AMP یک تجربه خوب برای هر کاربریست. چون نه تنها سرعت لود صفحه را بالا می برد بلکه صفحات سایت را طوری تنظیم می کند که در تمام دستگاه ها به خوبی نمایش داده شود.

تاثیرات AMP

وقتی AMP شروع به کار کرد، Richard Gingras، سرپرست ارشد محصولات اجتماعی و خبری گوگل  به AdAge اعلام کرد، AMP در رتبه بندی جستجوی موبایل عامل موثری نخواهد بود.

AMP تاثیر زیادی در رتبه بندی جستجو نخواهد داشت، چون عوامل دیگر ( رتبه بندی موتور جستجو) هم باید در کنار آن بهتر شوند.”

اما از طرفی Gingras به این نکته اشاره کرد که AMP   در سرعت تاثیرگذار خواهد بود.

“اگر دو مقاله داشته باشیم که یکی از این مقالات به تمام خصوصیات AMP به جز سرعت امتیاز دهد و مقاله دوم تنها به سرعت بپردازد، ما روی دومین مقاله تاکید خواهیم کرد چون سرعت فاکتوریست که برای کاربران بسیار پر اهمیت است”.

 

جالب است بدانید گوگل در سال ۲۰۱۵ آپدیتی برای الگوریتم خود به نام ” Mobilegeddon” منتشر کرد، که باعث شد موبایل فرندلی بودن(mobile friendly )یک صفحه اهمیت پیدا کند چون اگر صفحات سایت موبایل فرندلی طراحی شوند در رتبه بندی آنها در جستجو تاثیر خواهد داشت.

یکی از اهداف مهم گوگل که روی آن بسیار کار کرده، ساده بودن فعالسازی AMP است ،به همین منظور کد را از نوع باز یا open-source نوشته و آموزش هایی هم برای انجام این بهینه سازی فراهم کرده است.

نتیجه اینکه: صفحاتی که در آنها AMP فعال باشد در سرچ های گوگل در موبایل رتبه بالاتری قرار می گیرند.

کاربران  به سایت شما می آیند، می مانند و پول خرج می کنند

برطبق مقاله ای که به زودی توسط گوگل منتشر می شود، AMP از راه های زیادی می تواند به ما کمک کند.

“مطالعات نشان می دهد، AMP باعث افزایش ۱۰ درصدیه ترافیک سایت می شود همچنین مراجعین ۲ برابر قبل روی صفحات سایت وقت می گذارند. در مورد سایت های تجاری،صفحات AMP افزایش ۲۰ درصدی فروش، نسبت به صفحات غیر AMP داشتند. ”

نتیجه اینکه کاربران بیشتر به سایت های AMP مراجعه می کنند، وقت بیشتری در این سایت ها صرف می کنند و با احتمال بیشتری از آنها خرید می کنند.

 

AMP  بی نقص نیست

AMP برای همه قانع کننده نبوده، بلکه این ایده گوگل مخالفانی هم دارد، مثلا Scott Gilbertson اعتقاد دارد، کوچک کردن تگ های مورد قبول HTML ، باعث بی مفهوم و خنده دار شدن سایتهای اینترنتی می شود، او می گوید:

AMP واقعا چیست، راهی برای سوء استفاده گوگل از وب سایت شما! این کار محتوای سایت شما را از بین می برد و تمام آثار باقیمانده از اعتبار شخصی را از سایت حذف می کند”

یا مثلا ergey Grybniak  از Search Engine Journal  می گوید: AMP می تواند در آمد حاصل از آگهی را تحت تاثیر قرار داده و دسترسی تحلیلی را از بین ببرد”.

برخی در صنعت SEO اعتقاد دارند، با تکیه بر کش گوگل، AMP ترافیک سایت ها را رد می کند.

باید از AMP استفاده کنم؟

این سوال کلیدی است. اگر صاحب یک سایت یا وبلاگ یا  یک بخش خبری هستید، استفاده از AMP تاثیر چندانی نخواهد داشت. AMP به شما اجازه می دهد تا اطلاعات خود را به سرعت منتقل کنید و آنها را در اخبار گوگل نمایش می دهد.

باوجود اینکه اطلاعات مبنی بر استفاده سایت های تجاری از AMP  و موفقیت آنها کم بوده ، گوگل اینطور گزارش می کند که این پروژه فوائد تجاری هم داشته است.

در نتیجه ، پاسخ  ما به این سوال کلیدی این است که حداقل بخشی از سایت خود را با AMP آزمایش کنید، به خصوص بخشی که در آن رقبای شما از این فن آوری استفاده می کنند.

 

برگرفته از [digitalmarketinginstitute.com]

نوشته AMP چیست و چرا باید از آن استفاده کنیم ؟ اولین بار در ایران سرور پدیدار شد.

گردآوری توسط ایده طلایی

زبان برنامه نویسی Dart

dart

سلام امروز هم سراغ زبان برنامه نویسی جدیدی رفتم دارت یا Dart .

در ابتدای ورود خودش رو جایگزینی برای جاوا اسکریپت معرفی کرده .

در حال حاظر به نسخه ۲ به روز شده. توسط گوگل توسعه داده میشه .

وب, اندروید, آی او اس رو پشتیبانی میکنه . آی دی ای های زیر هم پشتیبانیش میکنن :

Visual Studio Code, Intellij IDE, Android Studio, … .

این زبان شی گرا, برپایه کلاس و سینتکسی مشابه c داره .

در ابتدای ورود قرار بوده پیچیدگی هایی داشته باشه تا بتونه قدرت نمایی کنه و انتقاد های زیادی بهش شده که در نسخه ۲ بهبود دادنش .

رقبا : Typescript – Javascript .

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

www.dartlang.org

www.dartlang.org/guides/language/language-tour

برای من نصب ابزار هاش زجر آور بود .

( راستی من با نصب اندروید استودیو ۳٫۱٫۲ مشکل دارم sdk manager رو ازش جدا کردن sdk tools لینک دانلود گذاشتن و یا مشابه این و از همینجا تشکر میکنم از کسی که آموزشش رو قرار بده حتما لایکش میکنم 🙂 ).

شاد و پیروز باشید که البته خیلی سخته :).

نوشته زبان برنامه نویسی Dart اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

کاهش مصرف رم سایت با استفاده از yield در PHP

آیا در مورد yield در PHP چیزی شنیدید؟ خب من در وقتتون صرفه جویی میکنم و نیازی نیست برید سرچ کنید با سرفصل زیر در مورد yield صحبت می کنیم

  1. معرفی yield.
  2. تفاوت بین yield & return.
  3. خصوصیات yield.
  4. نتیجه گیری.

معرفی yield

بزارید یه تابع تعریف کنیم مثل بقیه توابع ولی به جای return کردن yield میکنیم مانند:

 

خب مسلماَ، این کد کار نمی کنه به شما یه fetal error بر میگردونه:

object of class Generator could not be converted to string

بزارید ارور رو توضیح بدیم:

تفاوت بین yield & return

اروری که بالا نوشتم میگه تابعمون string باید return میکرده ولی یه object فرستاده!!! اگه بخوایم تایپ شون رو بفهمیم:

کلاس Generator یه کلاسی هست که implement میشه از اینترفیس Iterator: یعنی باید از تابع getValues در حلقه ها استفاده کنیم:

البته این تنها تفاوتش نیست

یه Generator بهت اجازه میده از حلقه ها برای یه دسته از داده ها استفاده کنی بدون اینکه آرایه ای تعریف کنی و این یعنی آرایه ای نیست که در رم ذخیره کنه و در نتیجه مصرف رم کمتر!

برای درک بهتر استفاده از yield فکر کنید یه آرایه داریم با ۸۰۰,۰۰۰ ایندکس و بخوایم با تابعی مثل تابع بالا return کنیم و اگر با تابع memory_get_usage() میزان رم را اندازه گیری کنیم، من در هر ۲۰۰,۰۰۰ المنت اندازه گیری کردم و نتیجه اش:

خب بخاطر چند تا خط کد، اسکریپتمون بخواد ۳۰ مگ حافظه مموری رو اشغال کنه یعنی هر بار صدا کردن آرایه این مقدار در مموری افزایش پیدا میکنه اما اگه از yield برای همین مثال استفاده کنیم

نتیجه:

متوجه تفاوت فاحش این دو کد میشید اما این به این معنی نیست که از return به yield مهاجرت کنیم اما اگه از یه آرایه سنگین در کدتون استفاده می کنید گزینه مناسب همین yield خواهد بود

خصوصیات yield

من یه چندتا از خصوصیات yield رو اینجا براتون میگم(مهماش!)

آ. می تونید yield و return رو باهم استفاده کنید:

ب. برگرداندن به حالت key/value

اطلاعات بیشتر در اینجا

نتیجه گیری

هدف این مقاله بیان تفاوت بین yield و retrun بود و زدن چند تا مثال برای درک بهتر yield

امیدوارم بدردتون خورده باشه

(ترکیبی از ترجمه یه مقاله و خودم)

لطفا در مورد اولین مطلب نظراتتون رو بدید و اگر عنوان یا مبحثی مد نظرتون پیشنهاد دهید

یا حق

نوشته کاهش مصرف رم سایت با استفاده از yield در PHP اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

امضای کامیت‌های گیت با استفاده از کلید GPG

این یادداشت یک راهنما برای استفاده از GPG برای امضا کردن کامیت‌های گیت است، اگر دنبال یک راهنمای نسبتا مفصل برای GPG هستید، خواندن این مطلب را توصیه می‌کنم: GPG یک راهنمای نسبتا مفصل

برای شروع اجازه بدید پاراگراف اول از منبعی که در شروع یادداشت معرفی کردم رو کپی کنم:

GPG یا PGP چی هست اصلا؟

این یک الگوریتم رمز گذاری شخصی حساب میشه. در حقیقت PGP اون الگوریتمه، و من از برنامه آزاد GPG برای مدیریتش استفاده میکنم. درسته که بگم این این کلید PGP منه، ولی حقیقت اینه که ناخواسته خیلی وقتا متوجه میشم که گفتم این کلید GPG منه، عمدی نیست ولی از لحاظ تکنیکی اگه اهل خورده گرفتن باشی غلط میتونه باشه.

ساختن کلید شخصی

۱. اگر gpg روی سیستمتون نصب نیست، باید دریافت و نصبش کنیم. برای تست دستور زیر رو اجرا میکنیم

 

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

۲. با استفاده از دستور زیر یک کلید خصوصی/عمومی می‌سازیم

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

۳. اولین سوال این است که از کدام الگوریتم می‌خواهید استفاده کنید. شماره ۱ رو انتخاب می‌کنیم.

۴. سوال بعد در مورد طول رشته‌ی کلید است، هرچه کلید طولانی‌تر، امن‌تر 🙂 مقدار ۴۰۹۶ رو به عنوان طول رشته انتخاب می‌کنیم.

۵. سوال بعدی که پرسیده می‌شود، مدت زمان اعتبار کلید است، که ما گزینه‌ی اعتبار همیشگی یا «بدون تاریخ انقضا» رو انتخاب می‌کنیم. جواب گزینه‌ی ۰ است.

۶. جواب‌ها رو تایید می‌کنیم.

۷. نامی که برای امضای کلیدها قرار است استفاده شود و آدرس ایمیل‌ را وارد می‌کنیم. از آنجا که می‌خواهیم با کمک این کلید کامیت‌های گیت را امضا کنیم، بهتر است با نام و آدرس ایمیلی که به تنظیمات گیت داده‌ شده یکی باشد. سوال آخر را هم با وارد کردن گزینه‌ی O و تایید مشخصات جواب می‌دهیم.

۸. یک پسورد خوب و قوی به کلید می‌دهیم.

۹. با کمک دستور زیر کلید‌هایی که ساخته شده را می‌توان دید.

دادن کلید به گیت

۱. با استفاده از دستور زیر مشخصات کاملی از کلید‌هایی که ساخته‌ایم را می‌توانیم ببینیم:

نیاز به توضیح نیست که باید از آدرس ایمیلی که برای ساختن کلید خودتان استفاده کرده‌اید استفاده کنید.

۲. کلیدی که با sec شروع شده است را پیدا کنید و GPG key ID آن‌را کپی کنید. در این مثال مقدار آن برابر با ۳۰F2B65B9246B6CA است:

۳. برای گیت مشخص کنید که کامیت‌ها را با کمک این کلید امضا کند

(مقدار ID که از مرحله قبل به دست آوردید را جایگزین مقدار پیش‌فرض در این مثال ۳۰F2B65B9246B6CA باید بکنید)

امضای کامیت‌ها

بعد از ساختن کلید GPG و دادن مقدار آن به گیت می‌توانید شروع به امضا کردن کامیت‌هایتان بکنید. چند راه برای این‌کار داریم

۱. راه ول استفاده از سوییچ -S برای امضا کردن هر کامیت است

۲. اگر نمی‌خواهیم بعد از هر بار کامیت کردن از سوییچ S استفاده کنیم، می‌توان برای گیت مشخص کرد که بعد از هر بار کامیت کردن آن‌ها را اتوماتیک امضا کند

۳. در هر دو حالت بعد از هر بار کامیت کردن باید پسورد کلید را وارد کنیم، البته امروزه اکثر سیستم‌عامل‌ها برنامه‌های پیش‌فرضی به همراه دارند که میتوانند این پسورد را در خود ذخیره کنند و نیاز به تایپ پسورد در هر سری را از بین ببرند. اگر مطمین هستید که کسی جز شما از کامپیوترتان استفاده نمی‌کند می‌توانید پسورد را ذخیره کنید. من این کار را نمی‌کنم

معرفی کلید به سرویس‌هایی مثل گیت‌هاب یا گیت‌لب

۱. از کلید عمومی با کمک دستور زیر می‌توان خروجی گرفت(ID خودتان را جایگزین مقدار پیش‌فرض این مثال باید بکنید)

۲. مقدار خروجی را کپی کنید. خروجی شبیه به این خواهد بود:

۳. به قسمت تنظیمات اکانت در سرویس مورد نظر می‌رویم، در گیت‌هاب به قسمت SSH and GPG keys یا در گیت‌لب GPG keys می‌رویم و مقدار کلید عمومی را در آن کپی می‌کنیم.

کامیت‌های تایید شده

۱. به زبانه‌ی commits هر مخزن در سرویس مورد نظر که برویم، به راحتی می‌توان کامیت‌های امضا شده‌ی معتبر، نامعتبر و کلا امضا نشده‌ها را از هم تشخیص داد.

۲. با کلیک بر روی نشان امضای هر کلید می‌توان مشخصات آن‌را دید


پانویس

آدرس این یادداشت بر روی وبلاگ شخصی کیاوش

https://kiavash.one/2018/05/23/use-gpg-for-sign-commits/

در صورتیکه بخواهید به هر شکلی در نوشتن این یادداشت مشارکت کنید، مثلا آن را اصلاح کنید یا مطلبی به آن اضافه کنید، منبع این یادداشت روی گیت‌هاب در این آدرس در دسترس است:
https://github.com/kiamazi/kiavash.one/blob/master/content/blog/2018-5-23-use-gpg-for-sign-commits.md
میتوانید آن‌را ویرایش کنید. البته باید یادآوری کنم که هر ویرایشی قبل از اتشار نیاز به تایید دارد.

منبع ۳عکس آخر و مقادیر پیش‌فرض مثال‌ها:

https://gitlab.com/help/user/project/repository/gpg_signed_commits/index.md

نوشته امضای کامیت‌های گیت با استفاده از کلید GPG اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

مروری بر MySQL Triggers

این متن یا مقاله مختص کسانی هستش که دانش حداقلی کار بار مای‌اس‌کیوال دارند.

یکی از انگیزه های نوشتن این خُردمقاله متاسفانه و در کمال تعجب دیدن چندین نفر از برنامه نویسای قدیمی تر از خودم که در حد ORM از بانک اطلاعاتی استفاده میکردند و حد استفادشون از دیتابیست CRUD بود یعنی Select,Insert,Delete,Update و دیتابیس SQL رو مسئول نگهداری داده میدونستن که به صورت ماتریسی داده ها رو نگه میدارن با یه سری روابط بین جداول!

Trigger:

تریگرها به مجموعه‌ای از توابع/دستوراتی اطلاق میشه که با انجام کاری اجرا میشوند ، یعنی اگر تریگری داشته باشیم برای اجرا قبل از Insert در جدول X این تریگر هنگامیکه بخواهیم یک داده رو با کوئری Insert وارد جدولمون کنیم اجرا خواهد شد.

کار با تریگرها ساده ولی کاربردی هستند.


یک مثال کاربردی:

فرض میکنیم برای یک فروشگاه اینترنتی دیتابیسی رو میخواهیم طراحی کنیم که دارای ۲ جدول برای ذخیره‌ی مشتری و اعتبارپنلش و دیگری برای نگهداری اطلاعات هر خرید مشتری باشد.

عملی که رخ میدهد به شرح زیر است:

هنگامیکه مشتری اقدام به خرید نمود مبلغ هر خرید از اعتبار کاربری مشتری کسر شود.

Customers

  • id: شناسه مشتری
  • name:نام مشتری
  • credit:اعتبار مشتری

 

Baskets

  • id:شناسه خرید
  • customer_id:شناسه خریدار/مشتری
  • amount: قیمت سبد خرید

(برای خلاصه سازی از مابقی جزئیات همچون ریلیشن ها فاکتور میگیریم)

حالا یک تریگر مینویسیم که بعد از ثبت هر خرید مبلغ خرید amount را از اعتبار حساب مشتری credit کم کند.

برای تست یک مشتری به صورت زیر تعریف میکنیم:

اگر از تریگر استفاده نمیکردیم میبایست بعد از درج هر خرید به صورت دستی کوئری زیر را اجرا میکردیم

حال این کوئری رو در تریگر After Insert جدول خریدها قرار میدهیم که بعد از اعمال هر خرید خودکار این کار را انجام دهد:

دستور بالا تریگری رو تعریف میکنه که بعد از ورود داده در جدول baskets کوئری Update میگیره روی جدول مشتریها و با

مبلغ خرید رو از حساب مشتری کم میکنه و برای پیدا کردن مشتری از کاندیشن

استفاده میکنیم که مشتری مربوط به خریدمون رو پیدا کنه و کوئری رو روش اجرا کنه.

اگر بخواهیم از دستورات چند خطی و یا چند دستور در تریگر استفاده کنیم نیاز هست که از BEGIN و END برای مشخص کردن ابتدا و انتهای دستورات استفاده کنیم در غیر اینصورت استفاده از اونها برای کوئریهای تک دستوری الزامی نیست.

با NEW.نام ستون میتونیم داخل تریگیر به مقادیر ستونهای اون رکوردی که تریگر داره روش اجرا میشه میتونیم دسترسی پیدا کنیم.

البته در تریگرهای آپدیت هم به NEW و هم به OLD دسترسی داریم که مقادیر قدیم و جدید هر ستون رو بر میگردونن و در تریگر حذف هم فقط به OLD.نام_ستون دسترسی داریم.

به طور کلی

برای ساخت یک تریگر از اسلوب فوق استفاده میکنیم که برای تعیین زمان/نوع تریگر میتونیم از:

  • AFTER INSERT
  • BEFORE INSERT
  • AFTER UPDATE
  • BEFORE UPDATE
  • AFTER DELETE
  • BEFORE DELETE

که از اسامی آنها مشخص هست برای چه رخدادی تعریف میشوند و واضح هستش نیازی به ترجمه هم نداره!

دستورات شرطی مثل تعریف متغیرهای DECLARE و دستورات شرطی IF THEN/ELSE و حلقه ها و سایر دستورات برنامه نویسی یا کوئری نویسی رو میشه داخل تریگر اجرا کرد.

اگر موقع ثبت کوئری ساخت تریگر دچار مشکل شدید به خاطر این هستش که جدا کننده‌ی زبانSQL پیشفرض سمی‌کالن هستش که با سمیکالن داخل دستورات دچار تداخل میشه که برای جلوگیری از این اتفاق باید Delimiter کوئری رو از حالت پیشفرض به یک چیز دیگه مثلاً $$ تغییر بدید.

مثل:

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

منتظر فیدبکهاتون هستم.

نوشته مروری بر MySQL Triggers اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی