<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های امید حدیدی</title><link>https://virgool.ir/feed/@o.h.hadidy</link><description>یه برنامه نویس پرتلاش و جستجوگر. عاشق برنامه نویسی و یادگیری چیزای جدید</description><language>fa</language><pubDate>2026-11-10 19:21:12</pubDate><image><url>https://files.virgool.ir/upload/users/133813/avatar/avatar.png</url><title>امید حدیدی</title><link>https://virgool.ir/@o.h.hadidy</link></image><item><title>نقد و بررسی فیلم The Ninth 2019 – ساده، معمایی پر از جادو و رمز و راز</title><link>https://virgool.ir/boxoffice/نقد-و-بررسی-فیلم-the-ninth-2019-–-ساده-معمایی-پر-از-جادو-و-رمز-و-راز-kig2l0uqlwqx</link><description>اگه دنبال یه فیلم معمایی-هیجان‌انگیز با حال‌وهوای جادوگری و فضایی شبیه داستان‌های شرلوک هولمز هستی، فیلم The Ninth (2019) می‌تونه گزینه جذابی باشه. توی این مقاله قراره به‌صورت کامل و کاربرپسند، با رعایت اصول سئو، نقد و بررسی فیلم The Ninth 2019 رو داشته باشیم. پس کمربندتو ببند و بریم سراغش!📖 معرفی فیلم The Ninth 2019https://www.uptvs.com/contents/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d9%81%db%8c%d9%84%d9%85-the-ninth-2019-%d9%86%d9%87%d9%85%db%8c%d9%86-%d9%82%d8%b1%d8%a8%d8%a7%d9%86%db%8c.htmlاکران جهانی: ۲۰۱۹ (به‌طور محدود در بعضی کشورهای اروپایی)IMDb: امتیاز حدود 5.6 از 10Kinopoisk: میانگین امتیاز 6 از 10نام اصلی: The Ninth (Девятая)نام فارسی: نهمینسال تولید: ۲۰۱۹کشور سازنده: روسیهکارگردان: نیکولای خودورکوفسکی (یا Aleksandr Ginzburg در نسخه بین‌المللی)فیلم در فضایی معمایی و پر رمز و راز روایت می‌شه و برای کسایی که از داستان‌های جنایی قدیمی مثل شرلوک هولمز خوششون میاد، انتخاب جذابیه. فیلم در دسته‌های معمایی، جنایی، فانتزی و هیجان‌انگیز قرار می‌گیره. فضای فیلم به‌طور خاص حال‌وهوای داستان‌های شرلوک هلمزی رو داره، ولی با چاشنی جادو و آیین‌های اسرارآمیز.🎬خلاصه داستان فیلم نفر نهمخلاصه داستان در سن‌پترزبورگ قرن نوزدهم اتفاق می‌افته. یک کارآگاه خبره و کمی بداخلاق مأمور حل پرونده قتل‌های زنجیره‌ای عجیبی می‌شه که قربانی‌ها به طرز اسرارآمیزی کشته شدن. ماجرا وقتی جالب‌تر می‌شه که پای جادو، آیین‌های مرموز و شخصیتی پر از راز به میان میاد. داستان به خوبی بین فضای واقع‌گرایانه پلیسی و افسانه‌های جادویی تعادل برقرار کرده و همین باعث می‌شه بیننده دائم کنجکاو بمونه.🕰 خط زمانی فیلمشروع تولید: ۲۰۱۸انتشار رسمی: ۷ نوامبر ۲۰۱۹ در روسیهاکران جهانی: ۲۰۱۹ (به‌طور محدود در بعضی کشورهای اروپایی)دنباله: هنوز خبری از ساخت قسمت دوم منتشر نشده است.🔎 نقد و بررسی فیلم The Ninth 2019این فیلم سعی در این داشته که همه سلایق رو درگیر خودش کنه و از صحنه‌های درام و اشکن گرفته تا صحنه‌های جادویی و معمایی رو توی خودش جا داده، اینکه سعی کرده همه رو راضی نگداره خوبه اما مهم اینه که بتونی توی یک بخش به خوبی اینکار رو انجام بدی. از نظر من فیلم نتونسته همه خواسته‌های افراد رو برطرف کنه و برعکس موجب شده که بیننده کاملا این رو حس کنه که شاید برخی صحنه‌ها باهم دیگه جور درنمیاد و براش خسته کننده میشه.اما از طرفی اینکه فیلم فاز داستان‌های شرلوک هولمزی داره میتونه کمی داستان رو برای شما جذاب کنه و همینطور داستان‌نامه قوی که داره و کاملا میتونید پیوستگی رو در داستان فیلم مشاهده کنید. این نقطه قوت جایی بود که به من اجازه داد تا پایان فیلم رو مشاهده کنم، اما، در انتها پایانی واقعا کلیشه‌ای رو برای این فیلم در نظر گرفتندر کل فیلم ارزش یکبار دیدن رو داره اما میتونست خیلی بهتر بشه و با تمرکز بر روی یک بخش از داستان فیلم رو جذاب‌تر هم بکنن.✅ نقاط قوتداستان جذاب: روایت پلیسی و رمزآلود با پیچش‌های مناسب که باعث می‌شه حوصله‌ات سر نره.فضاسازی تاریخی: طراحی صحنه‌ها و لباس‌ها حال‌وهوای سن‌پترزبورگ قدیم رو عالی به تصویر کشیده.ترکیب جادو و کارآگاهی: برای علاقه‌مندان به شرلوک هولمز و داستان‌های ماورایی خیلی دلچسبه.❌ نقاط ضعفریتم کند در بعضی بخش‌ها: ممکنه اوایل فیلم کمی طولانی به نظر بیاد.کاراکترهای فرعی کم‌عمق: جز کارآگاه و شخصیت اصلی زن، بقیه شخصیت‌ها کمتر پرداخته شدن.جلوه‌های ویژه متوسط: فیلم بیشتر روی داستان تمرکز کرده تا افکت‌های سنگین سینمایی.📝جمع‌بندی نهایینقد و بررسی فیلم The Ninth 2019 نشون می‌ده که این اثر یک تجربه معمایی جذابه، مخصوصاً برای کسانی که عاشق ترکیب کارآگاه‌بازی و آیین‌های جادویی هستن.درسته که این فیلم یک شاهکار سینمایی نیست اما قطعا ارزش یکبار دیدن رو داره.اگر به دنبال فیلمی هستی که تو رو به فضای پر رمز و راز سن‌پترزبورگ ببره و با داستانی غیرقابل‌پیش‌بینی سرگرمت کنه، حتماً این فیلم رو ببین.به طور خلاصه:طرفداران شرلوک هولمز و ماجراهای جنایی: ✅ پیشنهاد می‌شودعلاقه‌مندان به جادو و اسرار ماورایی: ✅ تماشا کنیدکسانی که فقط اکشن سریع می‌خواهند: ❌ شاید کمی کند به نظر برسد</description><category>امید حدیدی</category><author>امید حدیدی</author><pubDate>Fri, 22 Aug 2025 22:39:02 +0330</pubDate></item><item><title>فیلم سفر به چین: راز ماسک آهنی – یک ماجراجویی نفس‌گیر و تماشایی!</title><link>https://virgool.ir/boxoffice/فیلم-سفر-به-چین-راز-ماسک-آهنی-–-یک-ماجراجویی-نفس-گیر-و-تماشایی-c2nmzbfhmrdz</link><description>اگر دنبال یک سفر پرهیجان، پر از اکشن، فانتزی و ماجراجویی باشی، باید همین‌جا متوقف بشی چون فیلم سفر به چین: راز ماسک آهنی دقیقاً همون چیزیه که دنبالش بودی. این فیلم ترکیبی از ستاره‌های بزرگ، جلوه‌های ویژه چشم‌نواز و داستانی پرپیچ‌وخم رو کنار هم قرار داده و یک تجربه سینمایی بی‌نظیر رو خلق کرده. در ادامه با ما همراه باش تا با هم بریم سراغ نقد و بررسی فیلم سفر به چین: راز ماسک آهنی.📖معرفی فیلم سفر به چین: راز ماسک آهنیکشور سازنده: محصول مشترک روسیه، چین و آمریکاسال ساخت: ۲۰۱۹IMDb: امتیاز 4.7 از 10 (البته واقعاً بی‌انصافیه! 😅 چون فیلم ارزش دیدن داره)Rotten Tomatoes: حدود 30% منتقدان، اما مخاطبان نمره خیلی بالاتری دادن.نام اصلی: The Iron Mask / Journey to China: The Mystery of Iron Maskنام فارسی: سفر به چین: راز ماسک آهنیاین فیلم دنباله‌ای برای «ویاژ» (Viy 2014) محسوب می‌شه و با تلفیق ژانرهای مختلف، تونسته یک دنیای پر از رمز و راز بسازه که مخاطب رو از لحظه اول تا آخرین ثانیه روی صندلی میخکوب می‌کنه.نمره‌ها خیلی پایین به نظر میان، اما واقعیت اینه که فیلم بیشتر برای سرگرمی و لذت بصری ساخته شده، نه برای نقدهای فلسفی و پیچیده. و همونطور که مشخصه این فیلم‌ها توی سبک جکی چانی خودمونه که واقعا برای لذت مخاطب ساخته میشه تابه صورت سطحی و خیلی ساده بتونی از فیلم لذت ببری.🎬خلاصه داستان فیلمخلاصه داستان از جایی شروع می‌شه که نقشه‌کش انگلیسی، جاناتان گرین، مأموریتی تازه پیدا می‌کنه: سفری طولانی از روسیه تا چین. اما این سفر، پر از خطرها و ماجراجویی‌های خارق‌العاده‌ست. در این راه، او با شخصیت‌هایی عجیب، هیولاهای افسانه‌ای، جادو و حتی یک ماسک مرموز روبه‌رو می‌شه که راز بزرگی رو در دل خودش پنهان کرده.این اثر ترکیبی هیجان‌انگیز از اکشن، فانتزی، ماجراجویی و تاریخیه. هم برای طرفدارای فیلم‌های پر زد و خورد جذابه، هم برای کسایی که دنبال ماجراجویی‌های پر رمز و راز هستند.🕰خط زمانی فیلمشروع پروژه: ایده ساخت دنباله فیلم Viy در سال ۲۰۱۶ کلید خورد.تاریخ پریمیر: فیلم در سپتامبر ۲۰۱۹ در روسیه پریمیر شد.انتشار عمومی: ۱۰ آوریل ۲۰۱۹ در روسیه و سال ۲۰۲۰ در اروپا و آمریکا اکران شد.دنباله: این فیلم در واقع خودش دنباله‌ای بر Viy بود و فعلاً خبری از ساخت قسمت سوم منتشر نشده.🔎 نقد فیلم سفر به چین: راز ماسک آهنیتوی نگاه اول با توجه به امتیازاتی که این فیلم دریافت کرده شاید با خودتون بگید که شاید این فیلم ارزش دیدن رو نداشته باشه، اما باید بگم سخت در اشتباه هستید مخصوصا برای اونایی که عاشق فیلم‌های تاریخی و فانتزی و جادویی هستن. این فیلم از لحاظ زیبایی بصری و جلوه‌های ویژه واقعا شاهکاره و صحنه‌های اکشنی که امضای خود جکی چان روی اون هست میتونه شما رو تا مدت‌ها مجذوب این فیلم کنه و کاری کنه شما پای این فیلم تا انتها باقی بمونید.داستان فیلم نسبتا خوبه ولی میتونست بهتر باشه تا بیننده باهاش ارتبطات بهتری پیدا کنه. همچنین این فیلم تونسته چندین فرهنگ رو به همدیگه ربط بده که واقعا کار سخت و دشواری هست اما زیبایی فیلم رو کم نکرده.با اینکه داستان این فیلم خوب نیست اما ارزش یکبار دیدن رو داره تا از زیبایی‌های بصری اون بتونید در حد 2 ساعت لذت ببرید.✅ نقاط قوتاکشن‌های پرهیجان: حضور جکی چان و شوارتزنگر خودش یک کلاس درس اکشنه!جلوه‌های ویژه: مناظر باورنکردنی، موجودات افسانه‌ای و طراحی صحنه حیرت‌انگیزه.ماجراجویی مداوم: داستان دائم در حال حرکته و لحظه‌ای بهت فرصت خسته شدن نمی‌ده.ترکیب فرهنگ‌ها: فیلم تونسته یک پل بین روسیه، چین و غرب ایجاد کنه.❌ نقاط ضعفداستان کمی شلوغ: روایت بعضی جاها پر از شاخه‌های اضافیه.فیلمنامه ضعیف: گاهی به نظر میاد بیشتر روی جلوه‌های ویژه تمرکز شده تا دیالوگ‌ها.نمرات منتقدان: شاید نتونسته توقعات سینمای جدی رو برآورده کنه.📝 جمع‌بندی نهایی نقد و بررسی فیلم Journey to China: The Mystery of Iron Maskنقد و بررسی فیلم سفر به چین: راز ماسک آهنی نشون می‌ده که این اثر بیشتر از اینکه بخواد یک شاهکار سینمایی باشه، هدفش خلق یک تجربه پرهیجان و سرگرم‌کننده‌ست. ترکیب اکشن ناب با جکی چان، حضور کاریزماتیک آرنولد و جلوه‌های بصری شگفت‌انگیز باعث می‌شه این فیلم رو حتماً ببینید.به طور خلاصه:اگر دنبال سرگرمی، اکشن و جلوه‌های ویژه هستی → ✅ تماشای این فیلم واجبه.اگر دنبال داستان عمیق و فلسفی هستی → ❌ این فیلم برات ساخته نشده.</description><category>امید حدیدی</category><author>امید حدیدی</author><pubDate>Thu, 21 Aug 2025 23:22:13 +0330</pubDate></item><item><title>نقد و بررسی فیلم Major Grom: Plague Doctor - اکشن عالی با داستانی افتضاح</title><link>https://virgool.ir/boxoffice/نقد-و-بررسی-فیلم-major-grom-plague-doctor-اکشن-عالی-با-داستانی-افتضاح-nwewm5vnzr5l</link><description>اگر اهل فیلم‌های اکشن و کمیک‌بوکی باشید، احتمالاً اسم فیلم Major Grom: Plague Doctor به گوشتون خورده. اثری روسی که با تبلیغات زیاد وارد میدان شد و قول داد یک تجربه متفاوت برای طرفداران دنیای ابرقهرمانی ارائه بده. اما آیا واقعاً توانست انتظارات را برآورده کند؟ در ادامه با نقد و بررسی فیلم Major Grom: Plague Doctor - اکشن عالی با داستانی افتضاح همراه باشید.📖معرفی  و خلاصه داستان فیلم Major Grom: Plague DoctorIMDb: امتیاز 6.4 از 10Rotten Tomatoes: نمره 75% در بخش تماشاگرانKinopoisk (روسیه): حدود 7.0 از 10نام اصلی: Major Grom: Plague Doctorنام فارسی: سروان گروم: دکتر طاعوناین فیلم بر اساس کمیک‌های محبوب روسی ساخته شده و تلاش کرده تا برای اولین بار یک دنیای ابرقهرمانی بومی در سینمای روسیه به نمایش بگذارد. از نقاط قوت این فیلم میتوان به بازیگران آن اشاره کرد که چهره‌های تاثیرگذار سینمای روسیه در این فیلم ایفای نقش کرده‌اند.خلاصه داستان فیلم درباره یک کارآگاه سرسخت و کمی بداخلاق به نام ایگور گروم است که در شهر سن‌پترزبورگ به مبارزه با خلافکاران می‌پردازد. او با موجی از جنایت‌های مرموز روبه‌رو می‌شود که توسط یک شخصیت ماسک‌دار به نام دکتر طاعون انجام می‌شوند. دکتر طاعون خودش را ناجی مردم معرفی می‌کند و به دنبال اجرای عدالت به روش خودش است. تقابل این دو شخصیت، محور اصلی فیلم را شکل می‌دهد.🕰 خط زمانی فیلم سروان گروم: دکتر طاعونشروع پروژه: ایده ساخت فیلم در سال ۲۰۱۷ از سوی Bubble Studios مطرح شد.تاریخ پریمیر: اولین نمایش فیلم در تاریخ ۲۵ مارس ۲۰۲۱ در روسیه برگزار شد.انتشار عمومی: فیلم از ۱ آوریل ۲۰۲۱ به صورت گسترده در سینماهای روسیه اکران شد.دنباله: در حال حاضر شایعاتی درباره ساخت دنباله این اثر وجود دارد، اما هنوز پروژه رسمی تأیید نشده است.🎬اطلاعات کامل این فیلمفیلم در دسته اکشن، جنایی و ابرقهرمانی قرار می‌گیرد. ترکیبی از صحنه‌های پر زد و خورد، معمای پلیسی و حال‌وهوای کمیک‌بوکی است که توسط استدیو Bubble Studios در سال 2021 تولید شده استبازیگران اصلی فیلمتیخون ژیزنف در نقش ایگور گروم (Major Grom)سرگئی گوروشکو در نقش دکتر طاعون (Sergey Razumovsky)لویا آیلینا در نقش یولیا پیچوگیناآلکسی ماکاروف در نقش فدور پروخورو🔎 نقد و بررسی فیلم Major Grom: Plague Doctorبا توجه به تمامی تبلیغاتی که برای تولید و نمایش این فیلم بر روی پرده‌های سینمای روسیه و سینماهای بین‌المللی صورت گرفت، این فیلم به نظر خوب می‌آید اما نقاط ضعف به شدت زیادی در این فیلم به چشم میخورد. اولین موردی که میتواند مخاطب را با این فیلم در تضاد قرار دهد صحنه‌های اولیه فیلم میباشد. در صحنه‌های اولیه کاملا فیلم‌نامه مبتدی و خط زمانی داستان از هم میپاشد و کمی طول میکشد تا بیننده با فیلم بتواند ارتباط برقرار کند.این از هم پاشیدگی داستانی رفته رفته کم میشود و در اواسط فیلم دیگر آزار دهنده نیست اما داستان فیلم اصلا خوب نوشته نشده و میتوانست خیلی بهتر باشد.در عوض جایی که در این فیلم خیلی بر روی آن تمرکز گذاشته شده است بر روی صحنه‌های اکشن بوده، صحنه‌های اکشن به شدت خوش ساخت و زیبا هستند و میتواند بیننده را محو در خود کند که نشان میدهد تیم جلوه‌های ویژه و بدل‌کاری کارشان را بلد بوده‌اند. تیم تصویر برداری هم میتوانست بهتر عمل کند اما روی هم رفته تصویر برداری نیز بسیار خوب انجام شده است.✅نقاط قوتاکشن دیدنی و خوش‌ساخت: صحنه‌های مبارزه، کارگردانی و جلوه‌های ویژه به شکل غیرمنتظره‌ای حرفه‌ای هستند.بازیگری تیخون ژیزنف: حضور پرانرژی و کاریزماتیک او باعث شده شخصیت Major Grom زنده و باورپذیر شود.جسارت در ساخت دنیای کمیک روسی: این تلاش Bubble Studios برای رقابت با مارول و DC قابل تحسین است.❌ نقاط ضعفداستان کلیشه‌ای: با وجود طراحی خوب شخصیت دکتر طاعون، روایت فیلم تکراری و قابل پیش‌بینی است.دیالوگ‌های سطحی: بعضی دیالوگ‌ها مصنوعی و ضعیف به نظر می‌رسند.توسعه‌نیافتگی شخصیت‌ها: به جز گروم و دکتر طاعون، بقیه شخصیت‌ها خیلی سطحی و فراموش‌شدنی هستند.📝 جمع‌بندی نهاییدر نهایت می‌توان گفت نقد و بررسی فیلم Major Grom: Plague Doctor - اکشن عالی با داستانی افتضاح نشان می‌دهد که این فیلم یک تجربه متفاوت در سینمای روسیه است. اگر به دنبال اکشن خوش‌ساخت هستید، ارزش دیدن دارد. اما اگر برایتان داستان و فیلمنامه در اولویت است، احتمالاً از روایت ساده و بعضاً ضعیف فیلم ناامید می‌شوید.به طور خلاصه:برای علاقه‌مندان به اکشن و دنیای کمیک: ✅ پیشنهاد می‌شودبرای کسانی که داستان قوی می‌خواهند: ❌ بهتر است سراغش نروید📌 نظر شما درباره این فیلم چیه؟ آیا فکر می‌کنید روسیه می‌تونه با مارول و DC رقابت کنه؟ توی بخش نظرات برامون بنویسید.</description><category>امید حدیدی</category><author>امید حدیدی</author><pubDate>Wed, 20 Aug 2025 23:24:26 +0330</pubDate></item><item><title>معرفی فیلم The Wizard of the Emerald City (2025) | جادوگر شهر زمرد</title><link>https://virgool.ir/boxoffice/معرفی-فیلم-the-wizard-of-the-emerald-city-2025-جادوگر-شهر-زمرد-pfsfmm2wfs1x</link><description>اگر دنبال یک فیلم فانتزی تازه برای آخر هفته هستید، فیلم The Wizard of the Emerald City 2025 یا همون جادوگر شهر زمرد می‌تونه انتخاب خوبی باشه. این اثر سینمایی محصول روسیه است و با جلوه‌های ویژه جذاب و قصه‌ای ماجراجویانه برای خانواده‌ها ساخته شده.📖 خلاصه داستان فیلم The Wizard of the Emerald City 2025داستان درباره دختری به نام الی (Ellie Smith) و سگ وفادارش توتوشکا است که در اثر یک گردباد وارد سرزمین جادویی می‌شوند.الی برای برگشتن به خانه باید به سمت شهر زمرد (Emerald City) حرکت کند. در این مسیر با سه شخصیت دوست‌داشتنی همراه می‌شود:مترسکی که آرزوی داشتن مغز دارد 🧠آدم آهنی که دنبال قلب است ❤️شیری که به دنبال شجاعت می‌گردد 🦁اما ماجرا اینجا تمام نمی‌شود! چون جادوگرهای خبیث گینگما و باستین‌دا سر راه او قرار می‌گیرند و داستان پر از چالش و ماجراجویی می‌شود.🕰 خط زمانی فیلم جادوگر شهر زمردEkaterina Chervova در نقش الی (اولین نقش سینمایی او)Yuri Kolokolnikov در نقش آدم آهنیYevgeny Chumak در نقش مترسکArtur Vakha صداپیشه شیر ترسوSvetlana Khodchenkova در نقش باستین‌دا (جادوگر خبیث)Vasilina Makovtseva در نقش گینگمااین ترکیب بازیگران باعث شده شخصیت‌ها برای تماشاگران واقعی و باورپذیر به نظر برسند.🎬 ژانر و استودیو سازندهژانر: فانتزی، ماجراجویی، خانوادگیکشور سازنده: روسیهاستودیوها: Central Partnership، Studio TriTe، Kinoslovo و CGF Filmsسال انتشار: ۲۰۲۵⭐ امتیازات فیلم جادوگر شهر زمردIMDb: امتیاز 5.4 از 10بعضی از سایت‌های روسی جلوه‌های بصری و طراحی صحنه فیلم را تحسین کرده‌اند.در مقابل، برخی منتقدان شخصیت‌پردازی‌ها را سطحی دانسته‌اند.🔎 نقد و بررسی فیلم The Wizard of the Emerald City 2025فیلم جادوگر شهر زمرد یک اثر دیدنی با نقاط قوت و ضعف خودش است:✅ نقاط قوت:جلوه‌های ویژه و دنیای رنگارنگ فیلم عالی طراحی شده.داستان مناسب خانواده‌ها و بچه‌ها است.شخصیت‌های دوست‌داشتنی باعث می‌شوند تماشاگر با فیلم ارتباط بگیرد.❌ نقاط ضعف:فیلم فقط بخش اول داستان را روایت می‌کند و در پایان ناقص به نظر می‌رسد.شخصیت‌پردازی بعضی کاراکترها خیلی سطحی است.ریتم فیلم در برخی بخش‌ها کند و تکراری است.📝 جمع‌بندیفیلم The Wizard of the Emerald City 2025 یا همون جادوگر شهر زمرد، اثری فانتزی و خانوادگی است که می‌تواند آخر هفته شما را پر از رنگ و ماجراجویی کند.اگرچه شاهکار بزرگی نیست، اما برای طرفداران داستان‌های کلاسیک و دنیای جادویی انتخاب سرگرم‌کننده‌ای خواهد بود.👉 پیشنهاد می‌کنم اگر به فیلم‌های فانتزی مثل Wizard of Oz علاقه دارید، این فیلم را در لیست تماشای خود قرار دهید.</description><category>امید حدیدی</category><author>امید حدیدی</author><pubDate>Tue, 19 Aug 2025 22:02:59 +0330</pubDate></item><item><title>نصب پایتون روی ویندوز، توی چهار مرحله</title><link>https://virgool.ir/@o.h.hadidy/نصب-پایتون-روی-ویندوز-توی-چهار-مرحله-flcqycqvqfcz</link><description>نصب پایتون روی ویندوز، توی چهار مرحلهبرای شمایی که به برنامه‌نویسی علاقه داری و تازه اینکار رو شروع کردی یا اینکه تازه به زبان پایتون مهاجرت کردی، اولین قدم، نصب پایتون روی سیستم خودتون هست.پایتون یک زبان مفسری (interpreter) هست که قبل از کار کردن با اون،‌ باید اسکریپت اون رو روی سیستم خودتون نصب کنید تا کدهای پایتون که نوشته میشه و فایل‌های پایتونی رو بتونه بخونه. در مورد زبان‌های مفسری اینجا بیشتر بخونیدبرای نصب پایتون روی ویندوز قدم به قدم باهم جلو میریم تا بتونیم به راحتی اون رو روی سیستم خودمون داشته باشیم و برنامه‌های خودمون رو به این زبان بنویسیم و اجرا کنیم.۱. دانلود کردن پایتونابتدای کار شما باید به سایت پایتون برید و در قسمت دانلود این سایت،‌ متناسب با سیستم‌عاملی که دارید اسکریپت پایتون مناسب رو دانلود کنید تا در مراحل بعد از اون استفاده کنیم.سایت پایتون رو باز کنید.موس خودتون رو روی تب Download ببرید و توی منوی باز شده روی دکمه downlaod python کلیک کنید.نصب پایتون بر روی سیستم‌عامل ویندوز۲. نصب پایتونبعد از اینکه پایتون برای شما دانلود شد،‌ روی اون کلیک کنید تا باز بشه و صفحه نصب اون به شما نمایش داده بشه. حالا وقتشه که بر روی دکمه‌های next کلیک کنید.اما چندتا نکته داره برای اینکه بتونیم از پایتون استفاده کنیم، در ادامه گزینه‌هایی که گفته شده رو تیک بزنید تا پایتون به صورت کامل نصب بشه و به مشکلی برخورد نکنید.مطابق با تصویر پایین تیک گزینه‌هایی که گفته شده رو فعال کنید. با فعال کردن این گزینه‌های پایتون به صورت خودکار به CMD یا Command Prompt سیستم شما اضافه میشه تا بتونید با استفاده از کلمه python توی صفحه سیاه معروف از پایتون استفاده کنید.اگر این گزینه‌ رو فعال نکرده باشید باید به صورت دستی خودتون پایتون رو به Path سیستم اضافه کنید تا بشه ازش استفاده کرد. (داستان داره، پس بیخودی خودتون رو درگیر نکنید و این تیک رو فعال کنید)نصب پایتون بر روی سیستم‌عامل ویندوزتوی مرحله بعدی روی دکمه Install Now کلیک کنید و منتظر بمونید تا فرایند نصب کامل بشه.و در مرحله آخر برای اینکه مشکلی در فرایند اضافه کردن پایتون به سیستم شما پیش نیاد رو دکمه‌ای که توی تصویر نمایش دادم کلیک کنید تا limitation سیستم شما برای اضافه کردن script به Path سیستم رو غیرفعال کنه.نصب پایتون بر روی سیستم‌عامل ویندوز&#xA;تبریک میگم حالا پایتون روی سیستم شما نصب شده و با زدن دستور `python --version‍‍` میتونید نسخه پایتونی که روی سیستم شما نصب شده رو مشاهده کنید.موفق باشید.</description><category>امید حدیدی</category><author>امید حدیدی</author><pubDate>Tue, 24 Sep 2024 08:25:11 +0330</pubDate></item><item><title>iGuide پشتیبان هوشمند فروشگاه شما.</title><link>https://virgool.ir/@o.h.hadidy/iguide-پشتیبان-هوشمند-فروشگاه-شما-gagyqbhtwcw7</link><description>بعد از یه مدتی که توی زمینه هوش مصنوعی مولد داشتم کار میکردم دیدم که خیلی از سایتها‌ی که دارم با اونها کار میکنم و پشتیبانی دارن به مشتریانشون میدن، مشکلات زیادی توی چت با پشتیبانی دارن، اطلاعات ضعیف، برخی پاسخگویی نادرست، زمانبر بودن فرایند و اینکه نمیتونستن مشاوره درستی بابت اینکه من چه محصولی رو میتونم بر اساس نیازم انتخاب کنم بهم بدن. پس من چیکار کردم؟ (همشون رو بیکار کردم?). https://www.producthunt.com/posts/iguide هوش مصنوعی این روزها داره همه‌جا رو میگیره و من هم گفتم، خوب چه بهتر که ابزاری باشه تا به مشتریان به صورت هوشمند پشتیبانی بده و به اونها کمک کنه. این ابزار میتونه هزینه سایتها رو برای منابع انسانی کاهش بده، پشتیبانی اونها رو دقیق‌تر و سریع‌تر کنه و همینطور حس خرید درست و خوبی رو به مشتریان فروشگاه‌ها بده.iGuide ابزاری که با استفاده از اون شما میتونید یک پشتیبان هوشمند و همه‌کاره رو به فروشگاه شما بیاره.مهم نیست که چه نوع سایتی داری، خبری، فروشگاهی، آموزشی و ...این ابزار با دریافت کردن اطلاعات فروشگاه شما و محصولات موجود بر روی فروشگاه شما شروع میکنه با مشتریان شما صحبت کردن و پاسخ دادن به سوالاتشون، و بر اساس نیازهای مشتریان میتونه بهترین محصول برو برای خرید به اونها پیشنهاد کنه تا حس خوبی خرید مطمئن از سایت شما همیشه توی ذهنشون قرار بگیره. (دیگه قرار نیست سایت شما رو فراموش کنن?).و نکته مهم، به صورت میانگین هزینه یک شخص که به عنوان پشتیبان سایت برای مشتریان استخدام کنید ۶ میلیون تومنه، اما این ابزار به صورت رایگان روی سایت شما فعال میشه و شروع بع کار میکنه.حالا اگه دوست داری این ابزار رو تست کنی و از اون استفاده کنی میتونی اینجا بیای و توی اون ثبت‌نام کنی و از اون استفاده کنی. https://iguide.darkube.app/ خوشحال میشم که توی product hunt هم به من feedback بدی. دمت گرم دوست من. https://www.producthunt.com/posts/iguide </description><category>امید حدیدی</category><author>امید حدیدی</author><pubDate>Sat, 26 Aug 2023 13:20:08 +0330</pubDate></item><item><title>بهینه‌سازی SEO سایت با مهاجرت به NextJs</title><link>https://virgool.ir/@o.h.hadidy/بهینه-سازی-seo-سایت-با-مهاجرت-به-nextjs-l8ctba0yngbg</link><description>دوستان عزیزم سلام توی این مقاله بیاید کمی در مورد اینکه حالا بعد از اینکه سایت ری‌اکتی خودم رو راه اندازی کردم، چطور اون رو برای موتور‌های جستجوگر بهینه‌سازی کنم صحبت کنیم.در این مقاله، قصد داریم با معرفی nextjs و قابلیت‌های اون، با شما همراه باشیم. Next.js یک فریم ورک رایج برای توسعه وب سایت‌های React است که امکاناتی مانند SSR، مدیریت دوام وب، اجرای کامل کلاینت-سرور و ... دارد. یکی از قابلیت‌های اصلی nextjs، Server-Side Rendering (SSR) است.روش SSR یک روش برای بارگذاری و پردازش HTML، CSS و JavaScript در سروره که به این صورت عمل میکنه که در هنگام درخواست صفحه از سوی کاربر، سرور HTML رو به Client میده و بلافاصله برای کاربر به نمایش در میاره. با استفاده از SSR در nextjs، می‌تونید پایداری، سرعت و بهینه‌سازی در جستجوی سئو را بهبود بخشید.برای استفاده از SSR در nextjs، کافیه که بخش مربوطه را به صورت داخلی در برنامه React خود فراخوانی کنید. برای مثال، با استفاده از متد getServerSideProps()، می‌توانید داده‌های لازم را از سرور فراخوانی کنید و به صفحه React خود اضافه کنید.دلایلی که برای استفاده از SSRدر nextjs وجود دارن شامل بهبود کارایی سرور و موتورهای جستجو، افزایش سرعت بارگذاری صفحه و بهبود تجربه کاربری است.در ادامه، یک مثال کد برای استفاده از SSRدر nextjs نشان میدیم:در این مثال، getServerSideProps به عنوان یکی از متدهای nextjsفراخوانی شده است. این متد اطلاعات مورد نیاز برای ایجاد صفحه رو از سرور دریافت میکنه و به عنوان پارامتر ورودی به کامپوننت Home میفرسته. سپس در این کامپوننت، این اطلاعات در قالب یک عنصر h1 و یک پاراگراف نمایش داده میشه.بعضی از قابلیت‌های اصلی nextjs رو هم اینجا آوردیم:۱. سیستم Automatic Code Splitting: در nextjs، کد شما به صورت خودکار به بخش‌هایی تقسیم میشه که هر بخش فقط برای بخش مشخصی از صفحه فراخوانی میشن. این کار باعث کاهش زمان بارگذاری صفحه و بهبود تجربه کاربری میشه.۲. سیستم Built-in CSS Support: در nextjs، شما می‌توانید به راحتی از انواع فایل‌های CSS مانند SASS، LESS، و ... استفاده کنید. همچنین nextjs ابزارهایی برای بهینه‌سازی CSSارائه می‌دهد که به کاهش حجم فایل‌های CSS و بهبود سرعت بارگذاری کمک میکنه.۳. سیستم API Routes: با استفاده از API Routes در nextjs، شما می‌توانید یک APIساده را ایجاد کنید که به راحتی در همان برنامه Reactخود قابل استفاده است. همچنین nextjsابزارهایی برای توسعه API ساده و درک آن‌ها برای توسعه‌دهندگان را ارائه می‌دهد.۴. سیستم Static Site Generation: با استفاده از قابلیت Static Site Generationدر nextjs، می‌توانید صفحات ایستا را به صورت پویا تولید کنید. با این روش، شما می‌توانید صفحات سریع‌تر و بدون نیاز به سرور پردازشی ایجاد کنید که برای بارگذاری صفحه کمترین تاخیر را دارد.در کل، با استفاده از SSR در nextjs، می‌توانید به راحتی و با کمترین تلاش، سرعت و بهینه‌سازی سایت رو، بهبود ببخشید.اگه سوالی در مورد این فریمروک داشتید میتونید از من سوال بکنید تا بیشتر باهم در مورد این فریمورک گپ‌وگفت داشته باشیم.راستی اگه دوست دارید که این فریمورک رو یاد بگیرید میتونید از document اصلی خودش که خیلی هم تمیزه استفاده کنید. https://nextjs.org/docs/getting-started </description><category>امید حدیدی</category><author>امید حدیدی</author><pubDate>Fri, 03 Mar 2023 11:45:49 +0330</pubDate></item><item><title>پتانسیل‌های ناشناخته یک پلتفرم؛ لیمو</title><link>https://virgool.ir/@o.h.hadidy/پتانسیل-های-ناشناخته-یک-پلتفرم-لیمو-hkmmsrncuepd</link><description>قبل از اینکه این مقاله رو شروع کنم ابزاری رو میخوام معرفی کنم که میدونم به کار خیلی از شما میاد، یه سیستم راه اندازی جلسات آنلاین مثل skyroom و bbb که از لیمو قدرت گرفته و به صورت رایگان به شما کمک میکنه تا بتونید جلسات آنلاین رو برای آموزش و ارائه کنفرانس راه اندازی کنید. ابزاری به نام: کالیمو -&gt; ابزار برگزاری جلسات آنلاینکالیمو، ابزار برگزاری جلسات آنلاینمیتونید توی این لینک‌ها بیشتر در مورد این ابزار بخونید و از اون استفاده کنید تا منم خوشحال بشم?. https://omidima.github.io/calimoo-landing/#/https://omidima.github.io/calimoo-landing/#/ کلی با خودم کلنجار رفتم، این که لیمو یک پیامرسان درون سازمانیه که کلی قابلیت داره و دقیقا زیرساخت‌های لازم برای ساختن یک پلتفرم برای ساختن اپ‌ها چت، فضای آپلود فایل، تسک منیجمنت، رباتهای مدیریتی واتساپ و اینستاگرام و ... اما خوب همه‌ی اونها تنها داره داخل خود نرم افزار لیمو استفاده میشه کلی از پتانسیلی که این پلتفرم داره رو داره میگیره.پلتفرمهای ارائه بک‌اند آماده و دیتابیس و مدیریت فایل و ... مثل (back4app, firebase) دقیقا نمونه‌هایی هستند که لیمو تا ۸۰ درصد قابلیت‌های اونها رو پیاده کرده اما تنها داره توی خودش از اون استفاده میکنه.اینکه لیمو قابلیت توسعه داره و شما میتونید ابزار مورد نیاز خودتون رو بسازید یک قابلیت بی‌نظیر توی لیموست که من خیلی از اون خوشم میاد و این مزیت رقابتی اصلی لیمو میتونه باشه.فرض کن میخوای یک اپلیکیشن چت یا یه سیستم پشتیبانی آنلاین برای کسب‌وکارت بنویسی، خوب لیمو بهت زیرساخت چت رو رایگان داره میده؛ realtime database, websocket, group &amp; direct و هر چیزی که یک ابزار چت نیاز داره که از اون استفاده کنه رو لیمو در اختیارت میزاره -&gt; فقط کافیه یه زبان برنامه نویسی بلد باشی و از sdk لیمو استفاده کنی. (چی از این بهتر??)حالا فرض کن که به اپلیکیشن ساختی و نیاز داری به یک فضای ابری برای اینکه بتونی فایلهای خودت رو روی اون ذخیره سازی کنه یا اینکه یه آپلود سنتر درست کنی و بتونی فایل‌های کسب‌وکارت رو توی اون قرار بدی (firebase hosting, dropbox). خیلی راحت میتونی با لیمو این کار رو انجام بدی و از قابلیت‌های اون استفاده کنی.شاید نیازداشته باشی که یه سیستم راه‌اندازی جلسات آنلاین داشته باشی که مثل باقی سیستم‌های از این دست مثل (bbb) بتونی استفاده کنی بدون اینکه نیاز باشه بری یه سرور بخری و روی اون bbb رو بالا بیاری و کلی باهاش دست و پنجه نرم کنی، میتونی از تماس تصویری لیمو استفاده کنی و برای خودت یه ابزار راه اندازی جلسات آنلاین درست کنی. -&gt; ( مگه از این بهتر هم میشه???)شاید هم بخوای یه ابزار تسک منیجمنت شخصی داشته باشی و بخوای اون رو راه اندازی کنی و به صورت شخصی و یا برای تیم خودت از اون ابزار استفاده کنی.باید یه خبر خوب بهت بدم: همه‌ی این ابزارها نیاز به بک‌اند، کانفیک‌های طولانی، کلی داستان و پیچش برای توسعه سرور و ... داره؛ حالا لیمو همه‌ی این قابلیت‌ها رو داره و بدون اینکه بدونی توسعه سرور و بک‌اند یه چه شکلی هست میتونی از این زیرساخت‌های لیمو استفاده کنی و ابزارهای و برنامه‌های کاربردی که دوست داری رو با اون توسعه بدی.چرا لیمو نباید مثل back4app باشه، زیرساخت چت قدرتمندی داره(پیامرسان‌های داخلی هم میتونن ازش استفاده کنن تازه)، قابلیت توسعه فراوانی داره، فریمیوم هست و کلی قابلیت دیگه.توصیه میکنم هرکسی که داره این پست رو میخونه حداقل یکبار به لیمو سر بزنه و ببینه که توی اون داره چه اتفاقاتی میفته. (بخش توسعه دهندگان لیمو sdk ها)</description><category>امید حدیدی</category><author>امید حدیدی</author><pubDate>Tue, 30 Aug 2022 23:14:03 +0430</pubDate></item><item><title>instagram_private_api package for dart</title><link>https://virgool.ir/Rocket/instagramprivateapi-package-for-dart-eafip3nfqk9k</link><description>سلام سلام.از چند وقت پیش بدون اینکه بیام و کمی تحقیق کنم شروع کردم به توسعه دادن یه packageبرای استفاده کردن از api اینستاگرام با استفاده از دارتیه چیزی توی مایه‌های instagra_private_api و instagrapi.داشتم کارم رو ادامه میدادم که یهو دیدم (زکی) یکی دیگه یه پکیجی رو زده که تقریبا اینها رو هندل کرده اما نمیشه ازش استفاده کرد.مشکلی که این پکیج داشت توی قسمت auth بود و اینکه دوسال پیش آخرین نسخه اون publish شده بود و اصلا نمیشد ازش توی پروژه‌های فعلی استفاده کرد.نه null-safe بود و نه درست حسابی میتونست کار کنه. (همه پکیج‌ها منقضی شده بود)تا اینکه اومدم و مشکلاتش رو حل کردم براش تست نوشتم و کارهایی که خودم کرده بودم رو هم توی اون گذاشتم. دیروز با موفقیت روی برنچ master قرار گرفت و این پکیج آماده شد برای سرویس دادن به شما عزیزان??خوب اگه شما هم دوست داری که از قابلیت‌های api اینستاگرام استفاده کنی توی برنامه‌های فلاتری و dart خودت میتونی از این پکیج استفاده کنی و مشکلاتش رو هم گزارش بدی تا درستش کنیم.پیشاپیش دم همتون گرم. ? https://github.com/Nerixyz/instagram_private_api.git </description><category>امید حدیدی</category><author>امید حدیدی</author><pubDate>Sun, 21 Aug 2022 10:29:39 +0430</pubDate></item><item><title>منم مثل بقیه یه چرخه حیاط دارم. برسی چرخه حیاط در فلاتر</title><link>https://virgool.ir/@o.h.hadidy/منم-مثل-بقیه-یه-چرخه-حیاط-دارم-برسی-چرخه-حیاط-در-فلاتر-gvmkrep3bybc</link><description>بعد از اینکه یه سری دوره‌های آموزشی ایرانی رو دیدم و ( حتی انگلیسی‌ ) مبحثی که کمتر بهش توجه شده بود چرخه حیاط برنامه توی فریمورک فلاتره. چرخه حیاط ( lifecycle ) به روند اجرای یک برنامه توی حافظه رم گفته میشه. حالا این برنامه میتونه با پایتون باشه و یه عملیات رو انجام بده و تموم بشه، یه برنامه هم میتونه بره توی background و تا زمانی که گوشی کار میکنه فعال باشه.این داستان چرخه حیاط زمانی شروع میشه که شما یه اپ رو داری مینویسی یه سری عملیات‌هایی رو داری و ممکن بعضی از اونها مدتها زمان بخوان برای اجرا شدن ( مثلا یه listener توی اپ که state نتورک گوشی رو هندل میکنه ).برنامه باید به صورتی باشه که  listener من زمانی که برنامه میره توی حالت deactive یا به اصطلاح میره توی حافظه موقت تا کاربر دوباره وارد اون بشه، اون listener هم یه استوپی داشته باشه تا زمانی که دوباره اپ بیاد تو حالت اکتیو. حالا اگه این اتفاق نیفته چی؟؟فرض کنید که این listener هر زمانی که اینترنت وصل شد یه عملیاتی رو انجام بده و اون رو بریزه توی دیتابیس، توی این زمان کاربر ممکنه state نتورک خودش رو عوض کنه مثلا یهو اینترنتش تموم بشه یا به وایفای وصل بشه، در این صورت کاری که برنامه انجام میده اینه که میره request میزنه به سرور و عملیات‌ها رو انجام میده و نیاز داره تا اپ توی حافظه نگه داری بشه، زمانی که شما این کار رو انجام دادید یه مشکلی به وجود میاد، memoryleack. مثال من، مثال درستی نبود و فقط برای اینه که متوجه داستان باشید گفته شده.بعد از این مشکل اپ شما فریز میشه، هنگ میکنه، متوقف میشه و هزاران اتفاق دیگه که نباید بیفته چون اگه از سرویس نتیفیکیشن استفاده کنید دیگه نمیتونید اون رو دریافت کنید.برخی موارد هم هست که فرایند شما اونقدری سنگین میشه که شروع میکنه به خوردن گوشی کاربر میکنه و گوشی داغ میکنه، کند میشه و ...پس همیشه باید به lifecycle توجه کرد که اتفاقات ناخواسته‌ای برای برنامه شما نیفته. اما حالا این‌همه حرف برای چی بود؟ درسته flutter هم مثل باقی برنامه‌ها و فریمورک‌ها یه lifecycle داره برای screen هایی که توی برنامه اجرا میشن. ( توی فلاتر activity ها با عنوان screen شناخته میشن )اگه با فلاتر کار کرده باشید با انواع مختلف widget های screen آشنا هستید.StatelessWidget, StatefulWidgetاین دو نوع ویجت شاکله اصلی تمامی screenهای موجود هستن و برای خودشون یه چرخه حیاط توی برنامه نیتیو و یکی هم توی خود فلاتر دارن.چرخه حیاط نیتیو همون چرخه‌ی بیسیکی هست که برنامه های سیستم‌های عامل دارن. مثلا برای اندروید به این صورته:onCreate, , , , , onDestroy.خوب حالا بریم سراغ برسی چرخه حیاط با استفاده از این توابعتوی زمانی‌که شما از StatelessWidget استفاده میکنید، صفحه شما توی تابع onCreate ساخته میشه و screen شما توسط engain فلاتر توی اکتیویتی به نمایش درمیاد و بعد از اینکه برنامه متود onDestroy رو صدا زد برنامه کلا تموم میشه.اینو بگم که برنامه شما توی فلاتر در حالت پیش‌فرض توی یک اکتیویتی اجرا میشن و بقیه کارها توی flutter engain انجام میشه.خوب حالا نوبت اونه که با StatefulWidget آشنا بشم و بفهمیم که چطور کار میکنه.توی این ویجت lifecycle از چند مرحله تشکیل شده که میتونه به شما کمک کنه متوجه بشید که توی مراحل مختلف screen داره چه اتفاقی میفته.معمولا Stateless ویجت‌ها screen های یکتایی هستند که تغییری توی اونها اعمال نمیشه و اگر بخواید به صورت realtime یک مقدار رو تغییر بدید و این تغییر رو روی صفحه نمایش بدید این امکان براتون وجود نداره، برعکس اون توی StateufulWidget شما میتونید این کار با استفاده از متود setState انجام بدید و تغییرات جدید رو به کاربر نمایش بدید.تو این نوع ویجت lifecycle به این شکل اتفاق میافته: createState()initState()didChangeDependencies()didUpdateWidget()build()setState()deactivate()dispose()خیله خوب بریم سراغ توضیحاتش:createState: تمامی StateFulWidget ها از دو تا کلاس تشکیل شدن.خوب کلاس MyHomePage رو به عنوان کلاس Widget میشناسیم. این کلاس سازنده یا مادر State ماست. تمامی property هایی که قراره به این screen یا این Widget پاس داده بشه میره و توی کلاس Widget میشینه و متود createState به عنوان اولین گام چرخه حیاط برنامه state صفحه رو برای نمایش به activity ما پاس میده.کلاس دوم هم، کلاس State نامیده میشه که معمولا با این الگو نام گذاری میشه:_{WidgetClassName}Stateدیگه باقی کارها رو باید توی این کلاس انجام بدید و کدهایی که قراره نتیجه اون به کاربر نمایش داده بشه توی این قسمت گذاشته میشن.initState():این متود اولین چیزیه که بعد از ساخته شدن و به نمایش دراومدن کلاس state فراخونده میشه ( یعنی بعد از متود سازنده، این متود اجرا میشه ).didChangeDependencies():توضیح این متود یکم کار سخته اما به صورت کلی باید بهتون بگم که بعد از متود initState این متود اجرا میشه و اگه یه InheritedClass کلاس داشته باشه، با استفاده از این متود به تغییرات state برنامه گوش میکنه و با به InheritedClass کلاس ما میگه که خوب state تغییر کرده و شما هم باید خودت رو تغییر بدی . کمتر کسی از این متود استفاده میکنه مگه اینکه بخواید کار خیلی عجیب غریبی انجام بدید. ( پس خیلی خودتون رو درگیر این یکی نکنید ?? )didUpdateWidget():خوب بیاید این متود رو بهتون معرفی میکنم.( بچه‌ها didUpdateWidget، didUpdateWidget بچه ها ? )این متود چه کاری انجام میده؟ زمانی که شما این widget رو توی یک subtree از  screen ها قرار بدید، ممکنه که screen مادر تغییراتی داشته باشه که نیاز باشه همگام با اون تغییرات این widget, state هم تغییر کنن. این متود میاد چک میکنه اگه مادر تغییر کرد من نیاز دارم تغییر کنم یا نه که به صورت پیشفرض همیشه تغییر میکنه و نیازی نیست خیلی از این متود استفاده کنید.این متود همیشه بعد از didChangeDependencies و قبل از build  اجرا میشه.build():شاید بشه گفت اصلی ترین متودی که باید از اون توی state های فلاتر استفاده کنید این ویجت باشه. بعد از دو مرحله ای که در بالا براتون توضیح دادم نوبت به اون میشه که کدهای ui رو که نویشتیم و قراره به کاربران نمایش بدیم رندر بشه و به نمایش دربیاد.بله درست متوجه شدید!! این متود کارش دقیقا همینه و یک سری اتفاقاتی هم براش میفته که توی ادامه به اونها اشاره خواهیم کرد.setState():نوبتی هم که باشه، نوبت این تابع گران‌بها و عزیزه. زمانی‌که شما مقادیری رو توی state خودتون تغییر بدید و نیاز داشته باشید که اون مقدار در صفحه هم تغییر کنه باید از این متود استفاده کنید. ( مثلا بیشتر یا کمتر کردن یک عدد )این متود یک فانکشن میگیره که به صورت synchronous انجام میشه و نمیتونیم از async/await برای اون استفاده کنیم.زمانی که شما این تابع رو فراخوانی کنید همه چیز آماده میشه تا دوباره متود build ساخته بشه و به اصطلاح صفحه rerender بشه.deactivate():این متود به ندرت استفاده میشه و زمانی که screen از subtreeحذف توسط flutter فراخونده میشه و screen رو میبره تو حالت اغماااااا. ??اما این متود یکسری توضیحات داره که ترجیح میدم توی متود بعدی براتون بنویسمش پس یکم بیاید پایینتر.dispose():خوب این متود کارش تقریبا شبیه به متود قبلیه اما با یکم توضیح و تفاوت. اول بگم که این متود هم وقتی flutter بخواد screen رو حذف کنه بعد از deactivate  اجرا میشه. اما تفاوت؟؟خوب بعضی وقتا هست که شما برای screen خودتون یک listener ساختید و این listener داره کار میکنه و هنوز از کار نیفتاده، flutter به جای این‌که از dispose برای نابود کردن screen استفاده کنه میاد و از deactivate استفاده میکنه تا بتونه فرصتی بده به اون listener تا به کار خودش پایان بده و بعد از اون بیاد و این متود رو اجرا کنه.خوب دیگه فکر میکنم که همه متودهای این widget رو هم براتون گفته باشم.امیدوارم که تونسته باشم کمکتون کرده باشم و سعی میکنم درباره فلاتر و بعد از اون هم جنگو بیشتر براتون بنویسم. خوشحال میشم که نظر بدید تا بهتر بتونیم این مقالات رو بنویسم. :)ممنون که وقت گذاشتی دوست من ? https://flutterbyexample.com/lesson/stateful-widget-lifecycle </description><category>امید حدیدی</category><author>امید حدیدی</author><pubDate>Thu, 31 Mar 2022 13:29:58 +0430</pubDate></item><item><title>یک اشتباه جزئی که روزها وقتم رو گرفت</title><link>https://virgool.ir/@o.h.hadidy/یک-اشتباه-جزئی-که-روزها-وقتم-رو-گرفت-xv3ulu1irlcl</link><description>سلام دوستای گلم دوباره بعد از مدت‌های یه تجربه دیگه رو اومدم با شما به اشتراک بزارم که مطمئنم میتونه بهتون کمک کنه و براتون جذاب باشه. شاید خیلی از شما به مشکلات کوچیکی برخورده باشید که سر بی دقتی خودتون یا اینکه یه سری مسائل پیش پا افتاده رو رعایت نکردن، براتون به وجود آوره.اشتباهات توی دنیای برنامه نویسی موجب میشن که درک بهتری از یک زبان پیدا کنیم و همچنین بهمون کمک میکنه تا تجربه بیشتری توی اون زمینه پیدا کنیم و بعدا به اون مشکل نخوریم. ( بلاخره مار از یه سوراه دوبار گزیده نمیشه ?? )روزها بود که توی اپلیکیشن لیمو یه مشکل خیلی اساسی توی آپلود کردن فایلها من رو اذیت میکرد و نمیدونستم که مشکل دقیقا کجای کاره. فقط این رو میتونستم از روی لاگ‌ها متوجه بشم که چه اتفاقی داره میفته.تمامی لاگ‌ها نشون میدادن که بعد از آپلود شدن چند فایل اگه کاربر از صفحه آپلود خارج بشه برنامه بعد از آپلود شدن فایل نمیتونه اون رو از توی Queue در بیاره و برنامه بعد از مدتی کرش میکنه. ( اینم بگم که من توی لیمو با فلاتر برای ios برنامه مینویسم ??? )دست به کار شدم، شروع کردم به زیر و رو کردن کدهای برنامه از قسمتهایی که ربطی به آپلود کردن نداشت تا lifecycle ویجت ها.اولین اشتباهی که کرده بودم این بود که برای این قسمت از برنامه ( یعنی قسمت upload Management ) تست ننوشته بودم و درست متوجه کارش نبودم و نمیتونستم درست درکش کنم، پس شروع کردم به نوشتن تست‌ها.عجب بود که تمامی تست‌هایی که مینوشتم داشت pass میشد!!? اما مشکل همچنان وجود داشت.بعد از یکی دو روز کلنجار رفتن با برنامه به این قسمت رسیدم.خوب همونطور که اسم تابع میرسونه، قرار بود که این تابع تمامی فایل‌هایی که توی صف آپلود قرار دارن رو اولا کنسل کنه و بعد هم از توی لیست پاکشون کنه. ( پاک کردن مشکلی نداشت و تابع cancelFileUpload، این کار رو انجام میده ? )روند کاری تقریبا معلومه ( نیست خیلی کد تمیزه?? ) یه کپی از روی fileFuture درست میکنیم و از روش یه forEach میکنیم و به ازای هر key، مقدار داخل صف آپلود پاک میشه. ( fileFuture همون صف آپلوده)به نظر همه چیز درست میاد کد باید مثل بچه آدم کار کنه اما، یه چیز خیلی مهم و ساختار شکنانه رو من رعایت نکردم.???قطعا همه شمایی که برنامه نویسی کردید میدونید ( برای اونایی که نمیدونن میگم? ) زمانی که شما یک متغیر تعریف میکنید و مقداری به اون میدید میره توی حافظه ذخیره میشه و کار خودش رو انجام میده.حالا این متغیر میتونه از نوع های اصلی باشه میتونه از نوع‌های فرعی باشه، اما یه فرقی بینشون هست. زمانی که شما از یک مقدار اصلی استفاده میکنید مثلا عدد ۵، آدرس این مقدار درون متغیره شما ذخیره میشه و میتونید ازش کپی بگیرید روی یک متغیر دیگه و بدون اینکه متغیر اولیه دست کاری بشه روی متغیر دستکاری شده تغییراتی رو اعمال کنید. اما برای کلاسها دیگه نه??!!کلاسهایی که شما درست میکنید یا توسعه دهنده ها درست میکنن در هنگامی که شئ از روشون ساخته میشه یک  آدرس یکتا میگیرن که اگه توی یک متغیر دیگه ازشون کپی بگیرید، هر عملی که بر روی متغیر کپی شده انجام بدید، روی متغیر اصلی هم اعمال میشه!?? ( یا خودی خدا‌، البته نمیدونم درست تونستم منظور رو برسونم و درست گفتم یا نه) حالا این کد بالا نمایش میده منظور من چیه و خروجی چه تغییری میکنه. از یک متغیر که شئ person توش ریحته شده یه کپی گرفتیم و توی tempValue ریختیم. انتظار دارم که خروجی Ali, Omid باشه اما داستان متفاوت شد.??حالا فکر کنم متوجه اشتباه من توی کدم شده باشید، نوع داده HashMap یک نوع کلاسه که من ازش استفاده کردم پس همینطوری الکی کشکی نمیتونم اون رو داخل یه متغیره دیگه بریزم و شروع کنم به تغییر دادن. ( دقیقا هر دو تا متغیر رو به فنا میدم. ?? )پس باید چیکار کنم؟؟ معمولا کلاسهایی که توی Dart وجود دارن و توسعه دهنده ها اون رو ساختن یه سری متود مثل copyWith, from, ... دارن که میشه از یک کلاس کپی گرفت و ازش استفاده کرد.پس حالا میتونیم کد درست رو بنویسیم و ازش استفاده کنیم.حالا با این تغییر نسبتا ریز توی خط سوم کدها ( کامنتها رو در نظر نگرفتم ) برنامه به شکل کاملا درستی کار خواهد کرد و اون تستی هم که fail شده بود الان داره تیک سبز نشون میده. هوری هوریااااااا ???خوب حالا اگه کلاس رو خودمون ساخته بودیم و این متودها رو نداشت چی ( دو دستی بزنیم تو سرمون؟ ?? )خوب اینجا باید خودتون دست به کد بشید و یه متون مثل copyWIth توی کلاستون درست کنید. توی کد زیر من این متود رو درست کردم و زیرش هم براتون توضیح میدم که چی به چیه.خوب اگه کدهای بالا رو یادتون باشه با کلاس person آشنایی دارید و حالا من این کلاس رو به این شکل بازنویسی کردم. یه متود ایجاد کردن توی این کلاس با عنوان copyWith و تمامی آپشنهایی که سازنده کلاس میگرفتن رو به این متود دادم و در آخر هم گفتم که یه کلاس جدید با این عنوان برای من برگردون تا بتونم ازش استفاده کنم. در ضمن این رو هم در نظر گرفتم که کاربر میتونه آرگمان خاصی به این متود نده که در این صورت می‌ره و از دیتاهای فعلی کلاس استفاده میکنه.خیلی هم خوب حالا دیگه اگه خواستم جایی از کلاسم کپی بگیرم میتون از این متود استفاده کنم و یه کپی باکلاس بسازم تا متغیر قبلی دست کاری نشه.خوب امیدوارم که این مقاله تونسته باشه کمکتون کنه و تونسته باشم بهتون کمک کنم.خوشحال میشم شما هم تجربیات جذاب خودتون رو این زیر برام کامنت کنید.</description><category>امید حدیدی</category><author>امید حدیدی</author><pubDate>Tue, 29 Mar 2022 11:33:04 +0430</pubDate></item><item><title>همیشه مراقب کانفلیکت هایی که میتونن پیش بیان باشید.</title><link>https://virgool.ir/@o.h.hadidy/همیشه-مراقب-کانفلیکت-هایی-که-میتونن-پیش-بیان-باشید-ddhzjhwa3mdj</link><description>میخوام از یک تجربه که شاید هفته ها وقت من رو گرفت و موجب شد که برخی کارهام رو عقب تر بندازم براتون بگم.معمولا زمانی که شما به صورت تیمی با هم دیگه کار میکنید روی یک سیسیتم مدیریت پروژه و کد مثل گیتهاب یا گیت لب استفاده میکنید. خوب این کمک میکنه که سرعت کار شما خیلی بالا بره و پروژه رو سریعتر به پایان برسونید اما برخی موارد هم ممکن پیش بیاد که نا هماهنگی بین اعضای تیم، یکسری به هم ریختگی ها و مشکلاتی رو پیش بیاره که تا هفته ها درگیر اون بشید.بعد از اینکه وارد تیم لیمو شدم شروع کردیم به توسعه اپ ios با فلاتر ( که خوب یه فریمورک خیلی خوف و خفنه) جو گیر شده بودم و هر دو روز یه مرج ریکوئست میدادم و همین هم باعث شد که با یک کانفلیکت ( همون ناهماهنگی خودمون) برخورد کنیم که سر ناهماهنگ بودن من با بقیه بچه های تیم بود.لیمو یک استارت‌آپ هست که حول نرم‌افزار لیمو شکل گرفته. نرم‌افزار لیمو یک ابزار تعاملات کاری ویژه محیط‌های کاری، سازمان‌ها و شرکت‌ها هست که ارتباطات کاری و یکپارچه‌سازی (Integration) نرم‌افزراهای کاری رو مدیریت می‌کنه.نرم‌افزار لیمو در واقع یک team communication platform محسوب می‌شه.خلاصه که این ناهماهنگی به شکلی عجیب بود که یک سری از کدها به کل از دست رفته بود و دو سه روز به صورت کامل روی پروژه بودیم تا بتونیم این ناهماهنگی رو درستش کنیم، که درست هم شد اما خیلی از قسمت های پروژه آسیب دیده بود و مجبور بودیم تا دوباره اونها رو باز نویسی کنیم یا اینکه ساعت های باهاشون دست و پنجه نرم کنیم تا فقط بشه اپ رو روی گوشی موبایل اجرا کرد ?? .تونستیم بعد از کلی کلنجار رفتن و وقت گذاشتن روی پروژه، حذف کردن بعضی از برنچ ها و بازنویسی کردن بخشی از کدهای پروژه برنامه رو روی موبایل ران کنیم. هورااااااهمه چیز به نظر درست میومد و دوباره کار توسعه رو پیش گرفته بودیم که تازه یه سری باگ ریز و درشت شروع کردن به ناخدا شدن برای ما.اسپرینت به اسپرینت که جلو میرفتیم با مشکلات جدیدتری روبرو میشدیم و بخشی از وقتمون رو باید روی باگ های ایجاد شده از اون کانفلیکت تلف میکردیم. یک روز گزارش از غیرفعال شدن برخی قسمتها گزارش میگرفتیم و یک روز از عملکرد نادرست برنامه روی بعضی از اکشن ها.بعد چند روز مشکلات اساسی حل شدن اما مشکلات ریزی که ناگهان خودشون رو به ما نشون میدادن تا مدت ها همراه ما بود ( حداقل همراه من که بودن ) و مجبور بودیم که اونها رو در کنار تسک اصلی فیکس کنیم.بعد از این تجربه تصمیم گرفتیم که اول کدهای همدیگه رو به دقت برسی کنیم و اگه جایی از اونها رو متوجه نشدیم یه جلسه بزاریم تا اون رو برای همدیگه توضیح بدیم و از به وجود اومدن ناهماهنگی های بعدی جلوگیری کنیم.مدت زمان زیادی نیست که با تیم لیمو همکاری میکنم، خوش میگذرونم و تجربه کسب میکنم اما به جرئت یکی از تجربه هایی که میتونستم به دست بیارم این کانفلیکت لعنتی بود.فعلا که همه چیز خوبه و با یه تیم قدرتمند رو به جلو حرکت میکنیم.??اگه دوست داری بیشتر در مورد لیمو و کار اون بدونی میتونی این مقاله رو هم بخونی تا بیشتر با لیمو آشنا بشی دوست من.? https://virgool.io/@limoo-im </description><category>امید حدیدی</category><author>امید حدیدی</author><pubDate>Mon, 06 Dec 2021 17:55:50 +0330</pubDate></item><item><title>چرا وردپرس رو اذیت میکنید؟؟</title><link>https://virgool.ir/@o.h.hadidy/چرا-وردپرس-رو-اذیت-میکنید-zyghwykta3ui</link><description>وردپرس،کوچک اما بزرگواقعا چرا؟؟ تو بگوراستشو بخواین برنامه نویسهای زیادی رو دیدم که نسبت به وردپرس جبهه گیری فوق العاده عجیبی دارن و کسی که وردپرس توسعه میده رو آدم حساب نمیکنن??می‌دونی چرا؟؟ ??در واقع وردپرس کارها به دو دسته تقسیم میشن، دسته اول اونایی که زیر و روی پنل مدیریت وردپرس رو میشناسن و باهاش کار میکنن و دسته دوم اونهایی که علاوه بر تسلط به پنل مدیریت شروع به توسعه و برنامه نویسی پلاگین و قالبهای وردپرس میکنن.خب دسته دوم دانش کاملی نسبت به زبانهای برنامه نویسی و تکنولوژی های وب پیدا کردن و سالها برای این دانش زمان صرف کردن.اما دسته اول که پنل مدیریت رو  زیر و رو میکنن اکثرا دانش زیادی داخل برنامه نویسی ندارن  و با استفاده از پلاگین ها و قالبهای آماده ای که وجود داره میان و شروع میکنن به راه اندازی سایت (حالا چه با کیفیت و چه بی کیفیت )هر چند هم که کار این عزیزان خوب باشه باز هم نمی‌تونیم به اونها توسعه دهنده بگیم  با اینکه خودم افراد زیادی رو میشناسم که سایت های فوق العاده با کیفیتی رو با استفاده از وردپرس راه اندازی میکنن ( انگار نه انگار که این سایت وردپرسیه??) اما باز هم یک سری محدودیت ها وجود خواهد داشت که این عزیزان شاید از پس اون بر نیان.به همین دلیل میشه به این افراد راه انداز سایت گفت نه توسعه دهنده یا برنامه نویس سایت، همین تفاوت کوچک اما بزرگ موجب جبهه گیری توسعه دهنده های وب نسبت به وردپرس شده و تصمیمات شخصی زیادی هم در موردش گرفته شده که درست نیست.درسته که وردپرس یک cms آماده است و زیاد انعطاف پذیر نیست اما باید گفت در برخی موارد بسیار کارآمد و بزرگ جلوه می‌کنه که میشه باهاش رویدادهای بزرگی رو رقم زد.خلاصه که وردپرس اونقدرا هم بد نیست به شرطی که نیای با راه اندازی چند تا سایت وردپرسی اسم خودت رو توسعه دهنده سایت بزاری???ممنونم که این پست رو خوندی دوست من .??</description><category>امید حدیدی</category><author>امید حدیدی</author><pubDate>Wed, 26 May 2021 21:58:28 +0430</pubDate></item><item><title>نقطه صفر طراحی خزشگر وب با پایتون</title><link>https://virgool.ir/@o.h.hadidy/نقطه-صفر-طراحی-خزشگر-وب-با-پایتون-aqncevxjkjyz</link><description>دوستای عزیزم سلام. از اینکه به سایت من سر زدید و این مقاله رو میخونید خیلی خوشحالم.توی این مقاله قراره تا با هم دیگه اولین قدم برای پادگیری طراحی خرشگرها رو برداریم و با پیش نیازهای اون آشنا بشیم، اینکه چه ابزارهایی رو لازم داریم و از چه کتابخونه هایی باید استفاده کنیم تا یک خزشگر بسازیم.اما قبل از اینکه ابزارها رو معرفی کنیم بیاید تا باهم ببینیم خزشگرها اصلا چی هستن و به چه دردی میخورن.خزشگر وب چیست؟خزشگرها رباتهایی هستند که به صورت خودکار به صفحات وب رفته و اطلاعات موجود در اون رو برسی کرده و نتیجه رو به ما نمایش میدن. یعنی چی؟فرض کنید که ما نیاز داریم تا قیمت یک محصول رو از سرتاسر ایران جمع آوری کنیم و مثل سایت ایمالز بیام یک بازه قیمتی از کمترین قیمت به بیشترین قیمت رو به کاربرامون نمایش بدیم.قائدتا این که بخواید به تک تک سایتهای ایرانی برید و بعد قیمتش رو بردارید و داخل سایت خودتون قرار بدید کار مسخره و سختیه پس چیکار میکنیم؟ اینجاست که خزشگرهای به کمک ما میان.خزشگرها با استفاده از کدهایی که ما براشون نوشتیم درون صفحات وب میگردن و المانهایی رو که ما براشون مشخص کردیم رو پیدا و ذخیره سازی میکنن تا ما بتونیم از اون داده ها برای استفاده خودمون بهره ببریم.یکی از بزرگترین و معرفوترین خزشگرها خوب مال گوگله که میاد لینک های موجود در صفحات یک وبسایت رو توی موتور جستجوگرش ایندکس میکنه ( همون داستان سئو و بهینه سازی سایت) حالا فکر کنید این خزشگر نبود، روزانه میلیونها نفر آدم باید مینشستن و میلیونها صفحه وب رو باز میکردن و میخوندن و ذخیره میکرن. چفدر ترسناک.خوب حالا که با معنای خزشگر آشنا شدید بیاید تا کمی جلوتر بریم.چطور یک خزشگر وب بسازیم؟برای شروع کار و طراحی و ساخت یک خزشگر نیاز به ابزارها و پیشنیازهایی داریم، مثل هر سازه دیگه ای که باید ابزار ساختش رو از قبل آماده کنیم این سازه ما هم از قائده جدا نیست ?اما این رو بدونید که اولین و مهمترین پیش نیاز طراحی خزشگرهای وب آشنایی حداقلی با یکی از زبانهای برنامه نویسی هست ( که اگر پایتون، جاوااسکریپت یا PHP باشه که چه بهتری ).توی این مقاله من اینطور در نظر گرفتم که شما حداقل آشنایی با زبان پایتون دارید و بعد از گذروندن یک دوره آموزشی مبانی برنامه نویسی و مقدماتی پایتون اینجا هستید و دارید این مقاله رو میخونید پس آماده حرکت بشید.پیش نیازهای طراحی یک خزشگر وب با پایتونکتابخونه Requestsخوب اولین پیش نیاز برای خزشگرها ارتباط با اینترنت و دریافت اطلاعات از صفحات وب هست. در پایتون کتابخونه requests به شما این امکان رو میده تا بتونید درخواستهای خودتون رو به سمت سرور بفرستید و نتیجه اون رو ببینید و با استفاده از اون نتیجه شروع کنید به کنکاش کردن توی المانهای اون صفحه.این کتابخونه به صورت پیش فرض توی پایتون ۳.۸ ( اونی که من دارم استفاده میکن ) نصب بود اما اگه برای شما نصب نیست میتونید با استفاده از دستور زیر اون رو برای استفاده کردن آماده کنید.pip install requestsکتابخونه Pandasاین کتابخونه یکی از بهترین کتابخونه ها برای آنالیز و مشاهده کردن و حتی دسته بندی کردن اطلاعات و دیتاهاست. با استفاده از این کتابخونه قدرتمند شما میتونید راحتتر دیتاهای دریافتی خودتون از صفحات وب رو آنالیز کنید و با انواع مختلفی از اون دیتاها خروجی بگیرید ( به عنوان مثال میتونید تمامی دیتا ها موجود توی یک صفحه رو با این کتابخونه توی یک فایل اکسل قرار بدید ).این کتابخونه کارهای خیلی زیادی میتونه انجام بده که توی این لینک میتونید بیشتر در موردش بخونید.این کاتبخونه به صورت پیشفرض نصب نبود و من با این دستور اون رو برای استفاده کردن نصب کردمpip install pandasکتابخونه Beautifulsoupبرای ساخت یک خزشگر شما نیاز به یک ابزار یا یک کتابخونه دارید که با استفاده از اون بتونید المانهای موجود توی صفحات رو به صورت مرتب شده و دسته بندی شده بخونید و راحت تر بتونید المانهای خودتون رو پیدا کنید تا وقت کمتری از شما گرفته بشه. کتابخونه Beautifulsoup این کمک رو به شما میکنه که توی المانهای موجود در صفحه وب جستجو کنید و راحتتر و سریعتر به نتیجه برسید.در مورد این کتابخونه هم میتونید توی این لینک بیشتر بخونید و با استفاده از دستور این پایین اون رو نصب کنید.pip install beautifulsoup4کتابخونه Scrapyخوب اگه کمی تنبلی کنید و دنبال یک کتابخونه باشید که کار شما رو سریعتر کنه و راحتر هم بتونید با اون داده های رو آنالیز بکنید این کتابخونه تا حد زیادی نیاز شما رو براورده میکنه چون مختصری از همه ی کتابخونه های بالا رو توی خودش داره و با استفاده از اون میتونید راحت تر یک صفحه رو آنالیز کنید. این کتابخونه محدودیت های زیادی رو برداشته و دست شما رو برای آنالیز بهتر و دقیق تر دیتاهای یک صفحه وب باز تر میکنه.پیشنهاد میکنم که در مورد این کتابخونه خودتون برید بیشتر بخونید و حتما حتما دو تا دوره آمورشی اون رو هم حتما بخونید.این کتابخونه هم با استفاده از دستور پایین نصب میشه و میتونید به راحتی ازش استفاده کنید.pip install scrapyکتابخونه Seleniem : رفع محدودیت جاواسکریپتیک مشکلی که شاید برای شما توی ابتدای این کار پیش بیاد اینه که، سایتهایی که با استفاده از جاوااسکریپت دیتاهای خودشون رو لود میکنن قابل خوانش برای کتابخونه های بالا نیست و مثلا سایت مثل دیجی کالا محصولاتش در دیتای دریافتی شما قرار نمیگیره چرا که بعد از لود کامل صفحه ( جایی که ریسپانس سرور به کتابخونه های ما بر میگشت ) دیتا تازه لود میشه و در مرورگر به کاربر نمایش داده میشه.پی عملا شما نمیتونید از دیتاهای موجود در اون سایتها استفاده کنید. اما راه حل چیه ؟ در یک کلام Seleniemکتابخونه Seleniem به شما این امکان رو میده که با استفاده از درایور مرورگر صفحه وب رو دریافت کنید. بعنی چی؟ اساس کار Seleniem به این صورت هست که شما درایور مرورگ خودتون مثل کرومیوم رو دانلود و نصب میکنید و بعد از نصب بجای استفاده از کتابخونه response با استفاده از Seleniem درخواست خودتون رو به سرور میفرستید.این کتابخونه برای شما یک صفحه مرورگر جدید ایجاد میکنه و درون اون دیتاهای یک صفحه رو لود میکنه زمانی که تمامی ریکوئست ها به پایان رسید این کتابخونه هم تب جدید مرورگر رو میبنده و دیتای کامل رو در خدمت شما قرار میده برای استفاده کردن ( به همین راحتی به همین خوشمزگی )درباره این کتابخونه حتما بیشتر بخونید، میتونید رو این لینک برای مشاهده بیشتر کلیک کنید. همچنین با استفاده از دستور زیر سلنیوم رو هم آماده کنید تا بریم برای ساخت یک خزشگر خوشگل و گوگولی.pip install seleniumخیله خوب امیدوارم که این مقاله به شما کمک کرده باشه تا راحت تر بتونید تصمیم به یادگیری بگیرید و سریعتر پیشرفت کنید. از اونجایی که برنامه نویسی روز بروز جلوتر میره و بروزتر میشه اگه این مقاله کم و کاستی داره خوشحال میشم تا توی کامنت ها من رو هم راهنمایی کنید تا بتونم راحت تر برنامه نویسی کنم.ممنون که وقت گذاشتی دوست من ; )</description><category>امید حدیدی</category><author>امید حدیدی</author><pubDate>Fri, 07 May 2021 16:53:16 +0430</pubDate></item></channel></rss>