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
Audio
#مشورت_6
«رشد مهارت ها و تجربه ها و ارتباطات در فعالیت های دوران دانشجویی»

📌مرور دوران دانشجویی مدیران شرکت های برخاسته از دانشکده از جمله کوئرا/توسن/ترب/گپیفای/ایده‌کاوان

🟡بخش‌های این مشورت:


🔹پاسخ به سوال یکی از سال پایینی ها دانشکده در مورد مسیر خودم در دانشکده
05:32
🔹خاطره تماس تلفنی از دست رفته سر کلاس ریاضیات گسسته ترم ۲ دکتر آبام
09:30
🔹 مرور مسیر رشد همدانشکده ای ها
14:00
🔹روایت داستان محمد جواد ابوطالبی ورودی ۹۳ از خوابگاه احمدی روشن/مدیر عامل گپیفای
18:15
🔹آینده دانشجویان کامپیوتر که کد زدن دوست ندارن در مدیریت محصول/HR و مدیریت
26:00
🔹روایت داستان ولی الله فاطمی اردکانی از دهه ۱۳۷۰ دانشکده بنیان گذار هلدینگ توسن
29:00
🔹اهمیت پیگیری یک دغدغه اصیل برای رشد
31:40
🔹 تو نیکی می کن و در دجله انداز/که ایزد در بیابانت دهد باز
در خوابگاه و دانشگاه
34:00
🔹مثال پویا مصدق ورودی ۱۳۹۱ دانشکده مدیر عامل ایده کاوان و درآمد ۱۰۰ میلیاردی
39:10
🔹شروع sharif judge پدر بزرگ Quera از اتاق خوابگاه طرشت با دغدغه بهبود آموزش برنامه نویسی توسط محمد باقر تبریزی و ...
47:00


🔰 پادکست مشورت کامپیوتری ها
@coaching_ce
Forwarded from Dev Dastan
This media is not supported in your browser
VIEW IN TELEGRAM
🖼️ The Hidden Cost of JavaScript Arrays (Part 1 - Memory Allocation)


✔️ JS arrays can tank performance and there are ways to optimize them.


Operations like push(), pop(), and splice() can trigger memory reallocation, copying, and fragmentation.

Using fixed-size or oversized arrays can be more efficient.


// Inefficient: Repeatedly resizing the array

let arr = [];
console.time("Resizing Array");
for (let i = 0; i < 10000; i++) {
arr.push(i);
}
console.timeEnd("Resizing Array");

// Time varies, typically slow

// Efficient: Using a pre-sized array

let arr2 = new Array(10000);

console.time("Pre-sized Array");

for (let i = 0; i < 10000; i++) {
arr2[i] = i;
}

console.timeEnd("Pre-sized Array"); // Time varies, typically faster


📚 Article: [here]

#javaScript #performance #softwareEngineering


🖥 Follow @devDastan for more content.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Dev Dastan
This media is not supported in your browser
VIEW IN TELEGRAM
🖼️ The Hidden Cost of JavaScript Arrays (Part 1 - Memory Allocation)


✔️ JS arrays can tank performance and there are ways to optimize them.

Operations like push(), pop(), and splice() can trigger memory reallocation, copying, and fragmentation.

Using fixed-size or oversized arrays can be more efficient.



// Inefficient: Repeatedly resizing the array

let arr = [];

for (let i = 0; i < 10000; i++) {
arr.push(i);
}

// Efficient: Using a pre-sized array

let arr2 = new Array(10000);


for (let i = 0; i < 10000; i++) {
arr2[i] = i;
}





📚 Article: [here]

#javaScript #performance #softwareEngineering


🖥 Follow @devDastan for more content.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Gopher Academy
🔵 عنوان مقاله
A No Nonsense Guide to Go Project Layout

🟢 خلاصه مقاله:

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

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


👑 @gopher_academy
Forwarded from Golden Code (علی 🇨🇴)
در لاراول، قابلیت جدید fragment@ به ما اجازه میده فقط یک بخش مشخص از یک ویو رو رندر کنیم، نه کل صفحه رو.

