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 TechTube 𝕏 تک توب
Forwarded from TechTube 𝕏 تک توب
Forwarded from TechTube 𝕏 تک توب
Forwarded from Codino School (ایمان غفوری)
This media is not supported in your browser
VIEW IN TELEGRAM
Early return is more git-friendly!

@codino
یک مشکلی داشتم،
من توی خونه برای راحتی فیلم دیدن خانواده یک سیستم NAS ایجاد کرده بودم چندسال قبل
NextCloud, ...
روی رزبری که به هارد وصل بود.

حدوداً ۲ سال قبل رزبری به مشکل خورد و سیستم رفت و منم دیگه حوصله و وقت کانفیگ نداشتم (نیازی هم نبود، هرکسی هرچی می‌خواست دوباره دانلود می‌کرد)

تا اینکه چندشب پیش یک سری فایل خواستیم به اشتراک بذاریم که حجمش خیلی زیاد می‌شد و اختصاصی هم بود.
دنبال راهکار، رزبری رو راه انداختم و
Sync directory
زدم، بعد به ذهنم رسید بجای nextcloud, ... همین کارو بکنم ی کد بزنم دائم یک پوشه رو مانیتور کنه
و اگر چیزی به پوشه اضافه شد که روی سرور (رزبپری نیست) اتومات آپلود کنه.

ابزار‌ برای اینکار هست حتی کد پایتون برای ۱ کلاینت و چند سرور رو هم دارم خودم (فقط روی اسم و تایم کار می‌کنه البته)

اینو دارم با Rust می‌نویسم توی وقتای خالی (حتی ۱۰-۲۰ دقیقه) و خیلی پروژه جذاب و پر تمرینی شده
گفتم اگر کسی خواست تمرین کنه :

ویژگی‌ها : چندتا آرگومان میگیره

اطلاعات ssh و کلید و ...

پوشه لوکال

پوشه سرور

همزمان می‌تونه چندتا پوشه رو هم track کنه.

روی تغییر متادیتا پوشه مثل زمان دسترسی و ... پوشه رو اسکن می‌کنه فایل جدید اگر پیدا کنه که hash اش توی جدول نباشه ( تیبل لوکال) تیبل سرور رو نگاه می‌کنه (ممکن اون فایل از طریق یک کامپیوتر یا دستگاه دیگه آپلود شده باشه) و اگر بود نوتیف میده که فایل آپلود شده

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

فیچر sync delete داره، برای موارد غیر حساس و ... مثلاً ی دوره آموزشی رو روی سیستم داری می‌خوای روی گوشی و تبلت و .... باشه که موقع خواب هم یک نگاهی بکنی بهش.
این مورد روی هر کلاینتی فعال باشه، فایل های اون کلاینت به محض پاک شدن از سورس از سرور هم پاک خواهند شد.

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

امیدوارم تمرین خوب و جذابی باشه.
Forwarded from  (Amir Hossein "Amiria" Maher)
توماج 🤍
Forwarded from Gopher Academy
🔵 عنوان مقاله
📊  What's Coming in Go 1.24

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته، به بررسی تغییرات زبان برنامه‌نویسی Go در نسخه 1.24 که انتظار می‌رود در ژانویه یا فوریه 2025 منتشر شود، می‌پردازد. این مقاله شامل ارائه‌ای با 52 اسلاید است که جزئیات تغییرات در زبان، ابزارها و کتابخانه استاندارد Go را پوشش می‌دهد. تغییرات مهمی که عنوان شده‌اند شامل ایجاد نوع عمومی (generic type aliases)، اشاره‌گرهای ضعیف (weak pointers)، و یک بسته آزمایشی جدید برای کدنویسی همزمان (concurrent code) است. این بسته آزمایشی جدید، مخصوصاً برای تست کد‌هایی که به صورت همزمان اجرا می‌شوند، طراحی شده و قابلیت‌های جدیدی به برنامه‌نویسان Go ارائه می‌دهد تا با استفاده از آن‌ها بتوانند کارایی و امنیت برنامه‌های خود را بهبود ببخشند.

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


👑 @gopher_academy
کمربند سیاهِ Async Await در Node.js

در این نوشته یاد میگیری که چجوری اپلیکیشن‌های Node.jsای که با callback یا Promise نوشتی رو با توابع async ساده‌ترشون کنی.

اگه قبلا یه نگاهی به الگوی async/await و promiseها در جاوااسکریپت انداختی ولی هنوز کامل بهشون مسلط نیستی و یا این که فقط نیاز داری تا مرورشون کنی، هدف این نوشته کمک به توئه.

https://yavarjs.ir/posts/mastering-async-await/

