Dev Perfects
41 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 Geek Alerts
کمپانی برزیلی Gradiente میگه برند آیفون برای ماست و این عکس رو منتشر کردن که سال ۲۰۰۰ با نام آیفون گوشی ساختن.
سال ۲۰۱۳ تلاش کردن تا جلوی واردات آیفون به برزیل رو بگیرن ولی تو دعوای حقوقی شکست خوردن، حالا دوباره پرونده‌رو به جریان انداختن.
البته احتمالا شکست میخوره یا اینکه با دریافت مبلغی از شکایت خودش کنار میکشه.
9to5mac
@geekalerts
Forwarded from Go Casts 🚀
یه مقاله جذاب در مورد نوشتن کد سریع از Shopify
درسته که درباره Ruby on Rails نوشته شده اما اکثر نکاتش به خیلی از زبان و فریمورک های دیگه از جمله گولنگ هم قابل تعمیم دادن هست.

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

کدی که با Ruby on Rails نوشته میشه معروفه به کند بودن

اما در Shopify در مقیاس میلیون درخواست در دقیقه داره از Ruby on Rails استفاده میشه

تو این مقاله نکات جالبی رو اشاره میکنه برای اینکه کد سریعتری نوشته بشه

اولین نکته ش در مورد ORM یا همون ActiveRecord هست که باید درک کنید توابع مختلف orm چه رفتاری با دیتابیس دارند.

تو گولنگ همین مشکل با gorm وجود داره که به شدت میتونه لود زیادی روی دیتابیس بندازه بدون اینکه برنامه نویس متوجه این قضیه بشه.

دومین نکته ش باز در مورد دیتابیس هست که میگه از select * پرهیز کنید و فقط ستون هایی که لازم دارید رو انتخاب کنید.


نکته دیگه پرهیز از کوئری زدن به ستون هایی هست که index ندارن و در مقیاس بالا باعث میشه که full scan رخ بده
البته ایندکس اضافه کردن باعث lock شدن دیتابیس ممکنه بشه برای writeها و باید مواظب مایگریشن ایندکس باشیم

نکته بعدی کش کردن همه چیز هست…
Cache All The Things
If you can’t make something faster, a good alternative is to cache it. Things like complex view compilation and external API calls benefit greatly from caching. Especially if the resultant data doesn’t change often.

یه سری چیزارو میشه throttle کرد
Throttle Bottlenecks
But what about operations you can’t cache? Things like delivering an email, sending a webhook, or even logging in can be abused by users of an application. Essentially, any expensive operation that can’t be cached should be throttled.

برای یه سری پروسه ها هم میشه job queue و مکانیزم های async در نظر گرفت
Do It Later (In a Job)
Jobs allow us to defer work to another process through queueing systems often backed by Redis. Exporting a dataset, activating a subscription, or processing a payment are all great examples of job-worthy work

پرهیز از متاپروگرمینگ
Use Metaprogramming Sparingly
Changing a program’s structure at runtime is a powerful feature. In a highly dynamic language like Ruby, there are significant performance costs associated to metaprogramming.

دونستن تفاوت O(1) و O(n) برای مقیاس پذیر بودن خیلی مهمه
Know the difference between O(n) and O(1)
What O(n) and O(1) mean is that there are two kinds of operations. O(n) is an operation that scales in time with size, and O(1) is one that is constant in time regardless of size.

مثلا جای آرایه بهتره از hash استفاده بشه چون lookup کردن تو hash فارغ از اندازه O(1) هست


Allocate Less
استفاده و مدیریت Garbage Collector
If used improperly, dangerous methods can lead to unwanted side effects in your code. A best practice to follow is to avoid mutating global state while leveraging mutation on local state.

https://shopify.engineering/write-fast-code-ruby-rails


@gocasts
به‌روزرسانی جدید فروم پارچ

- امکان ورود با کدبرگ فراهم شد.

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



https://forum.parchlinux.com

@ParchLinux
Forwarded from Geek Alerts
اهمیت صبحانه.
میدونستید ما صفحه توییتر هم داریم؟ خوش‌حال میشیم دنبال کنید.
https://x.com/Geek_Alerts
@geekalerts
Forwarded from mnr tech
اگر قرار باشه توی یک پروژه کاربرای بین‌المللی داشته باشیم چطور باید شماره هارو هندل کنیم؟

شاید توی پروژه های بزرگ بین‌المللی براتون سوال بشه که ما چطور میتونیم شماره موبایل ها با کد های کشور های مختلف رو هندل کنیم؟

خوب قسمت راحت کار اینجاست که بگیم کاربر رو مجبور می‌کنیم طبق استاندارد E.164 شماره کامل رو با کد کشور وارد کنه مثلا برای ایران به این صورت
+98901*******

