شیوا محمدی فعال ترین تا این لحظه
86 مطلب 14 ساعت حضور

گزارش خطا

علت گزارش برای را بنویسید


اندروید p به طور رسمی از ضبط تماس ها، پشتیبانی خواهد کرد.

گزارش

همانطور که گوگل با انتشار نسخه Go از اندروید اوریو، آن را برای دستگاه های ضعیف و کند نیز بهینه ساخت، اکنون کار بر روی نسخه بعدی اندروید را شروع کرده است که با عنوان اندروید P شناخته می شود.

اخیرا تعدادی طرح از پروژه های منبع باز اندروید (Android Open Source Project یا AOSP) برای افزودن قابلیت پشتیبانی از پخش تون ضبط صدا، با عنوان تون فرکانس ۱۴۰۰ هرتزی، ایجاد شده است که می تواند خود را هر ۱۵ ثانیه یکبار پخش نماید در حالی که فرایند ضبط نیز در حال انجام است.

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

اگرچه به طور خاص به یک رابط برنامه نویسی نرم افزار کاربردی همگانی (Public API) اشاره نشده است که بتواند تماس های ضبط شده را در اپلیکیشن های توسعه دهندگان باز نماید اما قطعا اینطور می توان برداشت کرد که این قصد را دارند، همانطور که چندین بار نیز به این نکته اشاره کرده اند که اپلیکیشن های کاربردی و مناسب ضبط در دسترس خواهند بود.

شاید این نکته قابل توجه باشد که در طول این سال ها این قابلیت در اندروید نیز در دسترس بوده است اما گوگل اغلب دسترسی توسعه دهندگان را به آن محدود نموده بود. تولیدکننده تجهیزات اورجینال (OEMs) مانند سامسونگ، شیائومی و وان پلاس نیز به صورت غیر رسمی در این سال ها اقدام به عرضه دستگاه های سازگار با این قابلیت کرده اند. برخی حتی اجازه دسترسی به این مزیت را به اپلیکیشن های پلی استور داده اند.

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

منبع

 

شیوا محمدی

چگونه روشنایی صفحه آیفون را از حد مجاز iOS پایین تر بیاوریم؟

گزارش

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

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

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

General > Accessibility > Display Accommodations > Reduce White Point

 

 

با فعال کردن ویژگی Reduce White Point، یک اسلایدر درصدی در پایین صفحه برای تان به نمایش در می آید که با کشیدن آن به سمت راست از میزان روشنایی صفحه آیفونتان کاسته می شود. البته باید به این موضوع نیز اشاره کرد که ویژگی Reduce White Point با تنظیمات Brightness آیفون ها، رابطه ای متقابل دارد. از این رو باید برای رسیدن به میزان روشنایی دلخواه، در مقادیر هر دو ویژگی دست برد تا در نهایت نتیجه مورد نظر حاصل شود.

در آخر، پیشنهاد می شود برای فعال و غیرفعال کردن سریع Reduce White Point، یک میانبر برای آن در نظر بگیرید. برای این کار نیز بهتر است از میانبر کلید هوم استفاده کنید تا در ازای سه بار فشردن پشت سر هم آن، Reduce White Point فعال یا غیر فعال شود. برای دسترسی به این موضوع، ابتدا باید به سراغ صفحه Accessibility بروید و مسیر زیر را طی کنید:

Accessibility > Accessibility Shortcut

 

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

منبع:  jumpco ،  Howtogeek

 

مجید مرادی

صفحات متنی با ویژگی حالت تایپ به اینستاگرام اضافه شد

گزارش

 

اینستاگرام به تازگی امکان استفاده از صفحات مبتنی بر متن با اونواع «حالت های تایپ» را در اختیار کاربران قرار داد. این ویژگی کاربران را قادر می سازد تا هر آنچه در ذهن دارند را با سبک های متن خلاقانه و پس زمینه های متفاوت به اشتراک بگذارند بنابراین دیگر نیازی نیست که برای داشتن یک متن در استوری حتما عکس یا ویدیو آپلود شود و کاربران می توانند بدون عکس از پس زمینه های پیش فرض استفاده کنند. فیس بوک٬ صاحب این اپلیکیشن در خصوص این قابلیت گفته است که «کاربران می توانند ذهنیات خود را با روشی متنوع و مملو از رنگ بیان کنند»

گزینه Type مجاور حالت Normal و زیر دکمه رکورد قرار دارد.