@DevTwitter | <Hamidreza/>
Forwarded from Anophel | آنوفل
آیا تا به حال به یک ساختار کامل و منظم برای مدیریت پروژه‌های #گولنگ ( Go# ) با معماری Domain-Driven Design (DDD) فکر کرده‌اید؟ در این پست قصد داریم این ساختار را با جزئیات بیشتری بررسی کنیم و به شما نشان دهیم چگونه می‌توانید پروژه‌تان را مرتب‌تر و کارآمدتر پیش ببرید.

پست قبلی ما در این لینک:

https://lnkd.in/evuPH7cB

1. سطح بالا (Root Directory):
-cmd/:
- این دایرکتوری برای نقاط ورود برنامه استفاده می‌شه. هر اپلیکیشن قابل‌اجرا، چه سرور باشه چه ابزارهای CLI یا میکروسرویس‌ها، اینجا قرار می‌گیره.

- مثال: cmd/app/main.go: فایل اصلی که نقطه شروع اجرای برنامه است. این فایل باید تمیز و ساده باشه و فقط وظیفه‌ی مقداردهی اولیه مثل خواندن تنظیمات، ایجاد کانکشن‌ها، و شروع سرور رو برعهده داشته باشه.

- internal/:
- کدهایی که مختص پروژه‌ی ما هستن و نباید توسط ماژول‌های خارجی استفاده بشن، اینجا قرار می‌گیرن. در گولنگ، دایرکتوری internal به‌صورت پیش‌فرض دسترسی ماژول‌های خارجی رو محدود می‌کنه.

- pkg/:
- شامل کتابخانه‌ها و کدهای قابل استفاده مجدد هست که ممکنه در پروژه‌های دیگه یا بخش‌های دیگه همین پروژه استفاده بشن. دقت کنید که این دایرکتوری باید از internal جدا باشه چون عمومی‌تر هست.

- configs/:
- تنظیمات پروژه مثل فایل‌های yaml، json یا toml که برای کانفیگ سرور، دیتابیس یا سرویس‌های دیگه استفاده می‌شن اینجا قرار می‌گیرن.

- go.mod و go.sum:
- این فایل‌ها وظیفه مدیریت وابستگی‌ها رو به عهده دارن و توسط Go Modules استفاده می‌شن.

2. دایرکتوری داخلی (internal/):
این دایرکتوری قلب پروژه‌ست و تمامی دامنه‌های پروژه رو در خودش جای می‌ده. هر دامنه یا Bounded Context به صورت جداگانه سازمان‌دهی شده.

ساختار دامنه (مثال: user/):
- user.go (Model):
- شامل مدل‌ها و ساختارهای داده‌ای مرتبط با دامنه است.

- repository.go:
- مسئول مدیریت دسترسی به داده‌ها (Data Access Layer) هست.

- service.go:
- این لایه منطق تجاری رو پیاده‌سازی می‌کنه و سرویس‌ها با repository تعامل دارند و مدیریت فرآیندهای مربوط به دامنه رو انجام می‌دن.

- handler.go:
- این لایه مدیریت درخواست‌های ورودی (HTTP یا gRPC) و اتصال اون‌ها به سرویس‌ها رو بر عهده داره.

ساختار دامنه دیگر (مثال: product/):
- دامنه‌های دیگه مثل product ساختاری مشابه دارند. هر دامنه به‌صورت مستقل پیاده‌سازی شده و شامل لایه‌های مدل، سرویس، ریپازیتوری و هندلر هست.

کاربرد این ساختار در DDD:
- تفکیک دامنه‌ها :
- هر دامنه کاملاً مستقل پیاده‌سازی شده و می‌تونه به صورت جداگانه توسعه یابد.

- انعطاف‌پذیری:
- با این ساختار، می‌تونید تغییرات یا افزودن دامنه‌های جدید رو بدون تأثیر روی سایر بخش‌ها انجام بدید.

-مقیاس‌پذیری:
- هر دامنه می‌تونه به‌صورت مجزا تست و مقیاس‌دهی بشه. برای مثال، در صورت نیاز، می‌تونید دامنه خاصی رو به یک سرویس مستقل تبدیل کنید.

سازگاری با معماری‌های مدرن:
- این ساختار برای پروژه‌های میکروسرویس، مونولیت ماژولار یا حتی معماری‌های لایه‌ای مناسب است.

آیا شما هم تجربه‌ای در استفاده از معماری DDD# دارید؟ خوشحال می‌شوم که تجربیات و نظرات خود را با ما به اشتراک بگذارید!

