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 linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🎉میز Xfce به Wayland نزدیک‌تر شد!

پیرو این پست قبلیم:
https://t.iss.one/linuxtnt/4313

ادغام کد کامپوزیتور Wayland در Xfwm4 مبتنی بر کتابخانه wlroots

🔹 پشتیبانی داخلی از کامپوزیتور Wayland به‌صورت رسمی در Xfwm4 (مدیر پنجره‌ی محیط دسکتاپ Xfce) اضافه شده. این کامپوزیتور جدید با استفاده از کتابخانه‌ی قدرتمند wlroots توسعه یافته که ابتدا توسط کامپوزیتور Sway معرفی شده بود.

🔹 کاربران Xfce مدت‌ها منتظر چنین تغییری بودند. تا پیش از این، اجرای Xfce روی Wayland نیازمند استفاده از کامپوزیتورهای خارجی بود، اما حالا با این ادغام جدید، Xfwm4 رسماً وارد دنیای Wayland شده است.

🔹 استفاده از کتابخانه‌ی wlroots باعث شده توسعه‌ی این قابلیت برای تیم Xfce بسیار ساده‌تر و سریع‌تر پیش برود. انتظار می‌رود همچنان پشتیبانی از X11 نیز حفظ شود.
به صورت کلی، اگر Dracut رو در پارچ پیاده‌سازی کنیم، میشه پشتیبانی از TPM2 و همینطور Unified Kernel Image رو راحت‌تر آورد.

علت تأخیر در رلیز جدید هم همین موضوع هستش، پروفایل پارچ دستخوش تغییرات زیادی داره میشه و یکمی زمان‌بر میشه این مورد.


https://wiki.archlinux.org/title/Unified_kernel_image


@SohrabContents
حالا این مورد پیاده‌سازی سکیوربوت هم راحت‌تر می‌کنه چون کلا یک فایل هستش که باید امضا بشه :)


@SohrabContents
Forwarded from Linuxor ?
نوشتن کدهای مدرن جاوااسکریپت با سینتکس جدید همیشه یه ریسک داره: چی میشه اگه مرورگر کاربر ازش پشتیبانی نکنه؟ Babel دقیقاً برای همینه. کدهای جدید رو می‌گیره، تبدیل می‌کنه به نسخه‌ای که تو همه‌ی مرورگرها جواب می‌ده. خیال‌راحت‌کن برای کسایی که روی مرورگرهای قدیمی هم حساب باز کردن.

github.com/babel/babel

@Linuxor
Forwarded from Linuxor ?
نوشتن کدهای مدرن جاوااسکریپت با سینتکس جدید همیشه یه ریسک داره: چی میشه اگه مرورگر کاربر ازش پشتیبانی نکنه؟ Babel دقیقاً برای همینه. کدهای جدید رو می‌گیره، تبدیل می‌کنه به نسخه‌ای که تو همه‌ی مرورگرها جواب می‌ده. خیال‌راحت‌کن برای کسایی که روی مرورگرهای قدیمی هم حساب باز کردن.

github.com/babel/babel

@Linuxor
Forwarded from laravel-news
“انسان‌ها به صورت دسته‌بندی شده فکر می‌کنن، کد ما نیز باید بازتابی از همین موضوع باشه”


#book #laravel_beyond_crud
Forwarded from Linuxor ?
وقتی گیت وقتی اشتباه پیش می‌ره، بدجوری داغون می‌شی. مخصوصاً وسط یه پروژه مهم یا توی ددلاین. ریپوی git-flight-rules یه راهنمای بحران‌محور برای کار با گیته. شبیه یه checklist برای خلبان‌هاست که وسط طوفان باید تصمیم بگیرن. مناسب همه، از تازه‌کار تا سینیور

github.com/k88hudson/git-flight-rules

@Linuxor
Forwarded from Gopher Academy
🔴قابلیت `T.Attr`, `B.Attr`, و `F.Attr`. ویژگی های جدید گولنگ نسخه 1.25

در Go نسخه 1.25**، سه متد جدید به پکیج `testing` اضافه شده‌اند: `T.Attr`, `B.Attr`, و `F.Attr`. این‌ها به شما اجازه می‌دهند **اتریبیوت‌های دلخواه (کلید–مقدار) را مستقیماً به خروجی لاگ تست ارسال کنید.

---

🏷 چه کاری انجام می‌دهند؟