روز گذشته هم به این موضوع اشاره شده بود که قرار است چت ویدیویی به برنامه اینستاگرام اضافه شود. حتی قرار است امکان زمان بندی پست‌ها هم در اختیار کاربران قرار بگیرد. حتی کاربران می‌توانند از این به بعد در قسمت استوری‌ها از تصاویر متحرک با GIF استفاده کننند.

مجید مرادی

پیام رسان تلگرام X رسماً برای پلتفرم اندروید معرفی شد!

گزارش

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

تلگرام X کاملاً از نو نوشته شده و از کد بیس تازه ای بهره می برد که پیشتر در اپلیکیشن اصلی مورد استفاده قرار نگرفته و سبب می شود اپلیکیشن، سرعت و کارایی بیشتری نسبت به نسخه اصلی داشته باشد.

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

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

 

تلگرام X از قابلیتی به نام حالت «Bubble-Free» برای چت ها پشتیبانی می کند که فضای بیشتری را به پیام ها و تصاویر اختصاص می دهد؛ در واقع تصاویر، تمام عرض نمایشگر را در بر خواهند گرفت. در این پیام رسان، با نگه داشتن انگشت روی هر یک چت ها می توان بدون باز کردن چت، پیش نمایشی از محتویات آن داشت. این قابلیت، در دو تب Calls و «Groups In Common» هم قابل استفاده است.

یکی دیگر از ویژگی های مهم تلگرام X، امکان کشیدن پیام ها به سمت راست برای فوروارد آنها است و از طرف دیگر، با دریافت این پیام رسان شاهد موزیک پلیری از نو طراحی شده خواهید بود. در نهایت نیز گفتنی است که پروفایل پیج های بهینه شده از دیگر ویژگی های تلگرام X به حساب می آید که دسترسی آسان به Shared Media را مهیا می سازد.

 

تلگرام همزمان با معرفی تلگرام X، از TDLib هم رونمایی کرده است. TDLib درست مثل Telegram API، ابزاری برای توسعه دهندگان است که به کمک آن بتوانند تلگرام های غیر رسمی بسازند. به گفته تلگرام کار با TDLib به میزان قابل توجهی نسبت به Telegram API ساده تر است و برنامه نویس ها به کمکش می توانند تلگرام های غیر رسمی سریع تر، امن تر و مجهزتر بسازند.

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

مجید مرادی

8 مورد از مهارت های برنامه نویسی که تمامی توسعه‌دهندگان وب باید بدانند.

گزارش

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

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