خوب این ساده ترین حالته ولی ux خوبی نداره مخصوصا برای کاربرای ایرانی که معمولا شمارشون رو با 0 وارد میکنن.
پس باید چکار کرد؟ شاید به ذهنتون برسه که یه ولیدیشن ساده مینویسیم و با چند تا شرط هندلش می‌کنیم ولی قراره به چالش های زیادی بخوریم. پس بیاین اول به سوالات زیر جواب بدیم.

آیا کد کشور ها همه تعداد ارقامش یکسانه؟
خیر. مثلا کد ایران 98 و آمریکا 1 هست

آیا طول شماره های موبایل کشور های مختلف بدون کد کشور یکسان هست؟
خیر. طول شماره موبایل در خیلی از کشور ها 10 رقم هست (بدون کد کشور)
ولی استثنا هم داریم برای مثال شماره موبایل توی آلمان میتونه بین 10 تا 13 رقم متغییر باشه.

آیا شماره موبایل همه کشور ها وقتی از کد استفاده نمیکنیم از 0 ابتدای شماره استفاده می‌کنیم؟ و آیا با اضافه کردن کد 0 اول شماره حذف میشه؟
در بیشتر کشور ها شماره های موبایل با صفر شروع میشه و با اضافه شدن کد کشور صفر حذف میشه ولی همیشه اینطوری نیست
ایران:
09123456789 → +989123456789
هند:
09876543210 → +919876543210
آلمان:
015123456789 → +4915123456789
در شماره های بالا دقیقا همینطوره ولی در بعضی موارد مثل موارد زیر اینطوری نیست

استثناها و نکات:
برخی کشورها اصلاً از صفر ابتدایی استفاده نمی‌کنند: مثلاً در ایالات متحده، شماره‌ها مستقیماً با کد منطقه (area code) شروع می‌شوند، و وقتی کد کشور اضافه می‌شود، هیچ تغییری در ساختار داخلی شماره رخ نمی‌دهد:

آمریکا:
1234567890 → +11234567890
صفر ممکن است حفظ شود: در برخی از کشورها، حتی در حالت بین‌المللی، صفر ابتدایی شماره حفظ می‌شود:

ایتالیا: (صفر حفظ می‌شود).
03491234567 → +3903491234567

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

خوب حالا برای ولیدیشن و ux بهتر باید چکار کرد؟ شاید به ذهنتون رسیده باشه که بشینید و از اول یه کلاسی بنویسید که با توجه به کشور انخاب شده یه سری rule هایی در نظر گرفته بشه و بر اساس اونها شماره ولیدیت بشه یا برای ux بهتر در صورت نیاز فرمتش به صورت خودکار عوض بشه و بعد توی دیتابیس ذخیره بشه.

ولی نیاز به این کار نیست چون از قبل پکیج هایی برای این کار نوشتن. مثلا libphonenumber برای جاوااسکریپت و پایتون

همچنین این پکیج برای لاراول
https://github.com/Propaganistas/Laravel-Phone

مثلا به کمک این پکیج وقتی کاربر کشورش رو انتخاب میکنه دیگه توی فیلد شماره موبایل فرقی نمیکنه کاربر شماره رو با 0 وارد کنه یا بدون 0 چون به راحتی شما توی بکند میتونید با توجه به کشورش شماره رو به فرمت استاندارد E.164 در بیارین و بعد توی دیتابیس ذخیره کنید.

دقت کنید حتما وقتی همچین پکیج هایی اضافه می‌کنید به پروژتون برای عملکرد مورد انتظارتون چند تا تست بنویسید.
دوستان کد دستتونه بذارید زمین برید یه سر به Dokploy بزنید!
یعننی هوفففففف مغزم داره سوت میکشه
چقدر بدبختی برای deploy و CI/CD کشیدم. داکر یاد بگیر، deploy کن، واس مانیتورینگش grafana بساز....برو تو گیت اکشن بساز
همششششش با چندتا کلیک! و تازه رایگان و open source هم هست! بهترین جایگزین برای vercel و coolify .

https://dokploy.com/

@DevTwitter | <Afra Rostami/>
Forwarded from Yasha
این سایت کوئرا چرا اینجوریه؟ واسه تست یه الگوریتم ساده حل کردم بفرستم اصلا نمیدونم روش چجوری [و چی رو] تست می‌کنه. عجیبه، اینکه اینهمه معروفه و کاربر داره چرا باید UI/UX انقدر سایت ضعیف باشه؟ 😐
Forwarded from Gopher Academy
🔵 عنوان مقاله
Weak Pointers in Go: Why They Matter Now

