Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
تجربه ی 1- ساله یک برنامه نویس اندروید
https://virgool.io/@sanaebadi97/%D8%AA%D8%AC%D8%B1%D8%A8%D9%87-%DB%8C-1-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-wcdfff8xgvol
https://virgool.io/@sanaebadi97/%D8%AA%D8%AC%D8%B1%D8%A8%D9%87-%DB%8C-1-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-wcdfff8xgvol
ویرگول
تجربه ی 1- ساله یک برنامه نویس اندروید
تجربیات منه برنامه نویس
Forwarded from Gopher Academy
🔵 عنوان مقاله
Using Structs for Generic Argument Lists
🟢 خلاصه مقاله:
در این مقاله، یک الگوریتم جدید با یک الگوریتم قدیمی مقایسه میشود تا اطمینان حاصل شود که هر دو پاسخ یکسانی به دست میدهند. این مقایسه به منظور آزمایش بازنویسیها و بهینهسازیهای کد انجام میگیرد. استفاده از ساختارهای دادهای (structs) به همراه generics (کلیات) در زبانهای برنامهنویسی کمک میکند تا کد نوشته شده سادهتر و مدیریتپذیرتر باشد. برای این منظور، نویسنده توضیح میدهد که چگونه میتوان با استفاده از "پرچمهای ویژه" مخصوص آزمایش، اطمینان حاصل کرد که تغییرات جدید در کد، کارآیی الگوریتمها را به خطر نمیاندازد. فرآیند مقایسه الگوریتمها به صورت موازی و گاهی اوقات به صورت تدریجی آزمایش و پیادهسازی میشود تا به تدریج جایگزین الگوریتمهای قدیمیتر شود، بدون اینکه به سیستم جاری آسیب برساند.
🟣لینک مقاله:
https://www.emoses.org/posts/reusable-patterns-in-go/
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Using Structs for Generic Argument Lists
🟢 خلاصه مقاله:
در این مقاله، یک الگوریتم جدید با یک الگوریتم قدیمی مقایسه میشود تا اطمینان حاصل شود که هر دو پاسخ یکسانی به دست میدهند. این مقایسه به منظور آزمایش بازنویسیها و بهینهسازیهای کد انجام میگیرد. استفاده از ساختارهای دادهای (structs) به همراه generics (کلیات) در زبانهای برنامهنویسی کمک میکند تا کد نوشته شده سادهتر و مدیریتپذیرتر باشد. برای این منظور، نویسنده توضیح میدهد که چگونه میتوان با استفاده از "پرچمهای ویژه" مخصوص آزمایش، اطمینان حاصل کرد که تغییرات جدید در کد، کارآیی الگوریتمها را به خطر نمیاندازد. فرآیند مقایسه الگوریتمها به صورت موازی و گاهی اوقات به صورت تدریجی آزمایش و پیادهسازی میشود تا به تدریج جایگزین الگوریتمهای قدیمیتر شود، بدون اینکه به سیستم جاری آسیب برساند.
🟣لینک مقاله:
https://www.emoses.org/posts/reusable-patterns-in-go/
➖➖➖➖➖➖➖➖
👑 @gopher_academy
www.emoses.org
Go Generics: Use Structs for Generic Arguments Lists
I wanted to build reusable code for a pattern in Go,
I had to fight the type system a bit but I won in the end
We can pack argument lists into structs to make the pattern generic over different sets of arguments to functions
I had to fight the type system a bit but I won in the end
We can pack argument lists into structs to make the pattern generic over different sets of arguments to functions
Forwarded from Yasha
برای برداشت سریع همستر برید این کد رو کپی کنید بعد توکن خودتونم توی خط اول وارد کنید. برید بخش inspect و جای تب network تب console رو باز کنید. کد رو کپیپیست کنید. اگرم بلد نیستید توکن رو دربیارید یا inspect رو باز کنید این ویدیو ۱۰ دقیقهای رو ببینید.
🔗 لینک اسکریپت
@Yasha
🔗 لینک اسکریپت
@Yasha
Forwarded from Laravel News
PHP 8.4 Release Candidate 1 is here https://laravel-news.com/php-8-4-release-candidate-1
Laravel News
PHP 8.4 Release Candidate 1 is here - Laravel News
The PHP team announced the release of the first PHP 8.4 release candidate! Learn about the upcoming features available in the next version of PHP 8.
Forwarded from Laravel News
PHP and LLMs with Alfred Nutile https://laravel-news.com/php-and-llms-with-alfred-nutile
Laravel News
PHP and LLMs with Alfred Nutile - Laravel News
Alfred Nutile dives deep into the intersection of Laravel and the growing influence of Large Language Models (LLMs) in development.
Forwarded from LinNews (Reza)
نسخه دوم آلفای COSMIC منتشر شد.
#لینوکس #دسکتاپ
#COSMIC #Desktop
منبع خبر
@LinAcademy | @LinNews
#لینوکس #دسکتاپ
#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 Linuxor ?
آرایشگر خواب آلود
فرض کنید یه آرایشگر خواب آلود هستش که وقتی کارش تموم میشه از مانیتور دوربین، سالن انتظارو نگاه میکنه و اگه کسی توی سالن انتظار نبود میگیره میخوابه.
یه مشتری توی سالن انتظار بوده میاد وارد سالن اصلی میشه که ببینه اگه ارایشگر بیکاره موهاشو کوتاه کنه و میبینه که آرایشگر مشغوله و بر میگرده به سالن انتظار؛ دقیقا توی حینی که داره بر میگرده به سالن انتظار آرایشگر کارش تموم میشه و از مانیتور میبینه کسی توی سالن انتظار نیست پس میگیره میخوابه.
مشتری هم که همون لحظه رفته تو سالن انتظار الکی توی سالن انتظار منتظره در حالی که آرایشگر گرفته خوابیده. به این مسئله توی کامپیوتر میگن Mutual exclusion که الگوریتم های باحالی برای حلش ساخته شده.
🐧 @Linuxor
فرض کنید یه آرایشگر خواب آلود هستش که وقتی کارش تموم میشه از مانیتور دوربین، سالن انتظارو نگاه میکنه و اگه کسی توی سالن انتظار نبود میگیره میخوابه.
یه مشتری توی سالن انتظار بوده میاد وارد سالن اصلی میشه که ببینه اگه ارایشگر بیکاره موهاشو کوتاه کنه و میبینه که آرایشگر مشغوله و بر میگرده به سالن انتظار؛ دقیقا توی حینی که داره بر میگرده به سالن انتظار آرایشگر کارش تموم میشه و از مانیتور میبینه کسی توی سالن انتظار نیست پس میگیره میخوابه.
مشتری هم که همون لحظه رفته تو سالن انتظار الکی توی سالن انتظار منتظره در حالی که آرایشگر گرفته خوابیده. به این مسئله توی کامپیوتر میگن Mutual exclusion که الگوریتم های باحالی برای حلش ساخته شده.
🐧 @Linuxor
Forwarded from محتوای آزاد سهراب
Forwarded from 🪷 My Safe Aquarium ✨
یه شبکه اجتماعی اومده به نام SocialAI که شبیه توییتره ولی شما تنها انسان واقعی تو اون برنامه هستین!!
در واقع شما حرف خودتو اونجا میزنی٬ کلی اکانتم فالوت دارن و کلی اکانتم میان در مورد پستت کامنتای مختلف میذارن ولی همه اونها هوش مصنوعین!!
میتونی هرچی دلت میخواد بگی و حتی مورد قضاوت قرار میگیری ولی کسی نمیفهمه و فقط هوش مصنوعی تورو خونده و بهت جواب داده!
در واقع شما حرف خودتو اونجا میزنی٬ کلی اکانتم فالوت دارن و کلی اکانتم میان در مورد پستت کامنتای مختلف میذارن ولی همه اونها هوش مصنوعین!!
میتونی هرچی دلت میخواد بگی و حتی مورد قضاوت قرار میگیری ولی کسی نمیفهمه و فقط هوش مصنوعی تورو خونده و بهت جواب داده!
❤1
Forwarded from Future Pulse Persian
Forwarded from Pishro App
این رو هم یکی از دوستان زحمت کشیده و benchmark گرفته
و خوب توی تصویر میبینید که تو حالت سوم از لحاظ زمانی خیلی بهتر بوده
و البته اگر ستون هایی رو هم که میخوایم تو خروجی داشته باشیم به متد get بدیم باز هم پرفورمنس استفاده از این روش بخاطر عدم استفاده از مدل سبکتر و سریعتر میشه که خوب توی حجم بالاتر بهتر خودش رو نشون میده
متشکر @PhpWebDeveloper جان
👾 @pishroapp
$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 جان
Please open Telegram to view this post
VIEW IN TELEGRAM
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
آیا میدانید در سال ۲۰۳۸ یه باگ بزرگ خواهیم داشت و اونم سرریز کردن unix timestamp عه چون دیگه جا نداره که زمانهای بعدی رو نگه داره ؟
#bug #date #time #unix #2038 #overflow #timestamp
@pythony
https://2038.wtf
AzadCast - E01
Unrivaledir
📣 قسمت ۱ پادکست آزاد
🗣️ در این قسمت در خصوص لینوکس ۶/۱۱، VirtualBox ۷٫۱، نکست کلود هاب ۹، PIN، اوبونتو ۲۴/۱۰، گنوم ۴۷، تلگرام، Aria2App، پیرتیوب ۶٫۳ و کازمیک صحبت کردیم.
💬 مثل همیشه پیشنهادات و انتقادات با آغوش باز استقبال خواهد شد.
🔗 ماتریکس، کلاینتها، نمونه ویز
🔗 دلتاچت
🔗 SimpleX
🔗 ارائه میزکار کازمیک
© پروانه: CC-BY-SA-4
🔹🔹🔹🔹🔹
#podcast #AzadCast
#linux #ubuntu #cosmic #telegram #peertube #gnome #nextcloud #virtualbox
🔹🔹🔹🔹🔹
✈️ تلگرام
™️ توییتر
📺 یوتیوب
🐘 ماستودون
🖥 وبسایت
🗣️ در این قسمت در خصوص لینوکس ۶/۱۱، VirtualBox ۷٫۱، نکست کلود هاب ۹، PIN، اوبونتو ۲۴/۱۰، گنوم ۴۷، تلگرام، Aria2App، پیرتیوب ۶٫۳ و کازمیک صحبت کردیم.
💬 مثل همیشه پیشنهادات و انتقادات با آغوش باز استقبال خواهد شد.
🔗 ماتریکس، کلاینتها، نمونه ویز
🔗 دلتاچت
🔗 SimpleX
🔗 ارائه میزکار کازمیک
© پروانه: CC-BY-SA-4
🔹🔹🔹🔹🔹
#podcast #AzadCast
#linux #ubuntu #cosmic #telegram #peertube #gnome #nextcloud #virtualbox
🔹🔹🔹🔹🔹
✈️ تلگرام
™️ توییتر
📺 یوتیوب
🐘 ماستودون
🖥 وبسایت
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
🔶 با خرابکاری ایردراپ همستر, حال ایردارپ های تلگرامی خوب نیست و اعتماد کاربران رو از دست دادند.
هم اکنون اکوسیستم TON تلگرام در وضعیت خوبی قرار ندارد!
@TheRaymondDev
هم اکنون اکوسیستم TON تلگرام در وضعیت خوبی قرار ندارد!
@TheRaymondDev
Forwarded from Gopher Academy
در بحث بهینهسازی بین دو تعریف زیر در Go:
انتخاب بین این دو به نیاز و سناریوی خاصی که در برنامهتان دارید بستگی دارد. اما از دیدگاه بهینهسازی و کارایی، در اکثر موارد استفاده از
### 1. تفاوت در حافظه و سربار (Memory Overhead):
ا-
ا -
1. اشارهگر
2. خود ساختار
- از طرفی، در صورتی که دادهها را تغییر دهید (مثلاً به slice مقدار جدیدی اضافه کنید)، باید در حافظه دوباره مقداردهی شود و سربار اضافی در مدیریت حافظه ایجاد میشود.
ا-
ا-
- در واقع، دادهها از طریق اشارهگرها به مکان دیگری از حافظه اشاره دارند، که این بهینهتر است اگر شما قرار نیست ساختارهای
- هر بار که یک عنصر به این slice اضافه کنید، تنها یک اشارهگر اضافه میشود و سربار اضافی برای کپیکردن ساختارهای بزرگ
### 2. سهولت استفاده و تغییرپذیری:
-
- برای هر بار دسترسی یا تغییر مقدار داخل
- مدیریت حافظه میتواند پیچیدهتر باشد، بهویژه اگر در کدتان جابجایی یا تغییرات زیادی در slice رخ دهد.
-
- استفاده از
- کار با اشارهگرها در Go معمولاً کارآمدتر است و نیاز به جابجایی و کپی دادهها کمتر است.
### 3. کارایی در عمل (Performance):
-
- در این حالت هر بار که دادهها به slice اضافه یا تغییر داده شوند، اگر ظرفیت slice پر شده باشد، ممکن است نیاز به تخصیص حافظه جدید و کپی دادهها به مکان جدید باشد. این میتواند عملکرد را تحت تأثیر قرار دهد.
- همچنین، داشتن اشارهگر اضافی ممکن است باعث افزایش سربار در حافظه و زمان دسترسی شود.
-
- بهینهتر است چون شما مستقیماً اشارهگرها به ساختارهای
- این روش کارایی بالاتری دارد، بهویژه زمانی که ساختار
### نتیجهگیری:
در بیشتر سناریوها،
- کمتر بودن سربار حافظه: به جای کپیکردن دادههای بزرگ، تنها اشارهگرها را در slice نگه میدارید.
- عملکرد بهتر در تغییرات slice: تغییر دادن و مدیریت اشارهگرها سریعتر است و سربار کمتری در مقایسه با کپی کردن ساختارهای بزرگ دارد.
- سادگی و سهولت استفاده:
با این حال، اگر نیاز خاصی دارید که به یک اشارهگر به یک slice نیاز باشد، مانند مواقعی که میخواهید یک ساختار slice را بین چندین تابع به اشتراک بگذارید و آن را تغییر دهید، استفاده از
➖➖➖➖➖➖➖➖
👑 @gopher_academy
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
شما هیچ وقت نمیتونین یه سیستم عاملی پیدا کنید که هم زیادی امن باشه هم زیادی آزادی عمل بهتون بده.
اگه گوشی اندروید دستتونه و اجازه نمیده که یه rule شخصی بنویسید و vpn تون رو برای بقیه از طریق hotspot به اشتراک بزارید، این اجازه ندادنه توی یه لولی باعث شده گوشی شما امن تر باشه.
🐧 @Linuxor