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 Gopher Academy
🔵 عنوان مقاله
Using Structs for Generic Argument Lists

🟢 خلاصه مقاله:
در این مقاله، یک الگوریتم جدید با یک الگوریتم قدیمی مقایسه می‌شود تا اطمینان حاصل شود که هر دو پاسخ یکسانی به دست می‌دهند. این مقایسه به منظور آزمایش بازنویسی‌ها و بهینه‌سازی‌های کد انجام می‌گیرد. استفاده از ساختارهای داده‌ای (structs) به همراه generics (کلیات) در زبان‌های برنامه‌نویسی کمک می‌کند تا کد نوشته شده ساده‌تر و مدیریت‌پذیرتر باشد. برای این منظور، نویسنده توضیح می‌دهد که چگونه می‌توان با استفاده از "پرچم‌های ویژه" مخصوص آزمایش، اطمینان حاصل کرد که تغییرات جدید در کد، کارآیی الگوریتم‌ها را به خطر نمی‌اندازد. فرآیند مقایسه الگوریتم‌ها به صورت موازی و گاهی اوقات به صورت تدریجی آزمایش و پیاده‌سازی می‌شود تا به تدریج جایگزین الگوریتم‌های قدیمی‌تر شود، بدون اینکه به سیستم جاری آسیب برساند.

🟣لینک مقاله:
https://www.emoses.org/posts/reusable-patterns-in-go/


👑 @gopher_academy
Forwarded from Yasha
برای برداشت سریع همستر برید این کد رو کپی کنید بعد توکن خودتونم توی خط اول وارد کنید. برید بخش inspect و جای تب network تب console رو باز کنید. کد رو کپی‌پیست کنید. اگرم بلد نیستید توکن رو دربیارید یا inspect رو باز کنید این ویدیو ۱۰ دقیقه‌ای رو ببینید.

🔗 لینک اسکریپت
@Yasha
Forwarded from LinNews (Reza)
نسخه دوم آلفای COSMIC منتشر شد.

#لینوکس #دسکتاپ
#COSMIC #Desktop

نسخه دوم آلفای دسکتاپ COSMIC برای توزیع لینوکسی Pop!_OS 24.04 منتشر شده است
این نسخه شامل چندین ویژگی و بهبود جدید است، از جمله:

- صفحه جدید بلوتوث در تنظیمات برای اتصال و مدیریت دستگاه‌های بلوتوث

- بهبود برنامه مدیریت فایل COSMIC Files با ویژگی گالری جدید، نوار جستجو، ایجاد پوشه جدید، نمایش گرید/لیست و گزینه‌های مرتب‌سازی

- گزینه‌های جدید در تنظیمات برای تنظیم ظاهری رابط کاربری

- پشتیبانی از پیش‌نمایش فایل‌ها در منوی راست‌کلیک قبل از باز کردن

- امکان فشرده‌سازی یا استخراج فایل‌ها از منوی راست‌کلیک

- پشتیبانی از مرور و اتصال به درایوهای شبکه

- سیستم جامع تم‌بندی با امکان اشتراک‌گذاری تم‌ها

- امکان انتخاب فضای کاری عمودی یا افقی

- سیستم یکپارچه و قابل‌سفارشی‌سازی برای چیدمان پنجره‌ها

- پنل‌های (dock و نوار بالا) بسیار قابل‌سفارشی‌سازی

این نسخه همچنین شامل پشتیبانی از دستگاه‌های بلوتوث در تنظیمات صدا و باتری، رزولوشن بالاتر برنامه‌های X11 و بازی‌ها، و ویژگی‌های جدید مدیریت پنجره است

نسخه آلفای 2 COSMIC برای آزمایش در توزیع‌های مختلف لینوکس مانند
Arch Linux , Fedora Linux , openSUSE , Pop!_OS 24.04
در دسترس است.

منبع خبر

@LinAcademy | @LinNews
Forwarded from Meitix
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Linuxor ?
آرایشگر خواب آلود

فرض کنید یه آرایشگر خواب آلود هستش که وقتی کارش تموم میشه از مانیتور دوربین، سالن انتظارو نگاه میکنه و اگه کسی توی سالن انتظار نبود می‌گیره میخوابه.

یه مشتری توی سالن انتظار بوده میاد وارد سالن اصلی میشه که ببینه اگه ارایشگر بیکاره موهاشو کوتاه کنه و میبینه که آرایشگر مشغوله و بر میگرده به سالن انتظار‌؛ دقیقا توی حینی که داره بر میگرده به سالن انتظار آرایشگر کارش تموم میشه و از مانیتور میبینه کسی توی سالن انتظار نیست پس میگیره میخوابه.