با استفاده از T.Attr(key, value) می‌توانید به‌سادگی یک attribute با کلید key و مقدار value اضافه کنید و این در لاگ تست خواهد آمد:

=== ATTR  TestMyFeat myKey someValue


* برای تست‌ها: از T.Attr
* برای بنچمارک‌ها: از B.Attr
* برای فریمورک‌های fuzzing: از F.Attr

---

چرا مفید هستند؟

* دنبال کردن metadata مرتبط با تست‌ها، مثل نسخه پکیج، وضعیت کانفیگ، داده‌های ورودی خاص
* مناسب برای تولید خروجی قابل‌پردازش با test2json
* واضح و مستقیم، بدون نیاز به استفاده از Log یا fmt

---

🌟 مثال ساده

package mypkg_test

import "testing"

func TestSomething(t *testing.T) {
t.Attr("db", "postgres")
t.Attr("featureFlag", "enabled")

t.Log("running test with attributes")
// ... انجام تست اصلی ...
}


خروجی هنگام اجرای go test:

=== RUN   TestSomething
=== ATTR TestSomething db postgres
=== ATTR TestSomething featureFlag enabled
mypkg_test.go:10: running test with attributes
--- PASS: TestSomething (0.00s)


---

📊 ترکیب با test2json

اگر خروجی را با go test -json یا test2json بگیرد، این اتریبیوت‌ها به‌صورت structured می‌روند و ابزارهای CI/CD یا داشبوردها می‌توانند آن‌ها را بخوانند.

---

🛠 مثال برای بنچمارک‌ها

func BenchmarkMyOp(b *testing.B) {
b.Attr("iterations", b.N)
for i := 0; i < b.N; i++ {
// عملیات اصلی ...
}
}


خروجی:

=== BENCH: BenchmarkMyOp
=== ATTR BenchmarkMyOp iterations 1000
...


---

جمع‌بندی

*این T.Attr (و معادل‌های آن برای benchmark/fuzz) روشی ساده برای اضافه کردن metadata به تست‌ها هستند.
* بهبود خوانایی لاگ و قابلیت تجزیه‌ی ساخت‌یافته در ابزارهای خودکار.
* بسیار سبک و بدون overhead، یک ویژگی جزئی ولی کاربردی برای ردیابی و دیباگ.
Forwarded from Linuxor ?
می‌خوای برای تست یا dev، از AWS پول بسوزه؟ راه ساده‌ترش MinIO ـه.
برای خیلی از پروژه‌های dev، مخصوصاً وقتی با S3 سروکار داری، MinIO راهیه که به‌جای سرویس ابری، همون API رو توی سیستم خودت داشته باشی، با سرعت بالاتر و کنترل کامل روی دیتا.

نصبش هم خیلی خیلی سادس :

min.io

@Linuxor
Forwarded from Linuxor ?
وقتی تیم بزرگ مثل گوگل می‌گه "این سبک کدنویسی خوبه"،باید بی چون و چرا گوش بدید،

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

از Python گرفته تا C++ و JavaScript، همه رو پوشش داده

google.github.io/styleguide

@Linuxor
Forwarded from یه شعر (Poem Bot)
سعدی | دیوان اشعار | رباعیات | رباعی شمارهٔ ۸۲

نامردم اگر زنم سر از مهر تو باز
خواهی بکشم به هجر و خواهی بنواز
ور بگریزم ز دستت ای مایه ناز
هر جا که روم پیش تو می آیم باز

#سعدی | گنجور
📍@iipoem
Forwarded from Gopher Academy
🎯 ویژگی های جدید گولنگ نسخه 1.25 رو از اینجا بخونید

🔵synctest
🟢https://t.iss.one/gopher_academy/3910
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵 json/v2
🟢https://t.iss.one/gopher_academy/3913
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵 Container-aware GOMAXPROCS
🟢https://t.iss.one/gopher_academy/3922
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵New GC
🟢 https://t.iss.one/gopher_academy/3925
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵Anti-CSRF
🟢https://t.iss.one/gopher_academy/3937
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵WaitGroup.Go
🟢https://t.iss.one/gopher_academy/3943
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵FlightRecorder
🟢https://t.iss.one/gopher_academy/3939
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵os.Root
🟢https://t.iss.one/gopher_academy/3952
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵reflect.TypeAssert
🟢https://t.iss.one/gopher_academy/3947
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵T.Attr
🟢https://t.iss.one/gopher_academy/3956
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵slog.GroupAttrs
🟢https://t.iss.one/gopher_academy/3951
▫️▪️▫️▪️▫️▪️▫️▪️▫️