Anophel | آنوفل
Forwarded from Geek Alerts
آماده باشید که در کنار ChatGPT رایگان، Gemini رایگان، چند روز دیگه چت‌بات Grok (گراک) هم رایگان میشه.
البته الان یه API هم داره که ۲۵ دلار رایگان برای شروع میده.
رایگان شد از طریق این لینک میتونید دسترسی داشته باشید.
https://x.com/i/grok
و این هم کنسول API که میتونید همین الان عضو بشید.
https://console.x.ai
s4n_s6n
@geekalerts
Forwarded from Go Casts 🚀
بچه ها کسی ایده ای داره چرا دیتابیس postgres یهویی باید sync بودن seq_idهاش عقب بیفته روی همه جدول ها؟

اینجا یه سری نکته گفته
https://dev.to/arctype/how-to-fix-a-sequence-when-it-goes-out-of-sync-in-postgres-480b

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

@gocasts
مدتیه که مشغول یادگیری و آموزش PostgreSQL هستم. امروز با موضوع جالبی به نام TOAST آشنا شدم که روش خاصی برای ذخیره داده‌های حجیم در این پایگاه داده ارائه می‌ده.
درباره این موضوع، یه مقاله در مدیوم نوشتم و امیدوارم برای دوستانی که با PostgreSQL کار می‌کنن مفید باشه

https://medium.com/@Amir_M4A/toast-in-postgresql-storing-large-data-efficiently-0423ce21dd05

@DevTwitter | <Amir Asgary/>
Forwarded from Geek Alerts
در بریتانیا و آمریکا قوانینی وجود دارن که میگن لغو یه اشتراک باید به سادگی ثبت‌نام و خرید اون باشه.
و همچنین شرایط اشتراک باید به صورت واضح توضیح داده بشه.
مثلا وقتی اشتراک ۳۰ روز رایگان تهیه میشه بعد از ۳۰ روز هزینه ماه بعد به شکل خودکار از حساب بانکی کم میشه
قوانین subscription traps بریتانیا میگه باید قبل از پایان دوره رایگان به مشتری یادآوری بشه که رایگان اون‌ها داره تموم میشه و قراره از حسابشون پول کم بشه.
همچنین در کنار یادآوری امکان لغو اشتراک رو هم بدن.
الان بعضی از شرکت‌های بزرگ مثل اپل و اوبر ... زیر ذره‌بینن.
news
@geekalerts
Forwarded from Geek Alerts
شرکت Grayshift برای دولت‌ها ابزار قفل‌شکن موبایل میسازه، بعد شرکت‌های موبایل‌سازی هم همیشه دنبال اینن که جلوی روش‌هارو بگیرن.
الان یک گزارش منتشر شده که Grayshift دیگه نمی‌تونه به طور کامل اطلاعات گوشی‌هایی که iOS 18 و iOS 18.0.1 دارن رو استخراج کنه.
طبق این اسناد روی iOS 18 و iOS 18.0.1، فقط می‌تونه داده‌های جزئی رو استخراج کنه. مثل فایل‌های رمزنگاری‌نشده و متادیتا (مثل ساختار پوشه‌ها و اندازه فایل‌ها).
روی نسخه‌های بتای iOS 18.1 و بالاتر که کاملا ناکارآمد هست.
appleinsider
@geekalerts
Forwarded from Geek Alerts
پلیس هند به دنبال کشته شدن ۳ مرد به دلیل دنبال کردن مسیر گوگل‌مپس از روی یک پل ناتمام، یکی از کارکنان این شرکت را دستگیر کرد.
پ.ن. پل ناتمام انقدر دسترسی بهش راحت بوده نظرتون در مورد برخورد با شهرداری چیه؟ یا پیمانکار پل.
theregister
@geekalerts
Forwarded from Geek Alerts
کلمه‌ی سال آکسفورد انتخاب شد،
پوسیدگی مغز، «brain rot»
می‌گن که این اصطلاح امسال خیلی مورد توجه قرار گرفته، چون مردم به شدت نگران تأثیر مصرف زیاد محتوای بی‌کیفیت تو شبکه‌های اجتماعی بودن.
corp.oup
@geekalerts
Forwarded from Linuxor ?
سیمکارت ها تقریبا یه کامپیوتر کوچولو ان که حافظه و پردازنده دارن و یه سری اطلاعات رو ذخیره و پردازش میکنن، اما چندی پیش به این نتیجه رسیدن که این کامپیوترو چرا با برد خود دستگاه ادغام نکنیم و سیمکارت کلا حذف بشه و در نتیجه سیمکارت ها تبدیل شدن به eSIM و بجای سیمکارت فیزیکی فقط کافیه یه کد رو روی دستگاهتون وارد کنید.


🐧 @Linuxor
Forwarded from Linuxor ?
ما برنامه نویسا شب نداریم، بعد از روز مستقیم صبح میشه.


🐧 @Linuxor