مشتری هم که همون لحظه رفته تو سالن انتظار الکی توی سالن انتظار منتظره در حالی که آرایشگر گرفته خوابیده. به این مسئله توی کامپیوتر میگن Mutual exclusion که الگوریتم های باحالی برای حلش ساخته شده.


🐧 @Linuxor
مسافر زمان عطسه می‌کنه.


خط زمانی:


#meme
@SohrabContents
یه شبکه اجتماعی اومده به نام SocialAI که شبیه توییتره ولی شما تنها انسان واقعی تو اون برنامه هستین!!

در واقع شما حرف خودتو اونجا میزنی٬ کلی اکانتم فالوت دارن و کلی اکانتم میان در مورد پستت کامنتای مختلف میذارن ولی همه اونها هوش مصنوعین!!

میتونی هرچی دلت میخواد بگی و حتی مورد قضاوت قرار میگیری ولی کسی نمیفهمه و فقط هوش مصنوعی تورو خونده و بهت جواب داده!
1
Forwarded from Future Pulse Persian
کارکردن با افرادی که ...


🕸 @labdon_academy
Forwarded from Pishro App
این رو هم یکی از دوستان زحمت کشیده و benchmark گرفته

    $m1 = memory_benchmark(function () {
        $cities = \App\Models\City::all();
    });
    $m2 = memory_benchmark(function () {
        $cities = \App\Models\City::get();
    });
    $m3 = memory_benchmark(function () {
        $cities = \App\Models\City::toBase()->get();
    });

    dd($m1, $m2, $m3);



و خوب توی تصویر میبینید که تو حالت سوم از لحاظ زمانی خیلی بهتر بوده

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


متشکر @PhpWebDeveloper جان


👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Meitix
# Go part2.pdf
282.7 KB
یادداشت های امروز go.
Forwarded from Programming Resources via @like
Do you know we will have overflow for datetime on January 19, 2038 because of UNIX timestamp?
آیا میدانید در سال ۲۰۳۸ یه باگ بزرگ خواهیم داشت و اونم سرریز کردن unix timestamp عه چون دیگه جا نداره که زمان‌های بعدی رو نگه داره ؟

#bug #date #time #unix #2038 #overflow #timestamp
@pythony

https://2038.wtf
Forwarded from Woland's Linux Journal (Woland)
امروز ۲۷ سپتامبر، تولد ۴۱ سالگی گنو است. 🎉🥳🎂
AzadCast - E01
Unrivaledir
📣 قسمت ۱ پادکست آزاد
🗣️ در این قسمت در خصوص لینوکس ۶/۱۱، VirtualBox ۷٫۱، نکست کلود هاب ۹، PIN، اوبونتو ۲۴/۱۰، گنوم ۴۷، تلگرام، Aria2App، پیرتیوب ۶٫۳ و کازمیک صحبت کردیم.
💬 مثل همیشه پیشنهادات و انتقادات با آغوش باز استقبال خواهد شد.

🔗 ماتریکس، کلاینت‌ها، نمونه ویز
🔗 دلتاچت
🔗 SimpleX
🔗 ارائه میزکار کازمیک
© پروانه: ‌ CC-BY-SA-4
🔹🔹🔹🔹🔹
#podcast #AzadCast
#linux #ubuntu #cosmic #telegram #peertube #gnome #nextcloud #virtualbox
🔹🔹🔹🔹🔹
✈️ تلگرام
™️ توییتر
📺 یوتیوب
🐘 ماستودون
🖥 وبسایت
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
🔶 با خرابکاری ایردراپ همستر, حال ایردارپ های تلگرامی خوب نیست و اعتماد کاربران رو از دست دادند.

هم اکنون اکوسیستم TON تلگرام در وضعیت خوبی قرار ندارد!

@TheRaymondDev
Forwarded from Gopher Academy
در بحث بهینه‌سازی بین دو تعریف زیر در Go:

var x *[]user  
// اشاره‌گر به یک slice از نوع user

var y []*user 
// یک slice از اشاره‌گرها به user


انتخاب بین این دو به نیاز و سناریوی خاصی که در برنامه‌تان دارید بستگی دارد. اما از دیدگاه بهینه‌سازی و کارایی، در اکثر موارد استفاده از y []*user بهینه‌تر است. دلایل این انتخاب را در ادامه توضیح می‌دهم.

### 1. تفاوت در حافظه و سربار (Memory Overhead):