🔵hash.Cloner
🟢https://t.iss.one/gopher_academy/3946
▫️▪️▫️▪️▫️▪️▫️▪️▫️
1
Forwarded from Aniis
🔹پنجمین دورهمی فعالان حوزه امبدد و اینترنت اشیا، فرصتی برای ارتقا دانش و تعامل با متخصصان

باحضور : مدیر‌عامل و تیم فنی شرکت کرمان صنعت

• تاریـــخ: ۲۵ تیرماه ۱۴۰۴
• ساعت: ۱۷ الــــی ۱۹
• مکــان: کارخانه نوآوری کرمان، بلوار جمهوری اسلامی، خیابان صادقیه، قبل از صادقیه۳

🔸️منتظر حضور ارزشمند شما هستیم.

لینک ثبت‌ نام


شرکت راهکار صنعت آواپرداز
👎1
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰خروج خودکار از ترمینال (bash):

با استفاده از دستور TMOUT میتوانید، برحسب زمان داده شده(ثانیه) از شل جاری به صورت اتوماتیک خارج شوید.( منظورم در اینجا بسته شدن شل است که در ترمینال جاری باز است.)

🔹در دستور زیر بعد از 10 ثانیه شل جاری خارج میشود.
export TMOUT=10

خوب برای کسانی که همیشه حساسیت دارند.میتونید درکدهای شل اسکریپت هم این دستور را استفاده کنید.
نکته آخر: نیاز به وارد کردن sudo قبل دستور نیست.
———————————————————-
نویسنده: حسین سیلانی
منبع : کانال لینوکسی: لینوکس تی ان تی
@linuxtnt
سوالی که پیش اومده برای من در این چندماه اخیر اینه که «فایدش چیه؟» عملاً حتی زمانی که شوقی باقی نمیمونه.





و چیزیه که مثل یک
:(){ :|:& };:

توی ذهن ایجاد میشه و از بین نمیره.


هرکسی از من تجربه بخواد در این زمینه، جواب من بهش نکن عه. حتی برای رزومه هم ارزش نداره. خیلی کارهای بهتری میشه کرد :)



#موقت
هوش مصنوعی آفلاین

https://github.com/deepseek-ai/DeepSeek-V3

وقتی اینترنت ملی میشه کافیه DeepSeek نسخه آفلاین رو نصب کنید تا بتونید بدون اینترنت از هوش مصنوعی استفاده کنید

فقط باید 500 گیگ تا یک ترا فضا داشته باشید و تقریبا 32 گیگ رمم نیاز دارید


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

و اگر سرورم داشته باشید روی سرور نصب کنید که عالیه

@poinair پوینا
اگه به گوشتون نخورده، ردیس نسخه ۸ اومده. و تغییرات خیلی خوبی داشته.
هم از سمت فنی قابلیت های جدید (مثل کار با Json) هم بهبود پرفورمنسی و توانایی استفاده بهتر از تردهای بیشتر رو داره.
هم از سمت لایسنس، ماژول ها و چیزهای close source رو اوپن سورس کردن و همه رو مرج کردن در قالب لایسنس درست و حسابی منتشر کردن.

اگه کاربر ردیس هستین، بلاگ پست خودشون رو به نگاهی بندازید به نظرم.
https://redis.io/blog/redis-8-ga/
Forwarded from a.bakhshaee
علت اصلی مرگ: استقرار لیوم روی دیتاسنتر هتزنر آلمان

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

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

- کاوه‌نگار
برای استفاده از کاوه‌نگار هم یک سرور ایرانی را پروکسی کردیم. خوشبختانه به‌دلیل داشتن راه‌های مختلف ثبت‌نام (مهمان، با نام کاربری و ...)، آسیب زیادی ندیدیم.
درس‌آموخته: همیشه چند مسیر برای ثبت‌نام فراهم کن.

⚠️ قطع کامل اینترنت بین‌الملل
بعد از حل این مشکلات، متاسفانه به طور کامل دسترسی ما با خارج از ایران قطع شد. با قطع کامل ارتباط، پروکسی‌ها هم بی‌اثر شدند و لیوم کاملاً قطع شد.
مجبور شدیم انتقال کامل سرورها به ایران را جدی بگیریم، اما با مشکلات جدی مواجه شدیم.


