TGViewer
Channel Public Channel
EverCode

EverCode

@ever_code

اینجا راجب کامپیوتر، نرم افزار، زبان‌ها و مطالب مرتبط با هم گپ میزنیم

سایت و بلاگ:
mazdakparnian.com

dev.to/purejoymind

هم توی سایت شخصیم و هم توی دِو بلاگ هام رو میزارم.
Subscribers
252
Photos
64
Videos
3
Links
97

Showing posts older than #157 · Back to latest

Older Posts 18 shown
Post #156 326

Forwarded from Database

🔵 عنوان مقاله
500 Milliseconds on Planning? How Statistics Slowed Down a Query 20 Times Over

🟢 خلاصه مقاله:
در یک سیستم پایگاه داده، ممکن است یک کوئری بسیار سریع اجرا شود، اما زمان لازم برای برنامه‌ریزی و آماده‌سازی اجرای آن بسیار طولانی‌تر باشد. در این مقاله، به یکی از این موارد جالب اشاره می‌شود که نشان می‌دهد چگونه یک عملیات برنامه‌ریزی با استفاده نادرست از بهینه‌ساز پایگاه داده PostgreSQL می‌تواند سرعت اجرای یک کوئری را تا ۲۰ برابر کاهش دهد. تصور کنید که یک کوئری تنها در عرض چند میلی‌ثانیه اجرا می‌شود، اما فرآیند برنامه‌ریزی آن بیش از نیم ثانیه زمان می‌برد. این اختلاف زمانی بسیار قابل توجه است و می‌تواند تاثیر زیادی بر عملکرد کل سیستم بگذارد.

در این وضعیت، مشکل اصلی به خطای عملیات بهینه‌ساز PostgreSQL برمی‌گردد که به دلیل انتخاب نادرست استراتژی‌های اجرایی، فرآیند برنامه‌ریزی به صورت ناپایدار و غیرمؤثر انجام می‌شود. این مسأله در سیستم‌های بزرگ و بارهای سنگین اهمیت بیشتری پیدا می‌کند، زیرا هر چه تعداد کوئری‌ها بیشتر باشد، نقش زمان صرف شده در برنامه‌ریزی در کاهش کارایی سیستم بیشتر جلوه می‌کند. خوشبختانه، راه‌حل‌هایی برای اصلاح این وضعیت وجود دارد که می‌توانند به بهبود عملکرد و کاهش زمان طراحی برنامه کمک کنند.

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

#پایگاه_داده #بهینه‌سازی #PostgreSQL #کارایی

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

➖➖➖➖➖➖➖➖
👑 @Database_Academy
Substack 500 Milliseconds on Planning: How PostgreSQL Statistics Slowed Down a Query 20 Times Over When legacy decisions meet current database realities
Post #154 251

Forwarded from TechTube 𝕏 تک توب

ویرایشگر متن محبوب رایگان و متن باز ++Notepad اعلام کرده که سرورهای اون هک شدن و حداقل برای 6 ماه کاربران ممکن بود نسخه الوده شده این نرم افزار رو دانلود کرده باشن.

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

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

در ماه سپتامبر سال گذشته بعد از اپدیت کرنل و فریمور سرور، این هکرها برای مدتی کنترل سرور رو از دست دادن ولی به لطف دسترسی بالایی که به شرکت هاستینگ داشتن باز هم موفق به تغییر ترافیک سرورهای دانلود این نرم افزار شدن و حداقل تا ماه دسامبر امکان چنین کاری رو داشتن.

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

🔎 bleepingcomputer

📍 @TechTube
  • ❤ 2
Post #153 183

Forwarded from مسعود بیگی (مسعود بیگی)