🟢 خلاصه مقاله:
این مقاله به بررسی ویژگی جدیدی در زبان برنامه‌نویسی Go می‌پردازد که انتظار می‌رود در نسخه ۱.۲۴ از طریق بسته‌ی weak به طور کامل اضافه شود. ویژگی مورد بحث، اشاره‌گرهای ضعیف (weak pointers) است که یک ابزار پایین‌سطح برای ساخت ساختارهای حافظه‌ای کارآمد است. مؤلف، Phuong، مبانی عملکرد این اشاره‌گرها را شرح می‌دهد. اشاره‌گرهای ضعیف امکان پذیر می‌سازند تا توسعه‌دهندگان بتوانند سازه‌هایی را بسازند که از نظر استفاده از حافظه بهینه‌تر هستند. این اشاره‌گرها به نرم‌افزار اجازه می‌دهند که به یک شیء ارجاع دهد بدون اینکه جلوی جمع‌آوری زباله‌ی آن شیء توسط مدیریت حافظه را بگیرد. این ویژگی به ویژه در مواردی که کش‌ها و سایر ساختارهای داده‌ای که نیاز به حذف خودکار اشیاء را دارند، مفید است. استفاده از اشاره‌گرهای ضعیف می‌تواند به بهبود عملکرد کلی برنامه‌ها کمک کرده و حافظه‌ی کمتری را اشغال کند.

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


👑 @gopher_academy
Forwarded from Morteza Bashsiz مرتضی باشسیز (Morteza Bashsiz)
فلک به مَردمِ نادان دهد زِمامِ مراد
تو اهل فضلی و دانش، همین گناهت بس

حافظ
این کورس رایگان بازی سازی آنریل انجین رو از دست ندید، شامل ۳۵ ساعت آموزش حرفه‌ای توسط مدرسین رسمی اپیک.
این دوره فقط برای گیم دولوپرهای حرفه‌ای با پرداخت هزینه در دسترس هست که موقتا آنلاین بین ۳ دسامبر تا ۱۵ ژانویه در دسترس خواهد بود!
ثبت نام هم نمیخواد!
https://dev.epicgames.com/community/learning/talks-and-demos/W4va/unreal-engine-unreal-fellowship-games

@DevTwitter | <Mamadou On GameDev/>
Forwarded from Linuxor ?
قبل از فراگیر شدن اترنت یه برای شبکه کردن کامپیوتر ها از توکن رینگ هم استفاده می‌شد

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

🐧 @Linuxor
معاون وزیر ارتباطات از اختلال در وضعیت اینترنت کشور خبر داد.

🔍 ircf.space
@ircfspace
سرویس‌های VPN، بر روی اره فیلترینگ و تحریم کلودفلر

در هفته اخیر گزارش‌های متعددی درخصوص به مشکل برخوردن میزبانی VPNها، عمدتا بر روی سرویس pages/workers کلودفلر مطرح شده بود، که برخی از کاربران با انتقال دامنه خود به یک اکانت جدید، برخی با شارژ دلاری حساب و برخی توسط پیگیری از طریق سامانه پشتیبانی کلودفلر، مشکل رو به طور موقت حل کردن.

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

از طرف دیگه، امروز IR-GFW که وضعیت اختلال‌های اینترنت ایران رو مورد بررسی قرار میده، از فیلتر شدن مجدد سرویس pages کلودفلر خبر داده، که پیش‌تر نیز شاهد این‌مساله و رفع فیلتر اون بودیم.

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

🔍 ircf.space
@ircfspace
Forwarded from Bardiaism
Media is too big
VIEW IN TELEGRAM
روش ارتباط P2P بین دستگاه‌های پشت فایروال

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

لینک ویدیو در یوتیوب:
https://youtu.be/BnAvKwRbfkE

@Bardiaism
Forwarded from یک برنامه نویس تنبل (  MΞ)
This media is not supported in your browser
VIEW IN TELEGRAM
🔶 سرعت زبان های برنامه نویسی

واضح تر:

https://benjdd.com/languages2

ریپو:
https://github.com/bddicken/languages

@TheRaymondDev
Forwarded from یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 مایکروسافت می گوید امیدی به نصب ویندوز ۱۱ در سیستم قدیمی نداشته باشید.

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

#خبر

@TheRaymondDev
شرکت AMD همیشه استانداردهای صنعت رو با پردازنده‌های EPYC Embedded خودش تعیین می‌کنه و عملکرد، بازدهی و نوآوری بی‌نظیری رو برای کاربردهای شبکه، ذخیره‌سازی و صنعتی ارائه می‌ده. حالا این رهبری رو با پردازنده‌های سری چهارم AMD EPYC Embedded 8004 گسترش داده.

