Dev Perfects
40 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
ابزار NotebookLM گوگل که این روزها بسیار محبوب و ترند شده،‌ حالا از ویدیوهای یوتیوب پشتیبانی می‌کنه و می‌تونید درمورد ویدیو یوتیوبی که بهش اضافه می‌کنید هم سوال بپرسید. فایل صوتی‌ای که آپلود می‌کنید هم به متن تبدیل می‌کنه و درنهایت می‌تونید ازش بخواید با توجه به کل محتواهایی که اضافه کردید یه فایل صوتی(پادکست دو نفره) بهتون بده و اون فایل هم قابل اشتراکه الان. همچنین توی آپدیت‌های بتای اون ساختن بات از نوت‌ها رو هم اضافه کردن.

testingcatalog.
hadi @geekalerts
Forwarded from Geek Alerts
Forwarded from Yasha
ب
Forwarded from Python BackendHub (Mani)
یک مشکلی همیشه تو تستا وجود داره وقتی دارین از container استفاده میکنید
اینم اونه که container پورت میگیره. تستون به یک سری hostname و پورت دپندنسی داره و اینا خیلی راحت میتونن باهم conflict بخورن.
و خیلی‌مشکلات دیگه

و خیلی‌وقتا ماک یا استفاده از SQLite پاسخگو نیاز نیست مثلا ماگریشن دارین یا functionality خاصی از دیتابیس استفاده میکنید یا … و تستاتون flaky میشه

اکثر این مشکلات رو testcontainer حلشون کرده.

https://testcontainers.com/
@PyBackendHub
Forwarded from Yasha
قسمت ۴ پادکست صفر و یک رو چند شب پیش با آرمان توی یه کافه ضبط کردیم :))🔥

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

🔗 کست‌باکس
🔗 اسپاتیفای

@Yasha
Forwarded from Python BackendHub (Mani)
من شروع به استفاده testcontainer کردم و واقعا خوبه.
اگه دیتابیستون رو میبرید رو pg چند آپتمایزشن میتونید انجام بدید که سرعت دیتابیستون خیلی بالا بره:

fsync=off
full_page_writes=off
shared_buffers=256MB
checkpoint_timeout=30min
checkpoint_completion_target=0.9
autovacuum=off

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

@PyBackendHub
Forwarded from Gopher Academy
هنگامی که دارید کد هاتون رو کامیت می کنید هیچ وقت کد های کامنت شده رو کامیت نکنید این باعث کثیف شدن پایگاه کد هاتون می شود و همچنین این باعث میشه از اصل کنترل ورژن دورتر شوید.

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

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

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


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

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

DevTwitter | <Mohammad Abdorrahmani/>

👑 @gopher_academy
Forwarded from 
چی بفرستم از اینجا نرید؟ :(
ولی واقعاً به قول جادی نباید بندهٔ الگوریتم باشم. کانال شخصیه دیگه. انتظار خاصی کسی نباید داشته باشه.

#موقت
Forwarded from amirsamimi_ir
اگر کاربر Vim هستید و می‌خواهید NeoVim را امتحان کنید و می‌خواهید بدون دردسر کانفیگ‌ها و پلاگین‌های Vim به NeoVim انتقال پیدا کند، بعد از نصب NeoVim یک فایل کانفیگ در این مسیر بسازید:
~/.config/nvim/init.vim


در مرحله بعد این خطوط را در این فایل قرار دهید و ذخیره کنید:
set runtimepath^=~/.vim runtimepath+=~/.vim/after
let &packpath=&runtimepath
source ~/.vimrc


همه چیز آماده است! حالا همان تنظیمات و همان پلاگین‌هایی که در Vim دارید، در NeoVim هم در دسترس شماست.
@amirsamimi_ir_telegram
نظرسنجی شبانه.

محتوای کانال توی این یک ماه اخیر چطور بوده؟ :)))


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


#موقت
مثل اینکه امروز درواقع قبل ساعت دوازده ( 30 سپتامبر ) روز جهانی پادکست بوده 🎙️

به همه رفقایی که خودشون پادکست تولید میکنند و عزیزانی که استفاده میکنند، با اندکی تاخیر تبریم میگم 🔥❤️

🚀 @coolycode
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond 🐈‍⬛ Dev)
🔶 شرکت HMD نام گوشی‌های نوکیا را به‌طور کامل از وب‌سایت خود حذف کرد.

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

https://nokiamob.net/2024/09/26/hmd-removes-nokia-phones-from-their-website/

#خبر
@TheRaymondDev
Forwarded from 
@DigitalPaintingGroup

