Dev Perfects
43 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
This media is not supported in your browser
VIEW IN TELEGRAM
🔶 ایشون خریدار موز ۶.۲ میلیون دلاریه که بعد از خرید، اونو خورد.

@TheRaymondDev
Forwarded from Out of Distribution (Mahdi)
چند صباحیه که مشغول یادگیری golang هستم. سیر من با زبون‌ها این شکلی بوده که اولین بار دوازه سالگی با ++c شروع کردم، ترم ۲ دانشگاه به خاطر AP به جاوا سوییچ کردم و موندم تا ترم ۵ که به خاطر درس هوش، به پایتون تغییر دین دادم. از اونجا به بعد هشت سالی دیگه پایتون زبان غالبم بود تا این که توفیقی شد با golang جدی‌تر آشنا بشم. چند چیز که بعد از این مدت کوتاه به ذهنم می‌رسند:

- آدم وقتی یک مدت طولانی به پایتون عادت می‌کنه و بعد می‌خواد سراغ یک زبون دیگه‌ای مثل go بره، تازه می‌فهمه که پایتون چه عادت بدیه. پایتون به خاطر ویژگی‌هایش مثل داینامیک تایپینگ و مفسری‌بودنش، آدم رو به بد کدزدن عادت می‌ده. این نکته رو آدم وقتی می‌فهمه که از پایتون به چیزی مثل golang سوییچ می‌کنه. در عوض در golang انگار مجبوری بیشتر و درست‌تر مساله رو به ماژول‌های کوچک‌تر و دقیق‌تر بشکنی.

- چند وقت پیش یک ارائه‌ای از golang می‌دیدم، که درش ارائه‌دهنده چیزی گفت که در ذهنم موند. حرفش این بود که شما هر وقت می‌خواید به یک زبون کد بزنید باید به همون زبون فکر کنید، وگرنه به یک کد افتضاح می‌رسید. شما نمی‌تونید c طور فکر کنید و python‌ کد بزنید، همون‌طور که نمی‌تونید python فکر کنید و go کد بزنید. باید go‌طور فکر کنید تا کد go درستی بزنید. چیزی که البته برام جالب‌تر بود داشتم فکر می‌کردم آیا همین رو می‌شه به زبان‌های طبیعی و فراتر از اون تعمیم داد؟ نمی‌شه که ما فارسی فکر کنیم و بخوایم درست انگلیسی حرف بزنیم. و احتمالا نمی‌شه که ما بخوایم از یک مشرب فکری حرف بزنیم بدون این که بخوایم با اون مشرب، فکر کنیم. در واقع شما نمی‌تونید محصول یک مشرب فکری رو بررسی و یا نقد کنید بدون این که از زاویه اون مشرب فکر نکنید. و البته بسیاری از زاویه دیدهای فکری ما ثابت شده هستند و غیرقابل تغییر. چند روز پیش دوستی می‌گفت مثلا اگر یک فرد ایرانی مهاجرت کنه به غرب، مسلمان‌بودنش رو رد کنه و بخواد به لایف استایل غربی‌ها رفتار کنه باز نهایتا کامل جذب اون فرهنگ نمی‌شه و در ته بینش و رفتارهاش المان‌های جایی که درش بزرگ‌شده تاثیر می‌ذارن.

- چیزی که تا اینجا از go در ذهنم مونده دو خاصیتش هستند. خاصیت اول جهان‌بینی جالبش در مورد object oriented بودنه. وقتی اول از سمت پایتون به go نگاه می‌کنی فکر می‌کنی oo هست ولی توش ارث‌بری نداره و یک چیزی هم به نام interface هست که وجودش در go انگار صرفا یک قرارداده. ولی بیشتر که از ابهام درمیای می‌فهمی که نوع نگاه golang به oo یک چیز دیگه است و به جای این که سلسله مراتب باشه composition هست و علت وجودی interface هم اجرای هم composition عه و اتفاقا انگار نوع نگاه ساده‌تری برای ساختن و مدلسازی دنیاست. منتها اگر آدم به پایتون عادت کرده باشه و نوع نگاهش به oo در ذهنش رسوخ کرده باشه، نمی‌تونه دیگه سوییچ کنه به نوع نگاه golang. شبیه مثال مورد قبل، مشرب‌های فکری هم همینند. گاها نوع نگاهی به دنیا کاراتره ولی خب ذهنی که به نوع نگاه قبلی عادت کرده نمی‌تونه از این نوع نگاه جدید استفاده کنه.

- خاصیت دوم هم طرز هندل‌کردن concurrency با goroutine و channel و البته مفهوم زیر:

Do not communicate by sharing memory; instead, share memory by communicating
Forwarded from Gopher Academy
🔵 عنوان مقاله
Excelize 2.9: A Pure Go Way to Work with Excel Spreadsheets