benchmark-analysis.html24 KB
برای یک کاری نیاز داشتیم به استفاده از مانگو در دات نت، زحمت آنالیز پرفرمنسی بین ef و mongo driver به عهده آرین عزیزم بود، ببینید و دقت کنید :)
پیام آرین با این گزارش :
"من برای بررسی پرفومنس های mongo، توی هردو حالت درایور رسمی و همینطور EF یه دیتابیس سمپل اوپن سورس پیدا کردم
یکی از کالکشن هاش 36K دیتا داشت و من اکثر عملیات های مورد نیاز رو بنچمارک کردم
نتیجه‌ش شد این گزارش
"
Post #152 287
تاریخ فریاد ساکت حقیقت است. هیچ دیواری در برابر زمان استوار نمانده.
  • ❤ 3
Post #150 274

Forwarded from iCodeNext

✨ Github Actions Build and Test

🌚 قسمت اول که بتونیم یه گیتهاب اکشن بسیارساده برای تست و بیلد کردن پروژه هامون استفاده کنیم. مهم مفاهیم اصلیه که روش بیشتر وقت گذاشتیم و سعی کردم توضیحی کامل و جامع داشته باشه.

مدت ویدیو: 30 دقیقه
لینک ویدیو :

https://youtu.be/CF-JenvUKwQ
  • ❤ 2
Post #148 261
آخر هفته کرمانشاه مهمان هستم گفتم شما هم زیبایی ببینید. البته زیبایی زیاد داره این بخش کوچکی ازش هست😍
@ever_code
  • ❤ 9
Post #146 1.43K
تا حالا شده بخواین یه API برای Get کردن یه مدل بزنین؟ مثلا برای گرفتن محصولات یه فروشگاه. توی اینجور سرویس‌ها معمولا با یه سری نیازمندی‌ها روبرو میشیم. برای مثال:
- نیاز داریم تا بتونیم مشخص کنیم چه فیلدهایی از مدل رو برگردونیم، یعنی مثلا توی درخواستمون بگیم فقط نام و کد ملی کاربر برگرده
- نیاز به pagination داشته باشیم
- نیاز به sort داریم
بصورت کلی تر بخوایم بگیم، وقتی نیاز داریم سرویسمون عملا برابر دسترسی Read برای یه Table توی دیتابیس باشه.
یه راه اینه که خودمون همه چی رو پیاده سازی کنیم، اما راه دیگه‌ای هم هست. میتونیم از پروتوکل OData (OpenData) استفاده کنیم.
یک پروتوکل برمبنای REST که قواعد مشخصی رو برای کوئری کردن دیتا تعریف میکنه. برای مثال برای گرفتن یوزر، طوری که نیاز داریم فقط یه سری ستون خاص رو بگیریم، یه Sort بزنیم روش، و فیلتر کنیم کوئری‌مون یه همچین چیزی میشه:
GET /odata/Users?$select=id,displayName,email&$filter=status eq 'active' and age ge 18&$orderby=displayName asc&$top=50&$skip=0
البته به کوئری ختم نمیشه و کلی کارهای دیگه میشه توی Body درخواست انجام داد.
میتونید اینجا کمی بیشتر راجبش بخونید:
https://www.odata.org/getting-started/basic-tutorial/

حالا چجوری توی دات نت یه سرور OData راه بندازیم؟
* پروژه رو با استفاده از EFCore به دیتابیس وصل میکنیم.
* پکیج Microsoft.AspNetCore.OData رو نصب میکنیم
* توی Program.cs ستاپ میکنیم:
c#
var modelBuilder = new ODataConventionModelBuilder();
modelBuilder.EntitySet<User>("Users");

builder.Services.AddControllers()
.AddOData(options => options.Select().Filter().OrderBy().Expand().Count().SetMaxTop(100)
.AddRouteComponents("odata", modelBuilder.GetEdmModel()));


* کنترلرمون رو بجای ControllerBase با ODataController میسازیم و برای هر مدلی که میخوایم OData براش داشته باشیم دوتا متد Get یکی برای همه رکوردها و یکی برای گرفتن با Id میسازیم:

c#
public class UsersController(ApplicationDbContext context) : ODataController
{

[EnableQuery]
public IActionResult Get()
{
return Ok(context.Users.OrderByDescending(o => o.CreatedOn));
}

[EnableQuery]
public IActionResult Get([FromRoute] Guid key)
{
var saga = context.Users.FirstOrDefault(s => s.Id == key);
return saga == null ? NotFound() : Ok(saga);
}

}


اگر دقت کنید، وقتی که با DbContext داریم کاربرها رو برمیگردونیم، متد ToList رو صدا نزدیم. نمیخوایم که کوئری رو انجام بدیم، اون قسمت رو پکیج OData انجام میده برامون.
بعد این مراحل سرور OData آماده‌ست و میتونین هرنوع کوئری که نیاز دارین رو روی اون دیتا انجام بدین، pagination داشته باشین، sort کنین و خیلی بیشتر.

@ever_code
www.odata.org Basic Tutorial · OData - the Best Way to REST OData, short for Open Data Protocol, is an open protocol to allow the creation and consumption of queryable and interoperable RESTful APIs in a simple and standard way.
  • ❤ 3
Post #145 178
Happy Developer یک آپدیتی از این پروژه بدم ... تقریبا الان یک ماهی هست که روی پروداکشن علی بابا داریم ازش استفاده میکنیم و کلی باگ فیکس روش رفتیم. میخوام از دو نفر اینجا تشکر کنم که توی ریپو به صورت اوپن سورس مشارکت کردن و خیلی نظرات خوبی دادن و کلی روی کد وقت گذاشتن. مزدک…
حال خوب شبانه😍
  • ❤ 2
Post #144 188

Forwarded from Happy Developer (Ashkan Rahmani)

یک آپدیتی از این پروژه بدم ...
تقریبا الان یک ماهی هست که روی پروداکشن علی بابا داریم ازش استفاده میکنیم و کلی باگ فیکس روش رفتیم.

میخوام از دو نفر اینجا تشکر کنم که توی ریپو به صورت اوپن سورس مشارکت کردن و خیلی نظرات خوبی دادن و کلی روی کد وقت گذاشتن.

مزدک و یاسمین عزیز که دمشون گرم

خلاصه خوشحال میشم شما هم اگر فیچر خاصی یا بهبودی توی ذهنتون هست واسم PR بفرستین یا یک issue باز کنین.

اینم لینک ریپو اگر ندیدین و استار ندادین🙌

https://github.com/ashkanRmk/FastCrud
Post #143 187
EverCode توی Front-end ما اکثرا تصوری که داریم یا وب هست و یا اپلیکیشن برای گوشی یا کامپیوتر، همه‌ی اینها زیرمجموعه‌ی Graphical User Interface (GUI) یا رابط کاربری گرافیکی میشن. پس میشه پرسید که خب رابط کاربری غیر گرافیکی چی؟ اینجاست که با Terminal/Text User Interface…
در رابطه با TUI
https://youtu.be/d2ozTo24UZc
@ever_code
Post #142 228
در این شرایط بازار ایران، شاید تمرکز روی توسعه فردی برای بعضیا سخت باشه و حق دارن. اما نباید آدم خودش رو ببازه و یا بهانه کنه. دلار فردا تا ۴۰۰ بره، پس فردا بیاد روی ۵۰، با اینکه وضعیت جیب ما شاید خیلی تغییر کنه، ولی حقیقت امر اینه که نمیشه با تصمیم‌های احساسی کاری براش کرد. تهش وقتمون هدر رفته. توی این شرایط با افزایش دانش اقتصادی‌مون، مدیریت سرمایه‌مون (حتی اگر سرمایه‌ای نداشته باشیم و یا احساس کنیم که انقدر کمه که چیزی نیست مدیریت کنیم) و فکر کردن به آینده، شاید بتونیم برای خودمون احساس بهتری، چه بسا موقت، ایجاد کنیم. من یکی به شخصه همیشه این حس رو داشتم که توی مدیریت سرمایه هیچی بلد نیستم و نمیدونم از کجا شروع کنم. اما برای شروع، کتابی که به من کمی کمک کرد و یه کوچولو دیدم رو بازتر کرد "هل اول" از صادق الحسینی بود. باعث شد بجای اینکه جلوی پام رو ببینم و کوچک بودن مبلغ سرمایه گزاری الانم، دراز مدت رو ببینم و تجمیعش + سود رو درک کنم. اینطوری حداقل کمی نوسانات هیجانی بازار آشفته ایران کمتر با روانم بازی میکنه، هرچند که اقتصاد مریض و ناسالمی داریم و قرار نیست خودمون رو گول بزنیم.
موفق و پیروز باشید❤️