(HyperText Markup Language Version 5 (HTML5

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

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

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

(Cascading Style Sheets Level 3(CSS3

بعد از نوشتن یک صفحه وب با استفاده از HTML، نوبت به استفاده از سی اس اس می‌رسد. توسعه‌دهندگان وب از CSS برای اعمال ویژگی‌های بصری و بهبود ظاهر صفحات استفاده می‌کنند. یک صفحه نوشته شده با استفاده از HTML و بدون کدهای CSS، همچون ساختمانی است که به جز آجر و یا آهن به کار رفته در آن، هیچ چیز دیگری (اعم از پنجره، نما و دیگر موارد) دیده نمی‌شود، هر چند پی‌ریزی خوب و قوی داشته باشد. تصویر زیر کاربرد CSS را به خوبی نشان می‌دهد.

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

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

(JavaScript (JS

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

یک صفحه وب بدون کد خط‌های JavaScript، تنها می‌تواند محتوا و فایل‌های چند رسانه‌ای را نمایش دهد و امکات “تعامل آن با کاربر” وجود ندارد. کاربر تنها می‌تواند محتوای صفحه را تماشا کند. JavaScript را باید آخرین مورد در بین مهارت های برنامه نویسی برای ایجاد فرانت اند (Front-End) دانست. گفتنی است Front-End به بخشی گفته می‌شود که کاربر آن را مشاهده کرده و با آن تعامل دارد. مابقی بخش‌ها به بک اند (Back-End) تعلق داشته و قسمت‌هایی هستند که دور از چشم کاربر، اعمال مختلف را پیش می‌برند.

(Asynchronous JavaScript and XML (Ajax

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

PHP Hypertext Processor

پی اچ پی همانند JavaScript یک زبان برنامه نویسی است، با این تفاوت که برای ایجاد Back-End کاربرد داشته و توسعه‌دهندگان وب از آن برای ایجاد صفحات پویا بر روی یک سرور استفاده می‌کنند. سرور یک برنامه مشخص را اجرا کرده و نتیجه را به مرورگر ارسال می‌کند. به عبارت دیگر، وقتی شما با یک وب سایت تعامل دارید، ارتباط شما با JavaScript است. JavaScript اطلاعات گرفته شده از کاربر را به سرور ارسال می‌کند تا در آنجا یک برنامه نوشته شده به وسیله PHP، آن‌ها را آنالیز کرده و سپس بازگرداند.

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

(Structured Query Language (SQL

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

(Version Control Systems (VCS

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

Git را باید پرکاربردترین نرم افزار برای Version Control دانست. وب سایت GitHub یکی از محبوب‌ترین مکان‌ها در اینترنت برای توسعه‌دهندگان است که در آنجا به مقایسه و بحث پیرامون کدهای خود می‌پردازند. بهتر است تا با مفهوم این ابزار آشنا شده و به جمع یکی از بزرگترین محافلی که توسعه‌دهندگان در آنجا ایده‌های خود را تبادل می‌کنند، بپیوندید.

Agile Methodology

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

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

منبع

شیوا محمدی

چگونه با سلنیوم یک وب کراولر ایجاد کنیم؟ (ساخت خزنده وب)

گزارش

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

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

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

خودکار سازی فرآیندها در گوگل کروم نیازمند استفاده از ابزاری به نام سلنیوم (Selenium) است. این یک بخش نرم افزاری است و با قرار گرفتن بین برنامه و مرورگر به کاربر اجازه می‌دهد از طریق برنامه خود، مرورگر را مدیریت کند. در این مقاله روش کامل خودکارسازی گوگل کروم را شرح خواهیم داد. این مطلب شامل قدم‌های زیر است:

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

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

تنظیم سلنیوم

سلنیوم از یک بخش نرم افزاری که فرآیندهای جداگانه‌ای را اجرا کرده و از طرف برنامه جاوا، اعمالی را انجام می‌دهد تشکیل شده است. این بخشی که از آن صحبت می‌کنیم با عنوان وب درایور (Web Driver) شناخته می‌شود. وب درایور را باید بر روی سیستم کامپیوتری خود دانلود کرد.

وب درایور

با رفتن به صفحه‌ای مخصوص در وب سایت Google می‌توانید به صفحه دانلود سلنیوم وارد شوید. در ادامه باید بر روی جدیدترین ریلیز آن کلیک کرده و فایل مناسب با سیستم عامل خود (ویندوز، لینوکس و یا مک) را انتخاب کنید. بسته دانلودی، یک فایل دارای پسوند ZIP بوده و درون آن فایلی قابل اجرا با نام Chromedriver.exe وجود دارد. بعد از دریافت فایل فشرده شده، محتویات درون آن را در مسیری مناسب همچون C:\WebDrivers\chromedriver.exe استخراج کنید. بهتر است شما نیز در همین مسیر فایل را استخراج کنید، چرا که در ادامه، درون برنامه جاوا از این آدرس استفاده خواهیم کرد.

ماژول‌های جاوا

قدم بعدی، تنظیم ماژول‌های جاوایی است که برای استفاده از سلنیوم مورد نیاز هستند. تصور می‌کنیم شما در حال استفاده از Maven برای ساخت برنامه جاوا هستید، پس باید وابستگی زیر را به POM.xml خود اضافه کنید:

<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.8.1</version>
</dependency>
</dependencies>

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

نخستین قدم‌های سلنیوم

در اینجا کار با سلنیوم را به منظور ایجاد وب کراولر آغاز می‌کنیم. نخستین قدم ایجاد یک نمونه ChromeDriver است:

WebDriver driver = new ChromeDriver();

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

driver.get(“http://www.google.com”);

یک مرجع به عنصر نوشتاری ورودی پیدا کنید تا بلکه بتوان عملیات جستجو را انجام داد. عنصر ورودی نوشتاری دارای نام q است. در اینجا با استفاده از متد ()WebDriver.findElement عناصر HTML درون صفحه را پیدا می‌کنیم:

WebElement element = driver.findElement(By.name(“q”));

می‌توان نوشته را به هر عنصری با استفاده از متد ()sendKeys ارسال کرد. در ایجا یک عبارت جستجویی ارسال کرده و آن را با یک خط جدید به اتمام می‌رسانیم. به همین دلیل جستجو خیلی سریع آغاز می‌شود:

element.sendKeys(“terminator\n”);

اکنون که فرآیند جستجو در حال اجرا است، باید برای صفحات نتیجه منتظر بمانیم. می‌توان آن را با کد زیر انجام داد:

new WebDriverWait(driver, 10)
.until(d -> d.getTitle().toLowerCase().startsWith(“terminator”));

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

System.out.println(“Title: ” + driver.getTitle());

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

driver.quit();

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

استفاده از اینسپکتور گوگل کروم

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

گوگل کروم را باز کرده و یک صفحه وب باز کنید. به عنوان نمونه ما در این مطلب، به صفحه فیلم Justice League (2017) در وب سایت IMDb رفته‌ایم. اکنون می‌خواهیم عناصری مورد نظر برای نشانه گرفتن را پیدا کنیم. مثلا در اینجا بخش خلاصه فیلم مد نظر است. بر روی بخش خلاصه (Summary) کلیک راست کرده و گزینه Inspect را انتخاب کنید.

در تب Elements می‌توان نوشته مربوط به بخش خلاصه را مشاهده کرد که درون یک تگ div به همراه کلاس summary_text قرار دارد.

استفاده از CSS یا XPath برای انتخاب

در سلنیوم از انتخاب عناصر صفحه با استفاده از CSS پشتیبانی می‌شود. به عنوان نمونه برای انتخاب متن مربوط به بخش خلاصه از صفحه بالا می‌توان نوشت:

WebElement summaryEl = driver.findElement(By.cssSelector(“div.summary_text”));

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

WebElement summaryEl = driver.findElement(By.xpath(“//div[@class=’summary_text’]”));

XPath و CSS هر دو قابلیت‌های مشابهی دارند، پس انتخاب یکی از آن‌ها تنها به سلیقه کاربر برمی‌گردد.

خواندن گوگل میل از جاوا

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

کار را با Chrome Driver آغاز کرده و به آدرس Gmail.com بروید. تا بارگذاری کامل صفحه منتظر بمانید.

WebDriver driver = new ChromeDriver();
driver.get(“https://gmail.com”);
new WebDriverWait(driver, 10)
.until(d -> d.getTitle().toLowerCase().startsWith(“gmail”));

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

/* Type in username/email */
{
driver.findElement(By.cssSelector(“#identifierId”)).sendKeys(email);
driver.findElement(By.cssSelector(“.RveJvd”)).click();
}

new WebDriverWait(driver, 10)
.until(d -> ! d.findElements(By.xpath(“//div[@id=’password’]”)).isEmpty() );

اکنون پسورد را وارد کرده و دکمه Next را مجددا انتخاب کنید. سپس باید تا بارگذاری صفحه جیمیل منتظر ماند.

/* Type in password */
{
driver
.findElement(By.xpath(“//div[@id=’password’]//input[@type=’password’]”))
.sendKeys(password);
driver.findElement(By.cssSelector(“.RveJvd”)).click();
}

new WebDriverWait(driver, 10)
.until(d -> ! d.findElements(By.xpath(“//div[@class=’Cp’]”)).isEmpty() );

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

List<WebElement> rows = driver
.findElements(By.xpath(“//div[@class=’Cp’]//table/tbody/tr”));
for (WebElement tr : rows) {
}

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

{
/* From Element */
System.out.println(“From: “);
for (WebElement e : tr
.findElements(By.xpath(“.//div[@class=’yW’]/*”))) {
System.out.println(” ” +
e.getAttribute(“email”) + “, ” +
e.getAttribute(“name”) + “, ” +
e.getText());
}
}

اکنون موضوع را دریافت می‌کنیم.

{
/* Subject */
System.out.println(“Sub: ” + tr.findElement(By.xpath(“.//div[@class=’y6′]”)).getText());
}

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

{
/* Date/Time */
WebElement dt = tr.findElement(By.xpath(“./td[8]/*”));
System.out.println(“Date: ” + dt.getAttribute(“title”) + “, ” +
dt.getText());
}

در اینجا تعداد سطرهای ایمیل‌های درون صفحه مشخص می‌شود.

System.out.println(rows.size() + ” mails.”);

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

driver.quit();

به منظور تکرار می‌توان از سلنیوم با گوگل کروم، برای خزیدن در میان وب سایت‌هایی که دارای انبوهی از کدهای جاوااسکریپ هستند استفاده کرد. با استفاده از گوگل کروم اینسپکتور می‌توان اطلاعات زیادی درباره CSS و XPath به دست آورد. این اطلاعات برای اجرای دستورات بعدی بسیار کاربردی خواهند بود.

منبع

 

شیوا محمدی

کدام موبایل ها و تبلت های سامسونگ آپدیت اندروید اوریو را دریافت می کنند؟

گزارش

 

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

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

با این وجود به تازگی لیستی طولانی در وب سایت XDA Developers منتشر شده که دیوایس های احتمالی سامسونگ برای دریافت اندروید اوریو را نشان می دهند. یکی از کاربران این سایت با بررسی فایل های موجود در بتای اوریو گلکسی نوت 8 که دو ماه پیش لیک شد، توانسته اطلاعاتی پیرامون انتشار اندروید اوریو برای دستگاه های سامسونگ را فاش کند.

 

 

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

  • Samsung Galaxy A3 2017 (a3y17)
  • Samsung Galaxy A5 2017 (a5y17)
  • Samsung Galaxy A7 2017 (a7y17)
  • Samsung Galaxy A8 2016 SM-A810 (a8xe)
  • Samsung Galaxy A8 2018 (a8lte)
  • Samsung Galaxy A8+ 2018 (a8plte)
  • Samsung Galaxy J3 2017 (j3y17)
  • Samsung Galaxy J5 2017 (j5y17)
  • Samsung Galaxy J7 2017 (j7y17)
  • Samsung Galaxy J7+ (jadelte)
  • Samsung Galaxy J7 Duos 2017 (j7duo)
  • Samsung Galaxy J7 Max (j7max)
  • Samsung Galaxy J7 Neo (j7velte)
  • Samsung Galaxy J7 Prime (j7popelte)
  • Samsung Galaxy Note FE (gracer)
  • Samsung Galaxy Note 8 (great)
  • Samsung Galaxy S7 (hero)
  • Samsung Galaxy S7 Edge (hero2)
  • Samsung Galaxy S8 Active (cruiserlte)
  • Samsung Galaxy S8 (dream)
  • Samsung Galaxy S8+ (dream2)

البته بعضی موبایل های دیگر نیز هستند که احتمالا اندروید اوریو را دریافت می کنند و در لیست بالا حضور ندارند. این اسمارت فون ها که در طول دو سال گذشته عرضه شده اند به شرح زیر هستند:

  • Samsung Galaxy C7 Pro
  • Samsung Galaxy C9 Pro
  • Samsung Galaxy J5 Pro
  • Samsung Galaxy J7 Pro
  • Samsung Galaxy S7 Active

در کنار اسمارت فون ها، سامسونگ معمولا عادت دارد آپدیت های اندرویدی را به تبلت هایش هم بیاورد و این اتفاق طبیعتا امسال هم تکرار می شود. اما کدام تبلت ها بروزرسانی اندروید اوریو را دریافت می کنند؟ در ادامه نام کد تبلت هایی که در فایل بتای نوت 8 حضور داشتند را می توانید ببینید. تبلت های زیر احتمالی هستند و شاید سامسونگ اندروید 8 را به تبلت های بیشتری بیاورد:

  • Samsung Galaxy Tab A 8.0 SM-T355 (gt58lte)
  • Samsung Galaxy Tab A 8.0 SM-T380/T385 2017 (gta2s)
  • Samsung Galaxy Tab A 10.1 SM-T580 (gtaxl)
  • Samsung Galaxy Tab Active 2 (gtactive2)
  • Samsung Galaxy Tab E 8.0 (gtesvelte)
  • Samsung Galaxy Tab S3 SM-T825 (gts3)

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

مجید مرادی

آیا قابلیت تماس تصویری به اینستاگرام می آید؟

گزارش

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

 

 

اما آیا این قابلیت به اینستاگرام می آید؟ سخن گوی این کمپانی در گفت و گویی با وب سایت TechCrunch نسبت به تماس تصویری اینستاگرام واکنش نشان داد و گفت: «ما نظری راجع به این شایعه نداریم. اینستاگرام همیشه در حال تست تجربه های جدید برای کاربرانش است.»

در سال 2017 کاربران حدود 17 میلیارد بار فقط از طریق اپلیکیشن فیسبوک مسنجر صحبت کردند

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

 

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

براساس اطلاعات به دست رسیده روز به روز شاهد افزایش محبوبیت تماس های تصویری هستیم. آخرین گزارشات نشان می دهند که در سال 2017 کاربران حدود 17 میلیارد بار در اپلیکیشن فیسبوک مسنجر صحبت کردند. رقمی که دو برابر سال 2016 گذشته بوده است.

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

 

 

مجید مرادی

چگونه اسناد ذخیره نشده در Word 2016 را بازیابی کنیم؟

گزارش

تاکنون شده که بدون ذخیره کردن یک سند، به صورت تصادفی از نرم افزار Word 2016 خارج شوید؟ مایکروسافت در ورد راه هایی پیش روی کاربران گذاشته تا آن ها بتوانند اطلاعات از دست رفته شان را بازیابی کنند؛ تنها در چند ثانیه می توانید فایل هایی که ذخیره نشده اند را ریکاوری نمایید.

بنابراین اگر دوست دارید اسنادی که در نرم افزار ورد نوشته اید به خاطر یک اشتباه کوچک از دست نروند، با ما و روش های بازیابی فایل های ذخیره نشده در Microsoft Word 2016 همراه باشید.

چگونه اسناد ذخیره نشده را بازیابی کنیم؟

 

سناریو این است؛ بدون اینکه نوشته تان را ذخیره کنید از نرم افزار ورد خارج شده اید. آیا تمام زحماتی که کشیده اید به باد رفته است؟ نه. بعد از آنکه ورد را اجرا کردید، در نوار بالای صفحه روی File کلیک کنید و سپس Open را بزنید. در اینجا لیستی از تمام اسناد وردی که اخیرا ذخیره کرده اید نشان داده می شود.

 

زیر آخرین فایل لیست، گزینه ای با نام Recover Unsaved Documents وجود دارد، آن را انتخاب کنید. با این کار فولدری به نمایش در می آید که شامل تمام سندهای ذخیره نشده در چهار روز گذشته است. روی سندی که می خواهید بازیابی شود کلیک کرده و سپس Open را بزنید.

 

 

در این مرحله یک صفحه جدیدی باز خواهد شد که محتویات سند را نشان داده و در بالای آن پیغام This is a recovered file that is temporarily stored on your computer وجود دارد. کافیست روی Save As بزنید و سند را در پوشه ای که می خواهید ذخیره کنید.

 

اما اگر با این روش نتوانستید فایل را باز کنید و با ارور مواجه شدید، امکان دارد سند ورد خراب شده باشد. در این مواقع پس از آنکه سند ذخیره نشده را انتخاب کردید، به جای انتخاب Open (در عکس سوم) روی فلش کنار آن کلیک کنید و سپس Open and Repair را بزنید تا به صورت خودکار مشکل حل شود.

البته در صورتی که خواستید بدون باز کردن ورد، سندهای ذخیره نشده را ببینید می توانید Windows key + R را بگیرید تا نرم افزار Run اجرا شود. در اینجا متن زیر را وارد کرده و OK را بزنید تا لیست اسنادی که سیو نکرده اید به نمایش در بیاید:

C:\Users\%USERNAME%\AppData\Local\Microsoft\Office\UnsavedFiles

از AutoRecover استفاده کنید

 

اما در مواقعی که سیستم کرش می کند یا برق می رود می توانید به کمک قابلیت AutoRecover اطلاعات خود را در برنامه های آفیس بازیابی کنید. برای استفاده از این ویژگی، بعد از اجرای برنامه با پنل Document Recovery مواجه می شوید. این پنل شامل تمام فایل های وردِ در دسترس با عنوان و زمان ساخته شدنشان است.

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

 

چگونه AutoRecover را شخصی سازی کنیم؟

 

ویژگی AutoRecover به صورت خودکار فعال می شود ولی قابلیت شخصی سازی آن را هم دارید. ورد را باز کرده و در نوار بالای صفحه روی File کلیک کنید. سپس Options را انتخاب کرده و به بخش Save بروید. در اینجا اگر گزینه Save AutoRecover information every X minutes فعال نبود، تیک آن را بزنید تا هر چند دقیقه یک بار فایل ورد به صورت اتوماتیک سیو شود.

منظور از X هم در جمله بالا زمانی است که خودتان می دهید. به صورت پیش فرض این زمان روی 10 دقیقه گذاشته شده ولی برای اطمینان بیشتر می توانید آن را عوض کنید. در ادامه تیک Keep the last AutoRecovered version if I close without saving را نیز بزنید.

در پایین این دو جمله هم می توانید AutoRecover file location را ببینید. این بخش برای آن است که فایل های ذخیره شده توسط قابلیت AutoRecover در کجا ذخیره شوند. اگر خواستید مکان ذخیره کردن را تغییر دهید، Browse را زده و مسیر جدید را مشخص کنید.

 

مجید مرادی
ثبت نام ورود