گروه نقّاشی/طرّاحی رقمی:

#موقت
Good Morning New Yorkers ☀️
<unknown>
رویا پردازی خالی به درد نمیخوره.
اگه دوست داری همچین صدایی رو سر صبح بشنوی باید زحمتش رو بکشی 🌑

@CodeModule
Forwarded from Gopher Academy
🔵 عنوان مقاله
Stytch: Auth0 Alternative for AuthN, AuthZ, Fraud Prevention

🟢 خلاصه مقاله:
مقاله به بررسی امکانات و خدمات Stytch در زمینه احراز هویت B2B چند-مستاجری در سطح شرکت‌ها می‌پردازد. Stytch امکان استفاده از SSO (ورود یکباره)، RBAC (کنترل دسترسی براساس نقش) و SCIM (مدیریت هویت و دسترسی مبتنی بر استانداردهای ابری) را فراهم می‌کند. همچنین، این سرویس قابلیت استفاده از رابط‌های کاربری از پیش ساخته شده، بدون رابط کاربری (headless)، و یا ادغام مستقیم با API را ارائه می‌دهد. یکی از ویژگی‌های مهم Stytch شناسایی دیجیتالی دستگاه‌هاست تا از طریق آن بتوان ردیابی بات‌ها را انجام داد و از سوءاستفاده جلوگیری کرد. استفاده از Stytch با نسخه رایگان نیز آغاز می‌شود، که این امکان به کاربران اجازه می‌دهد تا کارایی و اثربخشی این سرویس را قبل از خرید تجربه کنند.

🟣لینک مقاله:
https://stytch.com?utm_source=go-weekly&utm_medium=paid_sponsorship&utm_content=go-weekly-05-14-2024&utm_campaign=go-weekly-05-14-2024


👑 @gopher_academy
Forwarded from Linuxor ?
آیا توی زبان C میشه بدون تابع main یه برنامه نوشت؟


نقطه شروع یه برنامه به زبان C تابع main هستش یه نفر توی کوئرا به اسم Mohd Saquib این برنامه که به زبان C نوشته و بدون فانکشن main برنامش اجرا میشه.

توضیح : در واقع فانکشن از قبل تعریف شده start_ کد های environment ضروری برنامه توش نوشته شده و داخلش تابع main صدا زده میشه، که اینجا اومده اونو دوباره تعریف کرده. دقت کنید اینو خودتون بنویسید موقع کامپایل خطای تعریف دوباره start_ میده و باید با سویچ nostartfiles کامپایلش کنید.

🐧 @Linuxor
God's Plan
Drake
Tryna keep it peaceful is a struggle for me
Forwarded from Geek Alerts
بخش زیادی از نیروگاه‌ها توی دنیا زغال‌سنگ هستن، این نیروگاه‌ها کربن زیادی تولید میکنن و خیلی از کشورها تو برنامشون اینه که کاملا این نیروگاه‌هارو کنار بذارن.
مثلا ایتالیا تاسال ۲۰۲۵ و کانادا تا سال ۲۰۳۰، آلمان تا ۲۰۲۸.
تا اینجا ولی بریتانیا زودتر از بقیه اقدام کرده و با تعطیل کردن نیروگاه Ratcliffe-on-Soar در ناتینگهام‌شایر به عنوان آخرین نیروگاه زغال‌سنگی به تولید برق با این روش پایان داد.
جدا از عدم تولید برق قرار هست که استخراج زغال‌سنگ توی بریتانیا هم متوقف بشه و برای مواردی که نیاز هست واردات داشته باشن.
جالبه بدونید که ۳۰ درصد از برق ژاپن و ۲۵ درصد از برق آلمان هنوز با نیروگاه‌های زغال‌سنگی تامین میشن.
theguardian
@geekalerts
Forwarded from Geek Alerts
نوکیا میدونید که خیلی وقت هست تولید گوشی با برند نوکیا رو به شرکت HMD Global فروخته، بعدتر HMD تصمیم گرفت گوشی‌هارو با برند خودش تولید کنه و دیگه از برند نوکیا استفاده نکرد.
این خبر میتونست پایان نوکیا باشه اما همچنان گوشی‌های نوکیا در فروشگاه‌های HMD موجود بود.
حالا خبر رسیده که HMD نوکیا رو از فروشگاه‌های خودش هم حذف کرده و به نظر میرسه این پایان دوران گوشی‌سازی نوکیا در دنیا هست.
البته ممکنه همچنان شرکت‌هایی امتیاز تولید گوشی با اسم نوکیا رو بخرن ولی فعلا خبری نیست.
newsbytesapp
@geekalerts
💎 معرفی SSE در Node.js 💎

مروز می‌خوایم درباره SSE یا Server-Sent Events توی Node.js صحبت کنیم.

حالا SSE چیه؟ 🤔
خب SSE یکی از تکنیک‌های وب هست که به سرور اجازه میده به طور یکطرفه اطلاعات رو به کلاینت بفرسته. یعنی سرور می‌تونه داده‌ها رو به مرور زمان به کلاینت بفرسته بدون اینکه کلاینت درخواست خاصی بده.

چرا از SSE استفاده کنیم؟ 💡
1⃣ ساده و راحت:
برای پیاده‌سازی SSE به کد کمتری نسبت به WebSocket نیاز داریم و ساده‌تره.

2⃣ بروزرسانی‌های زنده:
می‌تونی اطلاعات مثل نوتیفیکیشن‌ها یا اخبار رو به صورت زنده به کاربران ارسال کنی.

3⃣ پشتیبانی از مرورگرها:
اکثر مرورگرهای مدرن از SSE پشتیبانی می‌کنند.

چطور از SSE در Node.js استفاده کنیم؟ 🚀
برای استفاده از SSE توی Node.js می‌تونی به راحتی یه سرور ساده راه بندازی. مثلاً:

const express = require('express')
const app = express()

app.get('/events', (req, res) => {
res.setHeader('Content-Type', 'text/event-stream')
res.setHeader('Cache-Control', 'no-cache')
res.setHeader('Connection', 'keep-alive')

setInterval(() => {
const data = new Date().toLocaleTimeString()
res.write(`data: ${data}\n\n`)
}, 1000)
})

app.listen(3000, () => {
console.log('Server running on https://localhost:3000')
})


توضیحات کد 📝
- با استفاده از Express یه روت /events تعریف کردیم که داده‌ها رو به صورت زنده ارسال می‌کنه.
- سرور با استفاده از setInterval هر یک ثانیه زمان فعلی رو به کلاینت ارسال می‌کنه.

سمت کلاینت 🖥️
برای دریافت این داده‌ها در کلاینت می‌تونی از JavaScript استفاده کنی:

const eventSource = new EventSource('/events')

eventSource.onmessage = (event) => {
console.log('New message:', event.data)
}

جمع‌بندی 🎯
فهمیدیم SSE یکی از روش‌های عالی برای ارسال داده‌ها به صورت زنده از سرور به کلاینت در Node.js هست. با استفاده از این تکنیک می‌تونی تجربه کاربری بهتری رو برای اپلیکیشن‌هات ایجاد کنی.

امید وارم مفید بوده باشه :)

#sse #js #node.js


@ninja_learn_ir
Forwarded from Go Casts 🚀
گاهی اوقات پیش میاد که شما لازم دارید یه حجم زیادی از اطلاعات رو دریافت و پردازش کنید.
این حجم زیاد اطلاعات ممکنه از یک جنس داده باشه و از یک منبع واحد خونده بشن، و یا نه، ممکنه از انواع مختلف باشه و احتیاج باشه که منابع مختلفی رو فراخوانی کنید.

در هر صورت اتفاقی که میفته اینه که زمان پردازش شما زیاد میشه و بهتره که به دنبال بهتر کردنش باشید. یکی از الگوهایی که کمک میکنه این قضیه رو مدیریت کنید الگوی scatter/gather هست، که خیلی وقت پیش در موردش در کانال صحبت شده بود، که میتونید از اینجا بخونید
https://t.iss.one/gocasts/64

این الگو به شما اجازه میده که پردازش موازی داشته باشید (parallelism)


Scatter-gather pattern
https://docs.aws.amazon.com/prescriptive-guidance/latest/cloud-design-patterns/scatter-gather.html

اگه پردازشی که دارید انجام میدید cpu bound هست، میتونید با تقسیم کردن کار بین چند core یا thread پردازنده موازی سازی انجام بدید که در زمان خیلی کمتری پردازش همه داده هارو انجام بدید.

الگوی io bound مخصوصا در معماری microservice میتونه مناسب باشه، ممکنه یک درخواستی برای پردازش چندین سرویس رو درگیر کنه، که اگه پردازش سرویس ها به همدیگه وابستگی نداشته باشن، میشه از این الگو بهره گرفت که بصورت موازی پردازش هر سرویس انجام بشه.


درسته که این الگو رو به شیوه synchronous هم میشه پیاده سازی کرد، اما معمولا به صورت asynchronous و با استفاده از message passing از این الگو استفاده میکنن.


توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://t.iss.one/gocasts/515


@gocasts