🟢 خلاصه مقاله:
مقاله به بررسی کتابخانه‌ای می‌پردازد که توانایی خواندن و نوشتن فایل‌های XLAM، XLSM، XLSX، XLTM و XLTX را دارد. این کتابخانه که سابقه طولانی در بهبود و ارتقاء دارد، در نسخه 2.9 خود تمرکز بیشتری بر جزئیات داشته و توابع جدید متعددی را در زمینه‌های مختلف معرفی کرده است. به خصوص در زمینه کار با نمودارها و سلول‌های مبتنی بر تصاویر توسعه‌هایی داشته است. این پیشرفت‌ها از طریق مخزن GitHub قابل دسترسی است، که این امکان را به توسعه‌دهندگان می‌دهد تا از آخرین تغییرات و افزودنی‌های کتابخانه بهره ببرند. این توسعات نشان دهنده ادامه پیشرفت و تقویت این کتابخانه برای کار با فایل‌های اکسل در محیط‌های برنامه‌نویسی است.

🟣لینک مقاله:
https://golangweekly.com/link/161339/web


👑 @gopher_academy
Forwarded from Linuxor ?
این ریپو اومده بیش از هزار بش اسکریپت دواپس مربوط به AWS, GCP, Kubernetes, Docker, CI/CD, APIs, SQL, PostgreSQL, MySQL, Hive, Impala, Kafka, Hadoop, Jenkins, GitHub, GitLab, BitBucket, Azure DevOps, TeamCity, Spotify, MP3, LDAP, Code/Build Linting, pkg mgmt for Linux, Mac, Python, Perl, Ruby, NodeJS, Golang, Advanced dotfiles: .bashrc, .vimrc, .gitconfig, .screenrc, tmux رو جمع آوری کرده.


https://github.com/HariSekhon/DevOps-Bash-tools

🐧 @Linuxor
میدونید چرا PHP ورژن 6 نداره؟

ورژن 5.6 اومد و بعد ورژن 7 منتشر شد، پس ورژن 6 کجا رفت؟

باید بگم که ورژن 6 با شکست مواجه شد و هیچ گفت منتشر نشد.

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

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

در نهایت از اضافه کردن این قابلبت و ورژن 6 صرفه نظر شد و دیگر قابلیت های ورژن 6 در ورژن بعدی یعنی ورژن 7 عرضه شد.

@DevTwitter | <Rasoul Esmaeili/>
Forwarded from Agora (Alireza Azadi)
سیر یادگیری من دقیقاً به همین شکل بود، با دو تفاوت کوچک:

۱- بازه‌های زمانی کمتر و زمان شروع دیرتر.
۲- الان علاوه بر Golang، به Rust هم مشغول شدم.

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

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

پایتون با لایه‌های انتزاعی زیادی که ارائه می‌ده، پیچیدگی‌های زیادی رو هم از دید برنامه‌نویس پنهان می‌کنه. این ویژگی، درسته که باعث ساده‌تر شدن یادگیری و تسریع در پیاده‌سازی می‌شه، اما می‌تونه برنامه‌نویس رو از درک و مواجهه با پیچیدگی‌های بنیادی که میتونن نقش تربیتی داشته باشن، دور کنه. همین فاصله باعث میشه که «مهندس نرم‌افزار»ی که مد نظر داریم شاید هیچ‌وقت این فرصت رو نداشته باشه که تربیت بشه.
کاربرد aspect-square در Next.js با TypeScript: بهینه‌سازی نمایش تصاویر

در هنگام طراحی وب‌سایت‌ها، یکی از چالش‌هایی که پیش می‌آید، تنظیم ابعاد ثابت برای تصاویر است تا در تمام دستگاه‌ها و اندازه‌های مختلف صفحه نمایش به خوبی نمایش داده شوند. در اینجا، ویژگی aspect-square در CSS می‌تواند کمک بزرگی باشد.
در Next.js، همراه با TypeScript، می‌توانید این ویژگی را به راحتی برای کنترل نسبت ابعاد تصاویر استفاده کنید. این ویژگی به شما اجازه می‌دهد تا ارتفاع و عرض یک عنصر را به نسبت یکدیگر قفل کنید، بدون اینکه نیاز به محاسبات پیچیده داشته باشید.

در این مثال:

aspectRatio: '1' ==> مشخص می‌کند که نسبت عرض به ارتفاع عنصر 1 به 1 است.

layout="fill" ==> به این معنی است که تصویر به طور خودکار ابعاد والد خود را پر خواهد کرد.

objectFit="cover" ==> برای نمایش صحیح تصویر بدون تغییر ابعاد و حفظ کیفیت استفاده می‌شود.