@ever_code
  • ❤ 7
Post #140 189

Forwarded from جادی | Jadi

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

https://youtu.be/jjaBdcgsz1A
YouTube تگ‌ها در گیت برای مشخص کردن کامیت‌های اساسی همه ما در مورد ورژن برنامه‌ها می‌دونیم ولی این ورژن بندی چطوری توی گیت پیاده می‌شه؟ آیا می‌شه کاری کرد که با پوش کردن به سیستم بفهمونیم که این نسخه مهمه و باید ازش یه بسته قابل دانلود بسازه یا جایی لینکی بده که اگر کسی خواست نرم افزار ما رو دانلود کنه بتونه…
  • 🔥 1
Post #139 245
توی Front-end ما اکثرا تصوری که داریم یا وب هست و یا اپلیکیشن برای گوشی یا کامپیوتر، همه‌ی اینها زیرمجموعه‌ی Graphical User Interface (GUI) یا رابط کاربری گرافیکی میشن. پس میشه پرسید که خب رابط کاربری غیر گرافیکی چی؟ اینجاست که با Terminal/Text User Interface (TUI) آشنا میشیم.
به شخصه خیلی ازش لذت میبرم و حتی بنظرم توسعه‌ش جذاب‌تره. شاید ساده بنظر بیاد اما خیلی کارهای حرفه‌ای و قشنگی میشه باهاش انجام داد.
بنظرم اگه روزی اپلیکیشنی برای پلتفرم‌های مختلف توسعه بدم، حتما نسخه‌ی ترمینالش هم سعی میکنم توسعه بدم.

توی دات نت برای توسعه‌ی اپلیکیشن ترمینالی یا کنسول، یکی دوتا پکیج معروف هست. یکیش Spectre.Console هست:

https://spectreconsole.net/

یکی دیگه‌ش هم Terminal.Gui هست که نسبت به قبلی کمی متفاوته و کارهای تخصصی تری شاید بشه باهاش انجام داد:

https://github.com/gui-cs/Terminal.Gui

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

در گشت و گذار بودم که به این پروژه‌ی جالب برخوردم:
https://github.com/andrewmd5/dawn
یک Terminal Live Markdown Editor هست. ظاهر باحالی داره اما احتمالا بدرد کسی بخوره که اکثر وقتش رو توی ترمینال میگذرونه. خلاصه از TUI غافل نشین!

@ever_code
spectreconsole.net Spectre.Console Documentation Documentation for Spectre.Console and Spectre.CLI - rich console UI library and command-line application framework for .NET
  • ❤ 3
Post #137 188
آیا از پیاده سازی متدهای خودتون خسته شدین؟ خب مهم نیست بسپارینش به AI به ما چه اصلا😂
به
No-implementation oriented programming
سلام کنید😭

https://github.com/lofcz/ai

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

@ever_code
GitHub GitHub - lofcz/ai: Vibes only Vibes only. Contribute to lofcz/ai development by creating an account on GitHub.
  • ❤ 2
Post #136 171
از ۴ شنبه بگم گه خلاصه کل آخر هفته برنامه مفید کنسل بود😂😭
چشمام از کاسه درومد بدون عینک
  • ❤ 2
  • 😱 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →