Forwarded from Gopher Academy
🔵 عنوان مقاله
caddy-exec: Caddy Module for Running One-Off Commands
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته پیرامون سرور HTTP(S) به نام Caddy است که به زبان برنامهنویسی Go نوشته شده است. نویسندگان مقاله اظهار دارند که از این سرور در کارهای خود بسیار راضی هستند. نکتهی برجستهی مقاله به افزونهای اشاره دارد که امکان فعال سازی دستورات در زمان راهاندازی یا خاموش کردن سرور، و همچنین از طریق مسیرهای خاصی به نام «route» را فراهم میآورد. این افزونه به کاربران اجازه میدهد تا عملیات خاصی را به صورت خودکار در زمانهای تعیین شده یا در پاسخ به درخواستهای خاص انجام دهند، که این امر میتواند به بهبود کارایی و انعطافپذیری در مدیریت سرور کمک کند. این توانایی سازگاری با نیازهای کاربران و تنظیمات خاص آنها، Caddy را به یک گزینه جذاب در میان سرورهای HTTP(S) تبدیل میکند.
🟣لینک مقاله:
https://golangweekly.com/link/160165/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
caddy-exec: Caddy Module for Running One-Off Commands
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته پیرامون سرور HTTP(S) به نام Caddy است که به زبان برنامهنویسی Go نوشته شده است. نویسندگان مقاله اظهار دارند که از این سرور در کارهای خود بسیار راضی هستند. نکتهی برجستهی مقاله به افزونهای اشاره دارد که امکان فعال سازی دستورات در زمان راهاندازی یا خاموش کردن سرور، و همچنین از طریق مسیرهای خاصی به نام «route» را فراهم میآورد. این افزونه به کاربران اجازه میدهد تا عملیات خاصی را به صورت خودکار در زمانهای تعیین شده یا در پاسخ به درخواستهای خاص انجام دهند، که این امر میتواند به بهبود کارایی و انعطافپذیری در مدیریت سرور کمک کند. این توانایی سازگاری با نیازهای کاربران و تنظیمات خاص آنها، Caddy را به یک گزینه جذاب در میان سرورهای HTTP(S) تبدیل میکند.
🟣لینک مقاله:
https://golangweekly.com/link/160165/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - abiosoft/caddy-exec: Caddy v2 module for running one-off commands
Caddy v2 module for running one-off commands. Contribute to abiosoft/caddy-exec development by creating an account on GitHub.
Forwarded from DevTwitter | توییت برنامه نویسی
اگر میخواید ماشین لرنینگ، تحلیل داده یا علوم داده رو شروع کنید، از مخزن زیر استفاده کنید! Awesome Public Datasets توی GitHub پر از دادههای رایگان و عمومی هست که به موضوعاتی مثل سلامت، اقتصاد و علوم اجتماعی و ... میپردازه.
https://github.com/awesomedata/awesome-public-datasets
@DevTwitter | <Badass Analyst/>
https://github.com/awesomedata/awesome-public-datasets
@DevTwitter | <Badass Analyst/>
Forwarded from Guard of Tux (Amir Enderman)
GitLab
nvidia-utils: Enable required systemd services (!16) · Merge requests · Arch Linux / Packaging / Packages / nvidia-utils · GitLab
Now, that we are enabling PreserveVideoMemoryAllocations !14 , which fixes...
کسانی که توزیع های آرچ بیس و کارت گرافیک انویدیا دارند، اگر یادتون باشه دو فلگ nvidia_drm.modeset=1 و از نسخه 545 درایور به بعد فلگ جدید nvidia_drm.fbdev=1 باید بهصورت دستی به متغیر های کرنل اد میشد تا ویلند و کامپوزیتورهاش به طور درست کار کنن.
اما الان به لطف یکی از PR های جدیدی که اعمال شده این فلگ ها، به صورت خودکار به متغیر های کرنل میشن.
همچنین سرویسهای nvidia-resume, nvidia-suspend و nvidia-hibernate و متغیر کرنلی NVreg_PreserveVideoMemoryAllocations در این آپدیت بهصورت خودکار فعال میشن تا تازهکارها به مشکلاتی از قبیل ساسپند نشدن و یا بیدار نشدن سیستمشون پس از ساسپند نخورن.
جزئیات بیشتر این آپدیت توی اینجا در دسترسه.
@GuardofTux
اما الان به لطف یکی از PR های جدیدی که اعمال شده این فلگ ها، به صورت خودکار به متغیر های کرنل میشن.
همچنین سرویسهای nvidia-resume, nvidia-suspend و nvidia-hibernate و متغیر کرنلی NVreg_PreserveVideoMemoryAllocations در این آپدیت بهصورت خودکار فعال میشن تا تازهکارها به مشکلاتی از قبیل ساسپند نشدن و یا بیدار نشدن سیستمشون پس از ساسپند نخورن.
جزئیات بیشتر این آپدیت توی اینجا در دسترسه.
@GuardofTux
Forwarded from Go Casts 🚀
واقعا لذت بردم از این مقاله
نکات ساده و مهمی رو درباره تست نویسی با گولنگ میگه، یه ابزار رو هم معرفی میکنه برای visualize کردن تست ها که خودش نوشته و کمبودش حس میشد در tooling گولنگ.
خودم بارها حین اجرای تست ها در پایپلاین های ci/cd به مشکلات متفاوتی برخوردم در مورد نحوه اجرای موازی یا سریالی تست ها، مخصوصا setup و cleanup کردن ها و migration های دیتابیس برای پکیج های متفاوت که تست دارند میتونه چالش زا باشه و تست ها رو با random behaviour و random failure مواجه کنه.
Optimising and Visualising Go Tests Parallelism: Why more cores don't speed up your Go tests
https://threedots.tech/post/go-test-parallelism/
در مورد تست نویسی این ویدیوهارو در یوتیوب دو سه سال پیش ضبط کردم، بد نیست ببینید
https://t.iss.one/gocasts/153
همچنین این سری مقاله ای که معرفی کردم ساده و خوبه، سر فرصت بخونید و استفاده کنید
https://t.iss.one/gocasts/37
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://t.iss.one/gocasts/515
@gocasts
#unit_test #test #gocasts #golang
نکات ساده و مهمی رو درباره تست نویسی با گولنگ میگه، یه ابزار رو هم معرفی میکنه برای visualize کردن تست ها که خودش نوشته و کمبودش حس میشد در tooling گولنگ.
خودم بارها حین اجرای تست ها در پایپلاین های ci/cd به مشکلات متفاوتی برخوردم در مورد نحوه اجرای موازی یا سریالی تست ها، مخصوصا setup و cleanup کردن ها و migration های دیتابیس برای پکیج های متفاوت که تست دارند میتونه چالش زا باشه و تست ها رو با random behaviour و random failure مواجه کنه.
Optimising and Visualising Go Tests Parallelism: Why more cores don't speed up your Go tests
https://threedots.tech/post/go-test-parallelism/
در مورد تست نویسی این ویدیوهارو در یوتیوب دو سه سال پیش ضبط کردم، بد نیست ببینید
https://t.iss.one/gocasts/153
همچنین این سری مقاله ای که معرفی کردم ساده و خوبه، سر فرصت بخونید و استفاده کنید
https://t.iss.one/gocasts/37
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://t.iss.one/gocasts/515
@gocasts
#unit_test #test #gocasts #golang
Forwarded from Arsham's Tech Mastery (Arsham)
The devil is in the details
شیطان در جزئیات خفته
طی چند سالی که تو رشته کامپیوتر فعالیت میکردم،
مشکلات بزرگ و کوچیک و تغییرات بزرگ و کوچیک زیادی دیدم،
اما به طور جالبی،
بزرگترین مشکلات ریشه در تغییراتی داشت که ورژن پتچ خورده بودن و اونقدر کوچیک بودن که حتی کد ریویو و تست نشدن چون "کوچیک بودن"
ولی بعدش... فاجعه رخ داد.
اما از دید من، هیچ تغییری بی اهمیت نیست،
یه اسپیس اضافه توی فایل یمل میتونه کلا کانفیگ رو خراب کنه و پاد کلا بالا نیاد.
و کاش ته فاجعه بالا نیومدن یه پاد باشه!
یه سری اشتباهات در همین اندازه کوچیک،
موشک ها منفجر کردن و بیزنس ها به خاک نشوندن!
|-×-×-×-|
نیاز به حساسیت رو یه سری موارد در ظاهر کم ارزش اما باطنا تاثیر گذار، باعث شد که با خیال راحت تری برای ریویو کردن کد ها حساسیت به خرج بدم.
الان اینجوری ام که حتی به تک تک اسپیس ها و فرمتینگ های نامناسب کد هم اشاره میکنم.
ولی خودمونیما، چه دلیلی وجود داره که کد فرمت نشه؟
اونم با وجود کلی ابزار برای اتومات شدن این فرآیند؟
چیزی جز مایندست "بزن بره"؟
و چه تضمینی هست کسی که رو فرمت کردن کدش تنبلی کرده، بقیه جاها مثل ساعت کوارتز، دقیق باشه؟
|-×-×-×-|
برای من کد مثل یه اثر هنری میمونه، که هر چی بیشتر به ظرافت هاش توجه بشه زیباتر میشه.
و تو مهندسی، علاوه بر زیبایی، پارامتر هایی مثل کارایی، بهینگی، قابل اتکایی و... هم تاثیر پذیر از توجه به ظرافت ها و جزئیات هستن.
بنابراین به جزئیات دقت کنید،
تمام کامیت های شما میشن اعتبار آینده شغلی شما،
اعتبار شما پیش کسایی که فعلا شمارو نمیشناسن،
اما اسم و کیفیت کارتون رو خواهد شناخت.
دیر رسیدن، بهتر از رو پروداکشن ترکیدن!
|-×-×-×-|
اخیرا دوستی برای مشکلی تو کدش بهم مراجعه کرد،
نمیتونست دیباگش کنه،
به محض اینکه پیچیدگی غیر ضروری و چند لول شرط های تو در تو رو دیدم، گفتم اول این شرط هارو جدا کن یکم کدت رو تمیز تر کن، بعد مشکل خودش خودشو نشون میده.
اول مقاومت کرد و متوجه ارتباط دغدغه من با مشکلش نشد، ولی بعد که براش توضیح دادم چه اتفاقی تو اون قطعه کد داره میوفته متوجه شد که عملا خیلی از جزئیات رو حذف کرده بوده، جزئیاتی که دقیقا خطا در همونا نهفته بود.
و حتی خطاهایی که میتونست خاموش بمونه و تو یه فلوی جانبی خاص، نرم افزار رو بندازه.
|-×-×-×-|
از این موارد و عدم توجه به جزئیاتی که باعث فاجعه شدن زیاد توی تاریخ دنیای نرم افزار وجود داره،
ولی مایندست "بزن بره" هم همچنان به قوت خودش باقیه 🔥😂
واقعیت اینکه گاهی وقتا یه چیزایی برامون شفاف نشده،
و همین باعث میشه ندونیم چه وقت حساس باشیم و چقدر حساس باشیم.
میخوایم جلوی premature optimisation رو بگیریم،
اشتباها کد باگی میفرستیم رو پروداکشن.
چون مرز بهینگی رو مشخص نکردیم،
چون تعریف باگ رو (برا خودمون) مشخص نکردیم،
چون هیچ فریمورکی برای کد ریویو نداریم و کاملا سلیقه ای انجام میشه.
و...
|-×-×-×-|
نظر شما چیه؟ چه مثال ها و نکاتی رو دوست دارید در مورد مطالب گفته شده مطرح کنید؟
Forwarded from Ninja Learn | نینجا لرن
💎توضیح Dirty Read، Non-Repeatable Read، Phantom Read و Deadlock 💎
خب بچهها امروز میخوایم درباره چند تا مشکل رایج توی تراکنشهای دیتابیس حرف بزنیم که ممکنه به دردتون بخوره. وقتی چند تا تراکنش به صورت همزمان توی دیتابیس کار میکنن، بعضی وقتا اتفاقای غیرمنتظرهای میافته که ممکنه به بینظمی و باگ منجر بشه. این مشکلات شامل Dirty Read، Non-Repeatable Read، Phantom Read و Deadlock هستن. بیاید دونه دونه بررسیشون کنیم.
اول Dirty Read 💾
خب Dirty Read یعنی وقتی یه تراکنش دادههایی رو میخونه که هنوز توسط یه تراکنش دیگه نهایی (commit) نشده. این یعنی شما دارید چیزی رو میخونید که ممکنه عوض بشه یا حتی برگرده.
مثال: فرض کن یکی توی اپلیکیشن شما داره اطلاعات یه سفارش رو تغییر میده ولی هنوز تغییرات رو ذخیره نکرده. حالا یه کاربر دیگه همون سفارش رو میبینه و تصمیم میگیره. اگر اون تغییرات نهایی نشن، اطلاعات اشتباهی به کاربر دوم رسیده.
دوم Non-Repeatable Read 🔄
خب Non-Repeatable Read وقتی پیش میاد که یه تراکنش، دادهای رو چند بار میخونه و دفعههای بعدی اون داده فرق میکنه، چون یه تراکنش دیگه اومده و اون داده رو وسط کار تغییر داده.
مثال: شما قیمت یه محصول رو برای یه مشتری نشون میدید. همزمان یه کاربر دیگه قیمت همون محصول رو تغییر میده. وقتی مشتری دوباره صفحه رو رفرش کنه، قیمت متفاوتی میبینه.
سوم Phantom Read 👻
خب Phantom Read یعنی وقتی یه تراکنش یه مجموعه داده رو میخونه و در طول اجرای تراکنش، رکوردهای جدیدی به اون مجموعه اضافه یا حذف میشن. اینطوری وقتی دوباره همون پرسوجو رو انجام بدی، نتیجه متفاوتی میبینی.
مثال: فرض کن یه مدیر داره تعداد کارمندای یک بخش رو چک میکنه. در همون لحظه یکی دیگه یه کارمند جدید به همون بخش اضافه میکنه. حالا اگر مدیر دوباره تعداد کارمندها رو ببینه، یه کارمند جدید میاد توی لیست که دفعه قبل نبوده.
چهارم Deadlock 🔐
خب Deadlock وقتی اتفاق میافته که دو یا چند تراکنش همزمان منتظر همدیگه بمونن و نتونن کاری کنن. یعنی تراکنشها همدیگه رو قفل میکنن و نمیتونن ادامه بدن.
مثال: فرض کن تراکنش A میخواد رکورد ۱ رو قفل کنه و منتظر رکورد ۲ هم هست. همزمان تراکنش B رکورد ۲ رو قفل کرده و منتظر رکورد ۱ هست. اینجا تراکنشها همدیگه رو بلاک کردن و هیچکدوم نمیتونن کاری بکنن.
جمع بندی 🎯
اینا مشکلات رایجی هستن که توی مدیریت تراکنشها و همزمانی توی دیتابیسها رخ میده. با فهمیدن و شناسایی این مشکلات میتونید از بروز مشکلات جدی توی سیستمهای دیتابیسی جلوگیری کنید و عملکرد بهتری داشته باشید.
امیدوارم مفید بوده باشه :)
@ninja_learn_ir
خب بچهها امروز میخوایم درباره چند تا مشکل رایج توی تراکنشهای دیتابیس حرف بزنیم که ممکنه به دردتون بخوره. وقتی چند تا تراکنش به صورت همزمان توی دیتابیس کار میکنن، بعضی وقتا اتفاقای غیرمنتظرهای میافته که ممکنه به بینظمی و باگ منجر بشه. این مشکلات شامل Dirty Read، Non-Repeatable Read، Phantom Read و Deadlock هستن. بیاید دونه دونه بررسیشون کنیم.
اول Dirty Read 💾
خب Dirty Read یعنی وقتی یه تراکنش دادههایی رو میخونه که هنوز توسط یه تراکنش دیگه نهایی (commit) نشده. این یعنی شما دارید چیزی رو میخونید که ممکنه عوض بشه یا حتی برگرده.
مثال: فرض کن یکی توی اپلیکیشن شما داره اطلاعات یه سفارش رو تغییر میده ولی هنوز تغییرات رو ذخیره نکرده. حالا یه کاربر دیگه همون سفارش رو میبینه و تصمیم میگیره. اگر اون تغییرات نهایی نشن، اطلاعات اشتباهی به کاربر دوم رسیده.
دوم Non-Repeatable Read 🔄
خب Non-Repeatable Read وقتی پیش میاد که یه تراکنش، دادهای رو چند بار میخونه و دفعههای بعدی اون داده فرق میکنه، چون یه تراکنش دیگه اومده و اون داده رو وسط کار تغییر داده.
مثال: شما قیمت یه محصول رو برای یه مشتری نشون میدید. همزمان یه کاربر دیگه قیمت همون محصول رو تغییر میده. وقتی مشتری دوباره صفحه رو رفرش کنه، قیمت متفاوتی میبینه.
سوم Phantom Read 👻
خب Phantom Read یعنی وقتی یه تراکنش یه مجموعه داده رو میخونه و در طول اجرای تراکنش، رکوردهای جدیدی به اون مجموعه اضافه یا حذف میشن. اینطوری وقتی دوباره همون پرسوجو رو انجام بدی، نتیجه متفاوتی میبینی.
مثال: فرض کن یه مدیر داره تعداد کارمندای یک بخش رو چک میکنه. در همون لحظه یکی دیگه یه کارمند جدید به همون بخش اضافه میکنه. حالا اگر مدیر دوباره تعداد کارمندها رو ببینه، یه کارمند جدید میاد توی لیست که دفعه قبل نبوده.
چهارم Deadlock 🔐
خب Deadlock وقتی اتفاق میافته که دو یا چند تراکنش همزمان منتظر همدیگه بمونن و نتونن کاری کنن. یعنی تراکنشها همدیگه رو قفل میکنن و نمیتونن ادامه بدن.
مثال: فرض کن تراکنش A میخواد رکورد ۱ رو قفل کنه و منتظر رکورد ۲ هم هست. همزمان تراکنش B رکورد ۲ رو قفل کرده و منتظر رکورد ۱ هست. اینجا تراکنشها همدیگه رو بلاک کردن و هیچکدوم نمیتونن کاری بکنن.
جمع بندی 🎯
اینا مشکلات رایجی هستن که توی مدیریت تراکنشها و همزمانی توی دیتابیسها رخ میده. با فهمیدن و شناسایی این مشکلات میتونید از بروز مشکلات جدی توی سیستمهای دیتابیسی جلوگیری کنید و عملکرد بهتری داشته باشید.
#db #dead_lock #programing
Forwarded from Geek Alerts
نسخه رسمی ChatGPT برای ویندوز منتشر شد.
چون آزمایشی هست فعلا کاربرهای پلاس فقط میتونن لاگین کنن. احتمالا بهزودی دسترسی برای همه باز میشه.
این چون آزمایشی هست یک سری از ویژگیهای نسخه وب یا موبایل رو نداره، مثل دستیار صوتی و ورود به گوگل درایو، ولی همه اینها در نسخه نهایی منتشر میشه.
یه گزینه چت فوری هم داره که با دکمهای Alt + Space فوری باز میشه و میتونید چت کنید.
این چت حتی آخرین موقعیتی که داخلش بودید رو یادش میمونه، حتی وقتی برنامه رو ببندید و مجدد باز کنید.
https://apps.microsoft.com/detail/9nt1r1c2hh7j
@geekalerts
چون آزمایشی هست فعلا کاربرهای پلاس فقط میتونن لاگین کنن. احتمالا بهزودی دسترسی برای همه باز میشه.
این چون آزمایشی هست یک سری از ویژگیهای نسخه وب یا موبایل رو نداره، مثل دستیار صوتی و ورود به گوگل درایو، ولی همه اینها در نسخه نهایی منتشر میشه.
یه گزینه چت فوری هم داره که با دکمهای Alt + Space فوری باز میشه و میتونید چت کنید.
این چت حتی آخرین موقعیتی که داخلش بودید رو یادش میمونه، حتی وقتی برنامه رو ببندید و مجدد باز کنید.
https://apps.microsoft.com/detail/9nt1r1c2hh7j
@geekalerts
Forwarded from Geek Alerts
خب Perplexity اینجوری کار میکنه که میتونید بر اساس دیتایی که داخل وب و اینترنت هست جستجو کنید.
یه ویژگی جدید به اسم Internal Knowledge معرفی کرده که میتونید بهش دیتاهای داخلی خودتون رو بدید، مثلا کلی فایل PDF وورد و ... دارید پرپلکسیتی میتونه همرو بخونه و ازشون یاد بگیره، حالا وقتی ازش سوال کنید فقط تو اینترنت نمیگرده و به کمک دیتاهای شما هم بهتون جواب میدن.
از طرفی این فضای دیتایی که میسازید رو میتونید با بقیه هم به اشتراک بذارید یا گروهی روش کار کنید.
خودش چند تا پیشنهاد داده، گفته مثلا تیمهای منابع انسانی شرکتها میتونن دیتاهایی رو آماده کنن تا سایر نیروی شرکت اگه سوالاتی داشتن سریع تر به جواب برسن.
یا مثلا تیم فروش به کمک تجارب و دیتاهایی که از قبل داره و ترکیبش با اخبار و ترندهای روز بتونه از پرپلکسیتی برای اهدافش بهتر استفاده کنه.
ویژگی خیلی خوبه اما برای دسترسی بهش اشتراک پرو ۲۰ دلاری باید تهیه بشه که البته یکی از ویژگیهای این اشتراک ساخت فضاهایی از دیتاهای داخلی هست.
https://www.perplexity.ai/
perplexity
@geekalerts
یه ویژگی جدید به اسم Internal Knowledge معرفی کرده که میتونید بهش دیتاهای داخلی خودتون رو بدید، مثلا کلی فایل PDF وورد و ... دارید پرپلکسیتی میتونه همرو بخونه و ازشون یاد بگیره، حالا وقتی ازش سوال کنید فقط تو اینترنت نمیگرده و به کمک دیتاهای شما هم بهتون جواب میدن.
از طرفی این فضای دیتایی که میسازید رو میتونید با بقیه هم به اشتراک بذارید یا گروهی روش کار کنید.
خودش چند تا پیشنهاد داده، گفته مثلا تیمهای منابع انسانی شرکتها میتونن دیتاهایی رو آماده کنن تا سایر نیروی شرکت اگه سوالاتی داشتن سریع تر به جواب برسن.
یا مثلا تیم فروش به کمک تجارب و دیتاهایی که از قبل داره و ترکیبش با اخبار و ترندهای روز بتونه از پرپلکسیتی برای اهدافش بهتر استفاده کنه.
ویژگی خیلی خوبه اما برای دسترسی بهش اشتراک پرو ۲۰ دلاری باید تهیه بشه که البته یکی از ویژگیهای این اشتراک ساخت فضاهایی از دیتاهای داخلی هست.
https://www.perplexity.ai/
perplexity
@geekalerts
Forwarded from Linuxor ?
تفاوت سرور اختصاصی با Bare Metal چیه؟
تقریبا هردو شبیه هم دیگه بهتون دسترسی کامل به سرور رو میدن اما توی Bare Metal یکم دسترسی بیشتره مثلا میتونید به BIOS دسترسی داشته باشید و مثلا CPU رو کانفیگ کنید یا گرافیک رو Over Clock کنید.
برای کنترل کردنش یه کنسول بهتون میدن که بهش میگن IPMI باهاش از راه دور میتونید تنظیمات سخت افزاری رو تغییر بدید.
🐧 @Linuxor
تقریبا هردو شبیه هم دیگه بهتون دسترسی کامل به سرور رو میدن اما توی Bare Metal یکم دسترسی بیشتره مثلا میتونید به BIOS دسترسی داشته باشید و مثلا CPU رو کانفیگ کنید یا گرافیک رو Over Clock کنید.
برای کنترل کردنش یه کنسول بهتون میدن که بهش میگن IPMI باهاش از راه دور میتونید تنظیمات سخت افزاری رو تغییر بدید.
🐧 @Linuxor
Forwarded from Gopher Academy
🔵 عنوان مقاله
Modview: Go Project Dependency Graph Visualizer
🟢 خلاصه مقاله:
مقاله مورد بحث روشی ساده را برای تجسم وابستگیها در پروژههای برنامهنویسی Go ارائه میدهد، که این امر از طریق نمودارهای گرافیکی و واضح انجام میگیرد. روش پیشنهادی به توسعهدهندگان کمک میکند تا به راحتی ساختار و تعاملات بین مولفههای مختلف پروژه خود را درک کنند. این فرآیند نه تنها باعث بهبود کیفیت کدنویسی میشود، بلکه در شناسایی و حل مسائل احتمالی وابستگیها نیز مؤثر است. استفاده از نمودارهای گرافیکی به عنوان ابزاری بصری، فرآیند تحلیل و بررسی کدها را سریعتر و دقیقتر از روشهای متنی سنتی میکند. این مقاله به بررسی ابزارها و روشهای موجود برای ایجاد این نمودارها میپردازد و نحوه عملیاتی کردن آنها در محیطهای توسعه واقعی را شرح میدهد.
🟣لینک مقاله:
https://golangweekly.com/link/160488/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Modview: Go Project Dependency Graph Visualizer
🟢 خلاصه مقاله:
مقاله مورد بحث روشی ساده را برای تجسم وابستگیها در پروژههای برنامهنویسی Go ارائه میدهد، که این امر از طریق نمودارهای گرافیکی و واضح انجام میگیرد. روش پیشنهادی به توسعهدهندگان کمک میکند تا به راحتی ساختار و تعاملات بین مولفههای مختلف پروژه خود را درک کنند. این فرآیند نه تنها باعث بهبود کیفیت کدنویسی میشود، بلکه در شناسایی و حل مسائل احتمالی وابستگیها نیز مؤثر است. استفاده از نمودارهای گرافیکی به عنوان ابزاری بصری، فرآیند تحلیل و بررسی کدها را سریعتر و دقیقتر از روشهای متنی سنتی میکند. این مقاله به بررسی ابزارها و روشهای موجود برای ایجاد این نمودارها میپردازد و نحوه عملیاتی کردن آنها در محیطهای توسعه واقعی را شرح میدهد.
🟣لینک مقاله:
https://golangweekly.com/link/160488/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - bayraktugrul/modview: Effortlessly visualize mod graph with all external dependencies for your Go projects
Effortlessly visualize mod graph with all external dependencies for your Go projects - bayraktugrul/modview
Forwarded from Geniuses Group (Omid Hekayati)
🔗 با همفکری و همراهی چند تن از دوستان جلسات نقد و بررسی روش های پیاده سازی (سینتکس زبان) الگوهای پایه ای در زبان های برنامه نویسی (مثل encapsulation و abstraction و ...) را ترتیب دادیم.
جلسات بدلیل فیلتر شدن نرم افزار دیسکورد در ایران، در گوگل میت برگزار میشه. در کامنت های همین پست، جزییات شرکت در جلسات و صوت ضبط شده جلسات را قرار میدیم.
🤝 دلیل این جلسات این سوال بود که من در گروه طراحی زبان پرسیدم و دوستان خوبی مثل محسن جان و احسان جان در گفت و گو شرکت کردند و نکات خوبی را مطرح کردند، ولی بدلیل عدم امکان ادامه بحث در متن قرار بر برگزاری جلسات صوتی برای این موضوع شد.
🧠 یکم در این جلسات می خوایم با #تفکر_انتقادی به نحوه پیاده سازی این موضوعات بپردازیم. سعی می کنیم قبل از ورود به نقد قطعا هر اصل را به شکل خوبی تبیین کنیم که با دیدگاه مشترک از اصل مورد نظر، سینتکس زبان ها را نقد کنیم.
🎯 اگر نتیجه گری قابل قبولی هم در جلسات داشتیم بنده در زبان خیام (#زبان_خیام) که در حال توسعه آن هستیم قرار میدهم. پس قطعا مشارکت شما چه در جلسات چه در تعریف این زبان قطعا با استقبال فراوان از طرف ما خواهد بود. در زبان خیام قصد ایجاد یک زبان عادی مثل دیگر زبان ها نیستیم، موضوعات شاید در نگاه اول عجیب ولی در عین حال جذاب خواهیم داشت. مثلا یکی از تصمیمات بنیادی ما این هست که به شکل کلی primitive data type برای این زبان در سطح سینتکس نداشته باشیم! در جلسات درباره این تصمیمات بیشتر صحبت خواهیم کرد.
جلسات بدلیل فیلتر شدن نرم افزار دیسکورد در ایران، در گوگل میت برگزار میشه. در کامنت های همین پست، جزییات شرکت در جلسات و صوت ضبط شده جلسات را قرار میدیم.
🤝 دلیل این جلسات این سوال بود که من در گروه طراحی زبان پرسیدم و دوستان خوبی مثل محسن جان و احسان جان در گفت و گو شرکت کردند و نکات خوبی را مطرح کردند، ولی بدلیل عدم امکان ادامه بحث در متن قرار بر برگزاری جلسات صوتی برای این موضوع شد.
🧠 یکم در این جلسات می خوایم با #تفکر_انتقادی به نحوه پیاده سازی این موضوعات بپردازیم. سعی می کنیم قبل از ورود به نقد قطعا هر اصل را به شکل خوبی تبیین کنیم که با دیدگاه مشترک از اصل مورد نظر، سینتکس زبان ها را نقد کنیم.
🎯 اگر نتیجه گری قابل قبولی هم در جلسات داشتیم بنده در زبان خیام (#زبان_خیام) که در حال توسعه آن هستیم قرار میدهم. پس قطعا مشارکت شما چه در جلسات چه در تعریف این زبان قطعا با استقبال فراوان از طرف ما خواهد بود. در زبان خیام قصد ایجاد یک زبان عادی مثل دیگر زبان ها نیستیم، موضوعات شاید در نگاه اول عجیب ولی در عین حال جذاب خواهیم داشت. مثلا یکی از تصمیمات بنیادی ما این هست که به شکل کلی primitive data type برای این زبان در سطح سینتکس نداشته باشیم! در جلسات درباره این تصمیمات بیشتر صحبت خواهیم کرد.
Discord
Join the Geniuses.Group Discord Server!
گروهی هدفمند و انتفاعی برای توسعه انواع پروژه ها در بخش های مختلف اجتماع با رویکرد بالاترین سطح پایداری | 355 members
Forwarded from Normal Developer
ممکنه شما هم برای هاستینگ سایت یا اپلیکیشنتون از لیارا (liara.ir) استفاده کنید.
حدودا از سال ۱۴۰۰ سرویسای دم دستی که لازم داشتم رو میبردم روی لیارا یا حداقل نسخه اولیه رو اونجا ران میکردم.
سایت شخصی خودم رو هم اونجا ران کردم چون میخواستم از قابلیت های آماده ش استفاده کنم و زیاد روی تنظیم زیرساخت زمان نذارم و بیشتر روی توسعه تمرکز کنم.
ولی تو چند ماه اخیر واقعا با لیارا مشکل پیدا کردم و برام نه صرفه داره که ازش استفاده کنم و نه کیفیتشون مثل قبل خوبه.
تو ماه های جدید برای هر قابلیتی دارن یه قیمتی میدن.
فرض کنید یه سایت ساده با مثلا پایتون با کمترین منابع ران کنید روی لیارا. ببینیم چقد در میاد:
هزینه PaaS ماهانه: ۹۹ هزار تومن (512 مگابایت رم - ۰.۵ هسته پردازنده- ۵ گیگ حافظه)
هزینه بسته امکاناتی: ۷۴ هزار تومن (برنزی)
هزینه دیتابیس پستگرس: ۹۹ هزار تومن (۵۱۲ مگابایت رم - ۰.۵ هسته پردازنده - ۵ گیگ فضای ذخیره سازی)
جمعا: ۲۷۲ هزار تومن ماهانه معادل حدود 4.5 دلار در ماه
حالا اگه شما بخواید یه سرور مجازی بگیرید از یه دیتاسنتر خوب مث هتزنر یا OVH هم حدود ۵ دلار در ماه هزینه داره.
ولی منابعی که مثلا هتزنر دراختیارتون قرار میده میشه ۴ گیگابایت رم، ۲ هسته پردازنده، ۴۰ گیگ فضا!
به اضافه اینکه کیفیت زیرساختی خیلی بهتری داره.
در ادامه بنچمارک GTMetrics از یه سرویس نسبتا پرتصویر و عکس که روی هتزنر دارم و سایت شخصی خودم که هیچی نداره رو میذارم.
@Normal_Developer
حدودا از سال ۱۴۰۰ سرویسای دم دستی که لازم داشتم رو میبردم روی لیارا یا حداقل نسخه اولیه رو اونجا ران میکردم.
سایت شخصی خودم رو هم اونجا ران کردم چون میخواستم از قابلیت های آماده ش استفاده کنم و زیاد روی تنظیم زیرساخت زمان نذارم و بیشتر روی توسعه تمرکز کنم.
ولی تو چند ماه اخیر واقعا با لیارا مشکل پیدا کردم و برام نه صرفه داره که ازش استفاده کنم و نه کیفیتشون مثل قبل خوبه.
تو ماه های جدید برای هر قابلیتی دارن یه قیمتی میدن.
فرض کنید یه سایت ساده با مثلا پایتون با کمترین منابع ران کنید روی لیارا. ببینیم چقد در میاد:
هزینه PaaS ماهانه: ۹۹ هزار تومن (512 مگابایت رم - ۰.۵ هسته پردازنده- ۵ گیگ حافظه)
هزینه بسته امکاناتی: ۷۴ هزار تومن (برنزی)
هزینه دیتابیس پستگرس: ۹۹ هزار تومن (۵۱۲ مگابایت رم - ۰.۵ هسته پردازنده - ۵ گیگ فضای ذخیره سازی)
جمعا: ۲۷۲ هزار تومن ماهانه معادل حدود 4.5 دلار در ماه
حالا اگه شما بخواید یه سرور مجازی بگیرید از یه دیتاسنتر خوب مث هتزنر یا OVH هم حدود ۵ دلار در ماه هزینه داره.
ولی منابعی که مثلا هتزنر دراختیارتون قرار میده میشه ۴ گیگابایت رم، ۲ هسته پردازنده، ۴۰ گیگ فضا!
به اضافه اینکه کیفیت زیرساختی خیلی بهتری داره.
در ادامه بنچمارک GTMetrics از یه سرویس نسبتا پرتصویر و عکس که روی هتزنر دارم و سایت شخصی خودم که هیچی نداره رو میذارم.
@Normal_Developer
Forwarded from Normal Developer
میبینید که یه سایت ساده لیارا بنچ C گرفته
در مقابل یه سایت که تصویر هم زیاد داره روی هتزنر بنچ A گرفته!
@Normal_Developer
در مقابل یه سایت که تصویر هم زیاد داره روی هتزنر بنچ A گرفته!
@Normal_Developer
Forwarded from Laravel News
Cancel a Specific Batch of Queued Jobs With This Laravel Package https://laravel-news.com/cancel-a-specific-batch-in-laravel
Laravel News
Cancel a Specific Batch of Queued Jobs With This Laravel Package - Laravel News
The Laravel Queue Cancel Batch small package provides a command to cancel a specific batch of queued jobs.
Forwarded from IRCF | اینترنت آزاد برای همه
بگذر، یک فیلترشکن متنباز با رابط کاربری ساده برای دورزدن فیلترینگ اینترنت هست، که با استفاده از کانفیگهای رایگان انتشار یافته در اینترنت کار میکنه. نسخه ۵ از ایناپ برای سیستمعامل اندروید منتشر شده، اما توسعهدهندگانش اینوعده رو دادن که در نسخههای بعد علاوه بر پشتیبانی از iOS، روی اضافهکردن پروتکلهای جدید تمرکز کنن.
👉 github.com/Begzar/BegzarApp/releases/latest
🔍 ircf.space/software
@ircfspace
👉 github.com/Begzar/BegzarApp/releases/latest
🔍 ircf.space/software
@ircfspace
Forwarded from سعید
چه طور از ایجاد کوئری اضافی در پکیج
spatie/laravel-medialibrary
جلوگیری کنیم ؟
فقط کافی هست که کد زیر را
به
تغییر دهید
در این صورت در صورتی که تصاویر را به صورت زیر فراخوانی کنید ، کوئری اضافی نخواهید داشت:
#laravel
#tip
#performance
spatie/laravel-medialibrary
جلوگیری کنیم ؟
فقط کافی هست که کد زیر را
$products = Product::get();
به
$products = Product::with('media')->get();تغییر دهید
در این صورت در صورتی که تصاویر را به صورت زیر فراخوانی کنید ، کوئری اضافی نخواهید داشت:
<img src="{{ $product->getFirstMediaUrl() }}" />#laravel
#tip
#performance