کوتاه و مختصر و مفید بهتون بگم ویژگی مناسبیه ازش استفاده کنین

@DevTwitter | <Abolfazl Javadineya/>
Forwarded from Agora (Amir Hossein)
سلام بچه ها
امیدوارم حالتون خوب باشه
توی محل کارم یک پوزیشن فرانت خالی شده
اگه علاقه‌مند هستید، رزومه‌تون رو برام بفرستید
Forwarded from یک برنامه نویس تنبل (  MΞ)
Forwarded from CleverDevs (Mammad)
Forwarded from یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 به عنوان معلم میگم لطفا به خانواده‌های محترم بَرنخوره؛

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

✍️ سارا نیکدل

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

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

+به عنوان کسی که در کشور خارجی معلم بوده باید بگم این مشکل در سایر کشورا هم هست و به ایران محدود نمیشه. اکثر نسل z به شدت بی ادب، بی مسئولیت، بی سواد و پر مدعا هستن و آداب معاشرتشون صفره! البته احتمالا مادربزرگای ما هم در مورد ما همین فکرو میکردن و جهان کلا به سمت خوبی نمیره

@TheRaymondDev | @GizmizTel
Forwarded from Gopher Academy
🔵 عنوان مقاله
🗓️ Enterprise Ready Conference

🟢 خلاصه مقاله:
این رویداد یک‌روزه در شهر سان فرانسیسکو برای رهبران تولید و مهندسی شرکت‌هایی که در زمینه توسعه نرم‌افزارهای SaaS مشغول به کار هستند، برگزار می‌شود. مخاطبان اصلی این کنفرانس، مدیران و سرپرستانی هستند که در حوزه‌های مرتبط با نرم‌افزار به عنوان خدمت (SaaS) فعال می‌باشند و به دنبال ایده‌های نوآورانه و راهکارهای عملی برای بهبود عملیات و افزایش کارایی تیم‌های خود هستند. در این رویداد، سخنرانانی از شرکت‌های برجسته‌ای مانند OpenAI، Vanta، Canva، و Dropbox حضور دارند که تجربیات و دیدگاه‌های خود را در مورد چالش‌ها و موقعیت‌های کلیدی صنعت SaaS به اشتراک می‌گذارند. این فرصتی استثنایی برای شبکه‌سازی و کسب اطلاعات ارزشمند درباره‌ی آخرین تحولات و نوآوری‌های این حوزه می‌باشد.

🟣لینک مقاله:
https://golangweekly.com/link/161332/web


👑 @gopher_academy
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
به جای Yahoo! Messenger، من از Pidgin استفاده میکردم

💠 در چند مسینجر از Y!m گرفته تا IRC و XMPP یا با چند ID در یاهو همزمان لاگین بودم 😎 ( اون موقع ها مهم بود 😁)

🔥 حالا بعد از ۱۶ سال این مسینجر دوست داشتنی داره اماده نسخه ۳ میشه 🥰 و خاطره ها زنده شد

🗓 با توجه به این که هنوز نسخه جدید یعنی ۳ پیش نمایش است فقط به صورت Flatpak در Flathub Beta repository در دسترس است
🗓 از IRCv3 پشتیبانی میکنه
🗓 اکثر APIs ها به روز رسانی شدند

⁉️ با IRC آشنایی داری؟
⁉️ از pidgin استفاده میکنید ؟
برای نسب و تست اینجا

منبع

#linux
𝗛𝗼𝘄 𝘁𝗼 𝗠𝗮𝗸𝗲 𝗬𝗼𝘂𝗿 𝗦𝗤𝗟 𝗤𝘂𝗲𝗿𝗶𝗲𝘀 𝗥𝘂𝗻 𝗟𝗶𝗸𝗲 𝗮 𝗟𝗶𝘁𝘁𝗹𝗲 𝗜𝗺𝗽𝗮𝗹𝗮

Sometimes, developers forget the easy and simple things that make SQL queries so much faster.

- Avoid SELECT * always list the columns you need.
- Skip cursors and subqueries when ͟possible JOINs are faster and cleaner.
- Use Indexes to speed up WHERE, JOIN, and ORDER BY operations.
- Run EXPLAIN ANALYZE to see what’s slowing things down.
- Test queries on real data to ensure they work as expected.

@DevTwitter | <Goni Lukov/>
خب انگار بانک ملت دوباره رفت هوا.

بقیه سالمن؟

@SohrabContents
های و هوی توخالی!

🔍 ircf.space
@ircfspace
Forwarded from CleverDevs (Mammad)
میشه بگیم carpet کوچیک شده car برای محیط های سلیمان نشینه ؟