کاربردش:

● با AJAX کار میکنیم.

● فقط یه قسمت از صفحه باید آپدیت بشه.

● می‌خوایم سرعت لود بالا بره و مصرف کمتر شه.

مثال از کاربردش؟

زمانیکه با جاوااسکریپت قراره یک درخواست AJAX بفرستیم برای گرفتن اطلاعات کاربر.
حالا بجای اینکه کل صفحه رو دوباره بفرستیم، فقط همون بخش لازم (مثلاً user name) رو از ویو میفرستیم.
در نتیجه صفحه ی ما سریعتر و بهینه تر کار میکنه.
#Laravel
@GoldenCodeir
(استفاده ازش هم سادست، به منبع و مثالش دقت کنید 👇🏾)
https://x.com/MrPunyapal/status/1914293970848326130?s=35
Forwarded from Linuxor ?
تا حالا به این فکر کردین که دانلودر ها چطوری دانلود رو از وسطش Resume می‌کنن ؟ یا موازی دانلود می‌کنن ؟

curl -H "Range: bytes=10-20" example.com/linuxor.mp4 --output file_part2.mp4

با هدر Range می‌تونین یه بازه خاص که اینجا بین 10 تا 20 بایت فایله رو دانلود کنید البته حواستون باشه سرور هم باید ساپورت کنه و ریسپاس کد 206 معادل Partial Content رو برگردونه


@Linuxor
بچه‌ها این رپو یه ایجنت که برای خدمات مشتری هست رو با انواع فریم‌ورک‌های موجود مثل langchain، agno، گوگل sdk یا حتی بدون فریم‌ورک (با لوپ ساده) پیاده کرده.
میتونید از مثال‌ها برای شروع ساخت یه ایجنت استفاده کنید
https://github.com/langwatch/create-agent-app

@DevTwitter | <Saman Esmaeili/>
Forwarded from FuckingProgrammingBook
این کتاب به آموزش ایجاد، آموزش و تنظیم مدل‌های زبانی بزرگ (LLMs) می‌پردازد. نویسنده، سباستین راشکا، مراحل مختلف ایجاد LLM را با استفاده از متن، نمودارها و مثال‌ها توضیح می‌دهد. خوانندگان یاد می‌گیرند که چگونه یک LLM مشابه GPT-2 بسازند، مجموعه داده مناسب برای آموزش تهیه کنند و یک خط لوله آموزشی کامل ایجاد کنند. همچنین، روش‌های تنظیم دقیق LLMها برای وظایف خاص و استفاده از بازخورد انسانی برای پیروی از دستورالعمل‌ها نیز بررسی می‌شود. این کتاب به درک نحوه کار LLMها و روش‌های سفارشی‌سازی آن‌ها کمک می‌کند و به خوانندگان امکان می‌دهد یک چت‌بات بسازند. برای استفاده از این کتاب، مهارت‌های متوسط پایتون و دانش پایه‌ای از یادگیری ماشین مورد نیاز است.


لینک کتاب

#book


@FuckingProgrammingBooks

📚📚 @PhiloLearn 📚📚
Forwarded from Md Daily (Mahan)
داشتم یه ویدیو تو یوتیوب تحت عنوان What Happens When a Program Calls Sleeps میدیدم که خیلی جالب بود اگه تا حالا از تابع sleep توی برنامه‌نویسی استفاده کردید، شاید براتون سوال شده که چرا اسمش «sleep» هست و نه مثلاً «wait» یا «delay»؟ این ویدیو یه سفر جذاب به پشت صحنه‌ی این تابع ساده‌ست که پر از نکات سخت‌افزاری و نرم‌افزاریه. این تابع تقریباً توی همه زبان‌های برنامه‌نویسی هست (تو جاوااسکریپت داستانش فرق داره).