پردازنده‌های AMD EPYC Embedded 8004 برای سیستم‌های امبددی طراحی شدن که به محاسبات فشرده نیاز دارن. این پردازنده‌ها عملکرد فوق‌العاده‌ای برای بارهای کاری سنگین ارائه می‌کنن و در عین حال بازدهی انرژی بالایی رو در یک فرم کوچک برای کاربردهای محدود به فضا و توان به حداکثر می‌رسونن. این پردازنده‌ها به یک مجموعه کامل از ویژگی‌های مختص سیستم‌های امبدد برای بهبود بیشتر عملکرد و قابلیت اطمینان سیستم تجهیز شدن.

این پردازنده‌ها با بهره‌گیری از هسته‌های AMD “Zen 4c” به سطح جدیدی از چگالی هسته و عملکرد-به-وات دست پیدا کردن. این اولین سری پردازنده‌های AMD در حوزه امبدد هست که این هسته‌ها رو ادغام کرده و معیاری جدید برای بازدهی و نوآوری پلتفرم ایجاد کرده.

این پردازنده‌ها در فرم فاکتور سوکت SP6 ارائه می‌شن که 19 درصد کوچکتر از سری AMD EPYC Embedded 9004 هست، فضای کمتری مصرف می‌کنه و بازدهی انرژی بالاتری داره. همچنین با پشتیبانی از عمر طولانی هفت ساله، به طراحان سیستم کمک می‌کنه عمر پلتفرم رو حفظ کنن.

پردازنده‌های سری AMD EPYC Embedded 8004 همچنین در انتقال داده، قابلیت اطمینان سیستم و حفظ داده عملکرد بی‌نظیری دارن. ویژگی‌های کلیدی شامل موارد زیره:

دسترسی مستقیم به حافظه (DMA) به منظور بهبود بازدهی سیستم با انتقال داده از CPU و آزادسازی هسته‌ها برای وظایف حیاتی.

پل‌زنی غیرشفاف (NTB) جهت افزایش قابلیت اطمینان سیستم با تبادل داده بین دو CPU در پیکربندی‌های فعال-فعال.

فلش DRAM به NVMe برای حفاظت از داده‌های حیاتی با انتقال اون‌ها از DRAM به حافظه غیرفرار در صورت قطع برق.

پشتیبانی از SPI دوگانه امکان استفاده از دو SPI Flash Memory متفاوت رو می‌ده یکی برای BIOS و دیگری برای بوت‌لودر امن.

پشتیبانی از چارچوب Yocto و سیستم‌عامل لینوکس سبک و بهینه برای سیستم‌های امبدد.

کاربردها: پردازنده‌های AMD EPYC Embedded 8004 برای بازارهایی که به عملکرد بالا با بازدهی انرژی و تراکم پلتفرم نیاز دارن ایده‌آله. این پردازنده‌ها بهینه‌سازی شدن برای سیستم‌های شبکه، ذخیره‌سازی و صنعتی که بارهای کاری سنگین رو در محیط‌های سخت تحمل می‌کنن.

منبع:
https://amd.com/en/products/embedded/epyc/epyc-9004-and-8004-series.html

@DevTwitter | <سج‌آد/>
Forwarded from Yasha
اسنپ‌فود توی این گردونه جدیدش کدتخفیف و کریپتو میده 😁
https://slice.snappfood.ir
Forwarded from Content
This media is not supported in your browser
VIEW IN TELEGRAM
📣 انتشار گزارش جامع وضعیت بازار کار حسابداری

🎉 به مناسبت روز حسابدار، گزارش جامع وضعیت بازار کار «حسابداری و مالی» توسط «ای-استخدام» منتشر شد.

📝 در این گزارش می‌خوانید:

1️⃣ پنج مهارت برای استخدام حسابدار در شرکت‌های معتبر کدامند؟

2️⃣ پنج نرم‌افزار پر کاربرد حسابداری در شرکت‌های معتبر کدامند؟

3️⃣ دوره‌های محبوب رشته‌های حسابداری کدامند؟

4️⃣ به ازای هر حسابدار، چه تعداد فرصت شغلی در ایران وجود دارد؟


🔗 این گزارش را می‌توانید از طریق لینک زیر از «ای-استخدام» دانلود و مطالعه کنید:

www.e-estekhdam.com/u-1f6qw4
.
فروم پارچ؛ مکانی برای همه علاقه‌مندان به تکنولوژی و نرم‌افزار آزاد

🔗 فروم پارچ فقط یک انجمن برای کاربران توزیع پارچ نیست؛ بلکه محلی است برای گفت‌وگو درباره هر چیزی که به تکنولوژی و نرم‌افزار آزاد مربوط می‌شود!

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

🌟 اگر به جامعه‌ای پویا و پرانرژی برای یادگیری، همکاری و پیشرفت علاقه‌مندید، فروم پارچ منتظر شماست!

به ما بپیوندید:

https://forum.parchlinux.com


@ParchLinux