ا- x *[]user (اشاره‌گر به slice از user):
ا  - x فقط یک اشاره‌گر به یک slice است، بنابراین شما باید یک ساختار slice کامل در جای دیگری از حافظه داشته باشید. این یعنی دو مرتبه نگهداری اطلاعات در حافظه:

    1. اشاره‌گر x که به یک slice اشاره می‌کند.

    2. خود ساختار slice که شامل اطلاعاتی مثل طول (length)، ظرفیت (capacity) و اشاره‌گر به آرایه پشتیبان (underlying array) است.

  - از طرفی، در صورتی که داده‌ها را تغییر دهید (مثلاً به slice مقدار جدیدی اضافه کنید)، باید در حافظه دوباره مقداردهی شود و سربار اضافی در مدیریت حافظه ایجاد می‌شود.

ا- y []*user (slice از اشاره‌گرها به user):
  ا- y یک slice از اشاره‌گرهاست و هر خانه آن فقط یک اشاره‌گر به یک user است. در اینجا شما فقط اشاره‌گرها را ذخیره می‌کنید و از فضای کمتری برای نگهداری هر عنصر استفاده می‌شود.

  - در واقع، داده‌ها از طریق اشاره‌گرها به مکان دیگری از حافظه اشاره دارند، که این بهینه‌تر است اگر شما قرار نیست ساختارهای user را مکرراً کپی کنید.

  - هر بار که یک عنصر به این slice اضافه کنید، تنها یک اشاره‌گر اضافه می‌شود و سربار اضافی برای کپی‌کردن ساختارهای بزرگ user وجود ندارد.

### 2. سهولت استفاده و تغییرپذیری:

- x *[]user:
  - برای هر بار دسترسی یا تغییر مقدار داخل x، باید ابتدا اشاره‌گر x را dereference کنید. این کار پیچیدگی کد را افزایش می‌دهد و نیازمند دستورات اضافی است.

  - مدیریت حافظه می‌تواند پیچیده‌تر باشد، به‌ویژه اگر در کدتان جابجایی یا تغییرات زیادی در slice رخ دهد.

- y []*user:
  - استفاده از y ساده‌تر است زیرا مستقیماً با یک slice سروکار دارید و نیازی به dereference نیست.

  - کار با اشاره‌گرها در Go معمولاً کارآمدتر است و نیاز به جابجایی و کپی داده‌ها کمتر است.

### 3. کارایی در عمل (Performance):

- x *[]user:
  - در این حالت هر بار که داده‌ها به slice اضافه یا تغییر داده شوند، اگر ظرفیت slice پر شده باشد، ممکن است نیاز به تخصیص حافظه جدید و کپی داده‌ها به مکان جدید باشد. این می‌تواند عملکرد را تحت تأثیر قرار دهد.

  - همچنین، داشتن اشاره‌گر اضافی ممکن است باعث افزایش سربار در حافظه و زمان دسترسی شود.

- y []*user:
  - بهینه‌تر است چون شما مستقیماً اشاره‌گرها به ساختارهای user را در slice ذخیره می‌کنید. هیچ نیازی به کپی‌کردن کل ساختار user نیست.
  - این روش کارایی بالاتری دارد، به‌ویژه زمانی که ساختار user بزرگ باشد و کپی‌کردن آن هزینه‌بر باشد.

### نتیجه‌گیری:
در بیشتر سناریوها، y []*user بهینه‌تر است:
- کمتر بودن سربار حافظه: به جای کپی‌کردن داده‌های بزرگ، تنها اشاره‌گرها را در slice نگه می‌دارید.
- عملکرد بهتر در تغییرات slice: تغییر دادن و مدیریت اشاره‌گرها سریع‌تر است و سربار کمتری در مقایسه با کپی کردن ساختارهای بزرگ دارد.

- سادگی و سهولت استفاده:
y []*user نیازی به dereference اضافی ندارد و مدیریت آن راحت‌تر است.

با این حال، اگر نیاز خاصی دارید که به یک اشاره‌گر به یک slice نیاز باشد، مانند مواقعی که می‌خواهید یک ساختار slice را بین چندین تابع به اشتراک بگذارید و آن را تغییر دهید، استفاده از x *[]user ممکن است مفید باشد.


👑 @gopher_academy
Forwarded from Linuxor ?
بی خودی خودتونو اذیت نکنید
شما هیچ وقت نمیتونین یه سیستم عاملی پیدا کنید که هم زیادی امن باشه هم زیادی آزادی عمل بهتون بده.

اگه گوشی اندروید دستتونه و اجازه نمیده که یه rule شخصی بنویسید و vpn تون رو برای بقیه از طریق hotspot به اشتراک بزارید، این اجازه ندادنه توی یه لولی باعث شده گوشی شما امن تر باشه.


🐧 @Linuxor