اولین چیزی که ویدیو بهش می‌پردازه، اینه که تابع sleep چطور توی دنیای واقعی کار می‌کنه. می‌ره سراغ سخت‌افزار و نشون می‌ده که چطور با استفاده از فلیپ‌فلاپ‌ها (یه جور مدار الکترونیکی که مثل سلول‌های حافظه کار می‌کنن) می‌شه یه تایمر ساخت.

این تایمرها توی سی‌پی‌یو مثل یه ساعت شنی دیجیتال عمل می‌کنن: یه عدد اولیه می‌گیرن و با هر تیک ساعت، شمارش معکوس می‌کنن تا به صفر برسن. وقتی یه برنامه sleep رو صدا می‌زنه، سیستم‌عامل با یه system call این تایمر رو تنظیم می‌کنه و وقتی تایمر به صفر رسید، با یه interrupt برنامه رو بیدار می‌کنه.

ولی یه چالش بزرگ وجود داره:
تعداد تایمرهای سخت‌افزاری توی یه چیپ محدوده. مثلاً اگه فقط دو تا تایمر داشته باشیم و سه تا برنامه بخوان sleep کنن، یکی باید منتظر بمونه! اینجا نرم‌افزار وارد بازی می‌شه. ویدیو توضیح می‌ده که چطور سیستم‌عامل با یه تکنیک هوشمندانه، فقط با یه تایمر می‌تونه چندین برنامه رو مدیریت کنه. برنامه‌هایی که sleep صدا می‌زنن، توی یه «صف خواب» می‌رن و سیستم‌عامل با یه تایمر و یه سری محاسبات، مطمئن می‌شه که هر کدوم سر وقت بیدار بشن.

بعدش، ویدیو یه روش قدیمی‌تر به اسم busy waiting رو بررسی می‌کنه که توی اون، برنامه با یه حلقه‌ی بی‌فایده، پردازنده رو مشغول نگه می‌داشت تا زمان بگذره. این روش نه تنها دقت پایینی داره (چون به سرعت پردازنده و نوع دستورات بستگی داره)، بلکه کلی از منابع سیستم رو هدر می‌ده و حتی می‌تونه سیستم رو قفل کنه! خوشبختانه، سیستم‌عامل‌های مدرن با استفاده از برنامه‌ریزی پردازنده (CPU scheduling) این مشکل رو حل کردن. وقتی برنامه sleep رو صدا می‌زنه، عملاً به سیستم‌عامل می‌گه: «من برای یه مدت نمی‌خوام پردازنده رو اشغال کنم، بذار بقیه کار کنن.»

یه نکته‌ی جالب دیگه اینه که دقت sleep همیشه ۱۰۰٪ نیست. چون بعد از بیدار شدن، برنامه می‌ره توی صف آماده و اگه سیستم شلوغ باشه، ممکنه یه کم بیشتر منتظر بمونه. برای همین، وقتی از sleep استفاده می‌کنید، زمان داده‌شده یه حداقل تضمین‌شده‌ست، نه یه عدد دقیق. این موضوع توی سیستم‌های عمومی (غیر real-time) کاملاً عادیه و ویدیو خیلی خوب توضیح می‌ده که چرا نباید انتظار دقت میکروثانیه‌ای داشته باشیم.

در نهایت، ویدیو به این می‌رسه که چرا اسم این تابع «sleep» هست. «wait» می‌تونه گنگ باشه و به هر نوع انتظاری اشاره کنه (مثل busy waiting)، ولی «sleep» یعنی برنامه کاملاً غیرفعال می‌شه، منابع رو آزاد می‌کنه و مثل وقتی که ما می‌خوابیم، منتظر می‌مونه تا بیدار بشه. این اسم حسابی به ماهیت این تابع می‌خوره!

اگه کنجکاو شدید که جزئیات بیشتری درباره‌ی این موضوع بدونید، این ویدیو پر از توضیحات باحال و انیمیشن‌های جذابه که مفاهیم پیچیده رو ساده می‌کنه. حتماً یه سر بزنید و خودتون ببینید:

📹 https://www.youtube.com/watch?v=e5g8eYKEhMw


—-