#fun
@CleverDevs - @CleverDevsGp
کتابخونه‌ی puppeteer برای نوشتن وب اسکرپر (scraper) در NodeJS :

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

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

برای این کار puppeteer هم مثل اکثر کتابخونه های دیگه یه مرورگر باز میکنه (نمایش دادن مرورگر یا نمایش ندادنش قابل تنظیم هست) و صبر میکنه سلکتوری که براش معرفی کردیم لود بشه بعد دیتای مورد نظر رو استخراج میکنه

تو این کد ما میریم قیمت (زودپز عظیما مدل H43 گنجایش 9 لیتر) رو در از سایت digikala در میاریم
نکات :
- توی این کد ادرس کالا و سلکتور استاتیک تعریف شده و اگه به هر دلیلی سایت هدف اپدیت بده ممکنه اینها دیگه معتبر نباشن.
- برای جلوگیری از شناسایی به عنوان بات، می‌توانید یک User-Agent جعلی به مرورگر اضافه کنید.
- کتابخونه‌ی puppeteer در حالت پیش فرض به صورت headless اجرا میشود و شما اتفاقات رو نمیبینید اینطوری رندر گرافیکی نداره و رم و گرافیک کمتری استفاده میکنه از طرفی معمولا این کدها روی سرور اجرا میشه و خب اونجا اصلا کاربردی نداره.
- برای سایت‌هایی که بات دیتکشن دارن میشه از کتابخونه‌های دیگه ای اضافه کرد مثل 2Captcha ،anticaptcha
- اگه تعداد رسکوست هاتون زیاد باشه ممکن هست سایت هدف ip شما رو برای مدتی مسدود کنه
- این کد صرفا یک مثال برای اشنایی هست و با خوندن داکیومنت میتونید اطلاعات بیشتر و بهتری بدست بیارین
- اسکرپ کردن دیتاهای که برای دسترسی عموم ازاد هست در صورتی که برای سایت هدف مشکلی به وجود نیاره عمل غیرقانونی نیست.

@DevTwitter | <Mohsen Zare/>
اسکریپت مدیریت Hysteria2، یک رابط کاربری جامع برای مدیریت سرور هست که از ویژگی‌هایی نظیر مدیریت کاربران، نظارت بر ترافیک و ادغام با ابزارهای اضافی مانند وارپ، ساب‌لینک سینگ‌باکس و ربات تلگرام برخورداره ...

👉 github.com/ReturnFI/Hysteria2

🔍 ircf.space
@ircfspace
گیت سرور یه سیستم مدیریت مرکزی برای کد و پروژه‌هاست که به تیم‌های نرم‌افزاری کمک می‌کنه تا کدهاشون رو به صورت متمرکز نگهداری و مدیریت کنن. این سرور معمولاً روی یه ماشین مجزا نصب می‌شه و با پروتکل‌های SSH یا HTTPS با کلاینت‌ها ارتباط برقرار می‌کنه.

یکی از محبوب‌ترین گیت سرورها GitLab هستش که از سال ۲۰۱۱ توسعه داده شده. این سرور علاوه بر قابلیت‌های پایه گیت، ویژگی‌های پیشرفته‌ای مثل CI/CD، ایشو ترکر و ویکی رو هم ساپورت می‌کنه. نکته جالب اینه که GitLab با Ruby on Rails نوشته شده و کدش اوپن‌سورس هستش.

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

گیت سرور می‌تونه به صورت bare یا non-bare باشه. ریپوهای bare فقط شامل فایل‌های .git هستن و برای سرور مناسب‌ترن. ریپوهای non-bare شامل فایل‌های پروژه هم می‌شن و معمولاً توی محیط توسعه ازشون استفاده می‌شه.

برای مدیریت دسترسی‌ها توی گیت سرور می‌تونی از گروه‌ها استفاده کنی. هر گروه می‌تونه دسترسی‌های متفاوتی داشته باشه. مثلاً گروه developers می‌تونه push کنه ولی نمی‌تونه برنچ master رو تغییر بده. گروه admins هم دسترسی کامل داره.

برای بکاپ گرفتن از گیت سرور دو تا روش اصلی وجود داره: بکاپ فایل‌سیستم و بکاپ ریپو به ریپو. توی روش اول کل دایرکتوری گیت رو کپی می‌کنی و توی روش دوم با دستور git clone --mirror از هر ریپو یه کپی می‌گیری.

گیت سرور رو می‌شه با ابزارهای مانیتورینگ مثل Prometheus و Grafana مانیتور کرد. این ابزارها متریک‌های مهمی مثل تعداد push‌ها، استفاده از CPU و RAM، و فضای دیسک رو نشون می‌دن.

#git #git_server #version_control

@PhiloLearn