۱- سرور ایرانی آروان؛ دردسر نصب ابزارها
پس از مهاجرت به سرور ابری آروان، دسترسی به خارج کاملاً بسته بود و نصب هیچ ابزاری (apt، Nginx، Node.js و ...) ممکن نبود.
راه حل: فایل‌ها را دستی دانلود و روی سرور ایرانی بارگذاری کردیم و با روش‌های ابتدایی نصب انجام دادیم.

۲- مشکل نصب دیتابیس Elastic
نصب الستیک‌سرچ با روش بالا ممکن نبود. همروش ایمیج میرور را داشت و ما هم نمی‌خواستیم DevOps الستیک را خودمان انجام دهیم.
بنابراین elastic را روی همروش راه‌اندازی کردیم.
درس‌آموخته: خدمات زیرساختی حساس را تا جای ممکن به سرویس‌های تخصصی بسپارید.

۳- مشکل Plasmic و GitHub
متاسفانه Plasmic برای push به GitHub وابسته بود. با قطع ارتباط، نه فیلترشکن جواب داد و نه GitHub در دسترس بود؛ هیچ دیپلوی ممکن نبود.
راه حل: پروژه‌ها را به هم‌گیت (سرویس Git داخلی هم‌روش) منتقل کردیم و با clone و push دستی، تغییرات جزئی انجام دادیم.

۴- اعلان‌های تلگرامی
اطلاع‌رسانی‌هایی که دیزاین کرده بودیم بر اساس ایونت‌های خاص برای ما در تلگرام ارسال شود، دیگر کار نمی‌کرد.
راه حل: اعلان‌ها را به پیام‌رسان بله منتقل کردیم به‌خاطر شباهت API با تلگرام. همچنین یک سرور خارجی را برای این کار پروکسی کردیم.

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

۶- متیس و GPT
بخش‌هایی از لیوم به GPT و متیس وابسته بودند که با اختلال اینترنت کاملاً از کار افتادند. تنها راه، اعلام اختلال به کاربران بود.
درس‌آموخته: همیشه یک دیزاین در پروداکت پیش‌بینی کنیم که بتوانیم به‌راحتی سرویس را به حالت تعلیق دربیاریم. برای مشکلات غیرقابل پیش‌بینی یا حتی تعمیرات زیرساختی، این امکان خیلی حیاتی است.

۷− امکان ثبت نام کاربران با جیمیل
هیچ راه‌حلی برای رفع این قطعی نداشتیم و دکمه ورود با جیمیل را موقتاً حذف کردیم.
درس‌آموخته: راه‌های متنوع برای ثبت‌نام قرار دهید تا بتوانید در صورت نیاز یکی از متدهای ثبت‌نام را از دسترس خارج کنید.

۸- مشکل با SSL و CDN
پس از مهاجرت به ایران، همچنان از CDN کلادفلر استفاده می‌کردیم اما اختلال داشتیم. با خاموش کردن حالت ابری (Proxy)، مشکل سرویس‌ها حل شد اما گواهی SSL غیرفعال شد.
آروان و لیارا هم در آن زمان نتوانستند SSL بدهند.
راه حل: با Certbot یک گواهی SSL موقت ۶۰ روزه صادر کردیم.

۹- مشکل با Postman
Postman هم کار نمی‌کرد و جایگزینی پیدا نشد که کار بکند.
راه حل: با ترمینال و Curl کارها را پیش بردیم.

۱۰- مشکل دیتابیس سنگین

در این بحران متوجه شدیم بسیاری از لاگ‌ها لازم نبود نگهداری شوند؛ پس حذف شدند. داده‌های خیلی قدیمی خلاصه‌سازی شدند. برخی داده‌ها را باید به سرویس‌های آتریبیوشن منتقل می‌کردیم که بعداً انجام شد.
حالا حجم دیتابیس کاهش یافته و با ابتدایی‌ترین روش من تقل شد.
درس‌آموخته: بی‌دلیل یا با دلیل کم‌ارزش چیزی را ذخیره نکنید و تا حد امکان از سرویس‌های دیگر استفاده کنید.
Forwarded from Linuxor ?
اینو می‌زارم اینجا همه باهم احساس "نادیده گرفته شدن" بگیریم😂😂😂

@Linuxor
1