💡 مثل همیشه کنجکاو بمونید :)

🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
تو دیسک‌های SSD مفهومی داریم به اسم Terabytes Written یا TBW که نشون می‌ده تا چه حجمی از دیتا میتونیم روی دیسک بنویسیم. مثلاً SSD با 600TBW می‌تونه 600 ترابایت دیتا بنویسه قبل از اینکه عمر مفیدش تموم بشه.
برای اینکه عمر SSD رو متوجه بشیم، می‌تونیم TBW رو با استفاده از ابزارهای دیسک مثل CrystalDiskInfo یا smartctl چک کنیم.

مثلاً عدد ۶۰۰ برای TBW: اگه کاربر معمولی باشیم و فرض کنیم روزی ۱۰۰ گیگ اطلاعات رو دیسک مینویسم، حدود ۱۶ سال طول میکشه تا به عدد 600TBW برسیم!

@DevTwitter | <Mohammad/>
آلفا هفتم از میزکار کازمیک عرضه شد.

تغییرات خیلی خوبی داشته. (هنوز میانبر تغییر زبان کیبورد نداره)


https://blog.system76.com/post/cosmic-alpha-7-never-been-beta


@SohrabContents
۱ هفته‌اس دارم نسخه جدید ChatGPT رو روی کد بیس بیش از ۱۵۰۰ خط تست می‌کنم.

مشکلات :
۱- خیلی زود context رو فراموش می‌کنه.
۲- خیلی تغییر syntax داره و استانداردهای پروژه رو عوض می‌کنه.
۳- خیلی وقتا حتی توی context های کوچیک فراموش می‌کنه که یک متغییر یا تابع یا ... جای دیگری تعریف شده.

مزیت:
اگر داکیومنت کتابخونه، خیلی جدید باشه؛ می‌تونید لینک رو بهش بدید و بعد ازش port کردن کدها رو بخواید.
توی این مورد عملکرد فوق‌العاده‌ای داره

(فکر کنم بخاطر همین هم ماکروسافت برای پورت کردن کدها به Rust از مدل‌های هوش مصنوعی بر پایه chatgpt استفاده می‌کنه)

اما ۳ مورد دیگه رو هم تست کردم همزمان :

Grok3, Gemini2.5 Pro, Deepseek

مورد اول، grok بدون شک بسیار عالی جواب میده؛ بخصوص وقتی پرامپت‌ هارو کمی جزئی بهش میدید. همواره رنک اول من هست.

مورد دوم، gemini؛ نمی‌دونم تیم deepmind چیکار کرد ولی بنظر میاد بعد از کار روی پروتئین و دستاوردهای اون سمت تازه فرصت کردند منابع کافی در اختیار اینکار بذارند.
خروجیش اصلا قابل مقایسه با نسخه‌های قبلی نیست.
ولی بعد از چند هفته از experimental گذشتن، دیگه روی کدهای بزرگ خیلی زود بسته میشه دسترسی نهایتاً ۳ تا پرامپت و بعد از اون باید خرید اکانت بزنم.
که خب با توجه به اینکه ۹۹٪ مواقع 403 میگیرم با vpn برام ارزش خرید نداره.

در نهایت deepseek همیشه جواب میده (اگر سرورهاش شلوغ نباشه) محدودیت هم ندارم با ip ایران راحت وصل میشه و سرعت خوبی هم داره.
اما consistency بین پرامپت‌ها نداره و ممکنه یک راهکار رو با مثلاً regex بهتون بده و برای تابع بعدی از Trie استفاده کنه و ...

برای همین خیلی وقتا باید بهش بگم دقیقاً چی نیاز هست.

مواردی مثل claude, .... رو هم تست نمی‌کنم.

این تست‌هارو کامل روی نسخه‌های رایگان انجام دادم که همه دوستان هم بتونند استفاده کنند.

شاید باورتون نشه، اما برای یکی که می‌دونه چیکار داره می‌کنه، حتی نیازی به خرید هم نمی‌بینم دیگه، درنهایت نکته آخر اینکه :

اگر پرامپت‌های کوچیک و ساده دارید هم سراغ chatgpt نرید؛

Duckduckgo ai

بدون هیچ محدودیتی دسترسی به مدل‌های سبک شرکت‌های مختلف رو کامل رایگان بهتون میده و history رو هم فقط روی سیستم خودتون نگهداری می‌کنه.

بیشترین استفاده من پس به این ترتیب هست :
Duckduckgo
Grok3
Deepseek
Chatgpt (if search needed)

Gemini2.5 pro (review final result)


آخری خیلی جوابای خوبی میده ولی خب محدودیتش توی ۲ هفته اخیر خیلی زیاد شده برای همین مجبورم کمتر استفاده کنم.




پینوشت:
پرامپت برای همه مدل‌ها یکسان داده می‌شد. کپی و پیست بسیار داشتم.
کمپین پایان ۱۰ با کمک بنیاد کی‌دی‌ای راه‌اندازی شده و هدفش آگاه کردن افراد نسبت به گزینه‌های جایگزین بعد از پایان پشتیبانی از ویندوز ۱۰ هستش.

ترجمه فارسی وبسایت این کمپین ارسال شده و در دست برسی هستش.

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

🔗 https://endof10.org/



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

بسیار بخوانده ام دستان و سمر
از عاشق و معشوق و غم و خون جگر
پای علم عشق همه عشق تو است
تو خود دگری شها و عشق تو دگر

#مولانا | گنجور
📍@iipoem
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 سیستم پرامپت های لو رفته و فاش شده از مدل های زبانی و پلتفرم هایی مثل Cursor رو توی این ریپازیتوری ببینید !

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

گیت هاب :

https://github.com/alipyth/-

</Ali Jahani>

@TheRaymondDev
Forwarded from کدنویس یکروزه (پدرام رحیمی)
تیشرت های توریستی رمزی
برای صحبت سریع به هر زبان


کافیه یه دونه از اینا بپوشین و توی چین یا هر کشور دیگه هر کاری داشتین با انگشت یکی از این تصاویر رو نشون بدین!
تبدیل اطلاعات از یک قالب به قالب دیگه یا همون کدگذاریه ..
#code  #skill
داشتم مستندات رسمی APIهای ChatGPT رو بررسی می‌کردم که یه نکته مهم دیدم.

خیلی زیاد پیش اومده که کاربرا می‌پرسن:

«چرا این مدل قبلاً یه جور جواب می‌داد، الان یه چیز دیگه می‌گه؟»
مثلاً می‌گن قبلاً جوابش بهتر (یا بدتر) بود، یا لحنش عوض شده و...
جواب خیلی واضح تو خود داکیومنت OpenAI اومده:

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

این تغییرات هم می‌تونه توی لحن، دقت، ساختار جواب یا حتی خود محتوای پاسخ باشه.

از اونجایی که خود ChatGPT همیشه از آخرین نسخه مدل استفاده می‌کنه، این تغییرات کاملاً طبیعی و قابل انتظاره.
خلاصه اگه در مدلی از open ai نسبت به گذشته تغییرات حس کردید، دلیلش اینه که مدل آپدیت شده؛ نه اینکه شما کار خاصی کرده باشید یا مدل خراب شده باشه. خود OpenAI هم گفته که این تغییرات بخشی از روند طبیعی به‌روزرسانی مدله.

@DevTwitter | <Amir Javadzadeh/>
Forwarded from کدنویس یکروزه (پدرام رحیمی)
This media is not supported in your browser
VIEW IN TELEGRAM
برای فریلنسر شدن از پیج arashsoruri نظر استاد dariushtasdighi
در اینستاگرام

#skill
صفحه نحوه نصب پارچ در ویکی پارچ نوشته شد.

https://wiki.parchlinux.com/fa/installation

این صفحه به مرور بهبود خواهد یافت، ایرادات این صفحه را می‌توانید در زیر همین پست اعلام کنید.


@ParchLinux