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 Programming Hobby
وایب توی وایب کدینگ به چه معنیه؟؟

🔥 @Programming_Hobby 🔥
استارهای روی پست از استارهای روی ریپو بیشترن 🥲
می‌خوام یک وب سایت خیلی خوب برای گولنگ بهتون معرفی کنم، https://awesome-go.com/
این وب سایت فوق العادس برای دیدن کد تو هر موضوعی که فکرشو کنید در کانکارنسی، CLI، وب و هرچیز دیگه ای.
کافیه برین داخلش عنوان ابزار، کتابخونه یا حتی نمونه کد مورد نظر خودتون رو پیدا کنید و ریپازیتوری اوپن سورس مرتبطش رو باز کنید و داکیومنشن یا کدش رو بخونید.
واقعا جذابه پیشنهاد میکنم حتما ببینید

@DevTwitter | <Abolfazl Alizadeh/>
#کوته_نیوز

گوگل یواش داره همه لوگوهاش رو گرادینت می‌کنه.

@DevTwitter
Forwarded from Gopher Academy
می‌خوام یک وب سایت خیلی خوب برای گولنگ بهتون معرفی کنم، https://awesome-go.com/
این وب سایت فوق العادس برای دیدن کد تو هر موضوعی که فکرشو کنید در کانکارنسی، CLI، وب و هرچیز دیگه ای.
کافیه برین داخلش عنوان ابزار، کتابخونه یا حتی نمونه کد مورد نظر خودتون رو پیدا کنید و ریپازیتوری اوپن سورس مرتبطش رو باز کنید و داکیومنشن یا کدش رو بخونید.
واقعا جذابه پیشنهاد میکنم حتما ببینید

<Abolfazl Alizadeh/>
Forwarded from Gopher Academy
🔵 عنوان مقاله
Building Conway’s Game of Life with raylib-go

🟢 خلاصه مقاله:
یک پروژه تفننی و آموزشی است: پیاده‌سازی Conway’s Game of Life با استفاده از raylib-go در Go. برنامه یک پنجره باز می‌کند، شبکه‌ای دوبعدی از سلول‌ها می‌سازد و هر فریم سلول‌های زنده و مرده را به‌صورت مستطیل‌های رنگی رسم می‌کند. قوانین استاندارد (شمارش ۸ همسایه و اعمال قوانین کم‌جمعیتی، بقا، تراکم و تولیدمثل) با double-buffering اجرا می‌شوند تا محاسبات نسل بعدی تمیز و قابل اتکا باشد و در صورت نیاز امکان دورپیچی مرزها هم در نظر گرفته شده است. تعامل‌ها شامل توقف/ادامه، گام‌به‌گام، تنظیم سرعت، پاک‌سازی یا تصادفی‌سازی صفحه و تغییر وضعیت سلول‌ها با کلیک ماوس است؛ ذخیره/بارگذاری الگوهای ساده هم قابل افزودن است. حلقه به‌روزرسانی مستقل از نرخ رندر زمان‌بندی می‌شود تا اجرای روان و کارآمد حفظ شود و روی Windows، macOS و Linux به‌خوبی اجرا می‌شود. کد نهایی ارائه شده و برای توسعه ایده‌هایی مانند کتابخانه الگوها، کنترل‌های بهتر زوم/پن، گرادیان‌رنگ بر اساس سن سلول و ارزیابی عملکرد قابل گسترش است.

#ConwaysGameOfLife #raylib #raylibgo #Go #GameDev #CellularAutomata #GraphicsProgramming

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


👑 @gopher_academy
Forwarded from Reza Jafari
سلام بچه‌ها
برای منتورینگ یه ظرفیت باز شده، در مورد ساز و کار منتورینگ بالا توضیح دادم و اگر سوالی داشتین به آیدی زیر پیام بدین تا در موردش صحبت کنیم.
مرسی
@rzdjafari
«تَهِ ده» نزدیک است، با پارچ به رایانه خود جانی دوباره ببخشید!



در کمتر از ۲ هفته دیگر (۱۴ اکتبر/۲۲ مهرماه) پشتیبانی از ویندوز ۱۰ به پایان می‌رسد و چند ملیون رایانه را در معرض خطرات امنیتی قرار می‌دهد.



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


مطالعه از بلاگ پارچ


مهاجرت به پارچ در ۵ قدم

https://wiki.parchlinux.com/fa/windows-to-parch-migration


برای سازمان‌ها و شرکت‌هایی که قصد مهاجرت دارند، به‌زودی اخباری از آپادانا منتشر خواهد شد، منتظر باشید..

@ParchLinux
Forwarded from Gopher Academy
مشکل "mutex copying" در Go یعنی کپی کردن یک mutex به جای استفاده از pointer به آن. این کار باعث می‌شه که mutex اصلی و کپی شده دو شیء جداگانه بشن و قفل‌گذاری درست کار نکنه.

چرا مشکل ساز است؟

وقتی یک mutex رو کپی می‌کنی، حالت داخلی اش (locked/unlocked) کپی نمی‌شه به درستی و هر کدوم مستقل عمل می‌کنن. این یعنی race condition و عدم هماهنگی بین goroutine ها.


1. همیشه از pointer receiver استفاده کن وقتی mutex داری:
func (c *Counter) method()


2. هرگز mutex رو به صورت value پاس نده:
func badFunc(mu sync.Mutex)


3. ا Go vet ابزار خوبیه که این مشکل رو پیدا می‌کنه:
  
   go vet ./...
  


4. اگه struct رو embed می‌کنی**، حواست باشه که اون رو کپی نکنی

5. **انواع Mutex ها همه این مشکل رو دارن
:
sync.Mutex,
sync.RWMutex,
sync.WaitGroup
,
sync.Cond


این یکی از رایج‌ترین اشتباهات تو Go هست، خصوصا برای کسایی که تازه شروع کردن!
Forwarded from Gopher Academy
💙نمونه استفاده درست👇

package main

import (
"fmt"
"sync"
"time"
)

type Counter struct {
mu sync.Mutex
value int
}

func (c *Counter) Increment() {
c.mu.Lock()
defer c.mu.Unlock()
c.value++
fmt.Printf("Value: %d\n", c.value)
}

func goodFunction(c *Counter) {
c.mu.Lock()
defer c.mu.Unlock()
c.value = 100
}

func main() {
counter := &Counter{}

var wg sync.WaitGroup

for i := 0; i < 5; i++ {
wg.Add(1)
go func() {
defer wg.Done()
counter.Increment()
}()
}

wg.Add(1)
go func() {
defer wg.Done()
goodFunction(counter)
}()

wg.Wait()
fmt.Printf("Final value: %d\n", counter.value)
}

type SafeMap struct {
mu sync.RWMutex
data map[string]int
}

func NewSafeMap() *SafeMap {
return &SafeMap{
data: make(map[string]int),
}
}

func (sm *SafeMap) Set(key string, value int) {
sm.mu.Lock()
defer sm.mu.Unlock()
sm.data[key] = value
}

func (sm *SafeMap) Get(key string) (int, bool) {
sm.mu.RLock()
defer sm.mu.RUnlock()
val, ok := sm.data[key]
return val, ok
}
Forwarded from Gopher Academy
❤️نمونه اشتباه
package main

import (
"fmt"
"sync"
"time"
)

type Counter struct {
mu sync.Mutex
value int
}

func (c Counter) Increment() {
c.mu.Lock()
defer c.mu.Unlock()
c.value++
fmt.Printf("Value: %d\n", c.value)
}
func badFunction(c Counter) {
c.mu.Lock()
defer c.mu.Unlock()
c.value = 100
}

func main() {
counter := Counter{}

for i := 0; i < 5; i++ {
go counter.Increment()
}

go badFunction(counter)

time.Sleep(time.Second)
fmt.Printf("Final value: %d\n", counter.value)
}
This media is not supported in your browser
VIEW IN TELEGRAM
اگه از این coding agent ها استفاده نمیکنید سخت در اشتباهید. اگه مشکل پرداخت دلاری و کلا گرون بودن دارید این ۳ تا واقعا پلن های رایگانشون خیلی عالی هست. گوگل gemini که روزی ۱۰۰۰ تا request رایگان میده. مدل Qwen هم همینطور. با CLI هاشون کار کنید توی ترمینال یا vscode یا هر جایی که کد میزنید. opencode پلن رایگان نداره ولی راحت میتونید یک مدل اپن سورس را دانلود کنید و به صورت لوکال اجرا کنید. این CLI ها چون حالت agentic دارند خیلی خوب کار میکنند. حتا برای کارهای غیر از کدنینگ هم میتونید استفاده کنید. اگه از این ابزارها استفاده کنید وارد یک لِوِل دیگه ای میشید! اینجا برای خیلی از شرکت ها استفاده از این coding agent ها انتخاب نیست و یکجور نیازه.
-Gemini cli: https://github.com/google-gemini/gemini-cli
-Qwen cli: https://github.com/QwenLM/qwen-code
-Opencode: https://opencode.ai

@DevTwitter | <Mehdi Allahyari/>
Forwarded from Agora (Alireza)
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 قیمت دامنه‌های ir از اول آبان بیش از ۵۰ درصد گران می‌شود

مدیرعامل سایت‌های «رند» و «نام» همچنین در پاسخ به این که آیا این موضوع به معنی دوبرابر شدن هزینه‌های ثبت دامین خواهد شد یا خیر به زومیت گفت:

احتمالا افزایش قیمت‌ها بیشتر از دو برابر خواهد بود. رقم ۴۵ هزار تومان فقط برای خرج یونیت‌ها مصرف می‌شود و باید به این رقم مبلغ مالیات و ارزش افزوده و هزینه‌های جاری دیگر را اضافه کنیم. در واقع، باید بگوییم هزینه‌‌ها حداقل دو برابر می‌شود ولی احتمالا تا ۸۵ الی ۱۰۰ هزار تومان می‌رسد. نمایندگان هم احتمالا هزینه تمام شده‌شان کمی بیشتر از دو برابر قیمت قبل خواهد شد.

#خبر

@TheRaymondDev
📄 دستور touch در لینوکس

دستور touch در لینوکس بیشتر برای ایجاد فایل خالی یا تغییر زمان آخرین دسترسی/تغییر (timestamp) استفاده میشه.

اپشن‌های متداول:
touch file.txt
touch file1.txt file2.txt file3.txt
touch -t 202509261230 file.txt تغییر زمان
touch -r source.txt target.txt کپی زمان از یک فایل دیگه

🔥 ترفندهای ترکیبی و خلاقانه
touch file{1..5}.txt سری فایل
touch * به‌روزرسانی زمان همه فایل ها

برای مدیریت فایل های پروژه
touch project/{src/main.py,README.md,docs/guide.md} 


#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
شب ۷ صفر، صبح که برخاستیم برف زیادی آمده بود، به‌قدر یک وجب در شهر و صحرا ایستاده بود. به گور پدر همهٔ انباردارها چنان رید که دیگر کمر راست نخواهند کرد، الحمدلله‌تعالی.

صفر ۱۲۹۶


#ناصرالدین‌_شاه
Forwarded from Agora (Alireza)
هرچقدر به‌نظرم زندگی‌نامه خوندن کار بی‌فایده‌ و گمراه کننده‌ایه، خوندن خاطرات واسم جذاب و شیرینه و به‌نظرم پرفایده. ترجیح هم میدم که خاطرات روزانه نوشته شده باشه نه که بعد از سال‌ها که شکلی از اتوبیوگرافی به خودش گرفته. الان هم خاطرات عبدالرحیم جعفری، بنیان‌گذار انتشارات امیر‌کبیر رو دارم می‌خونم. یک کتاب دوجلدی به اسم «در جستجوی صبح». البته از جنس خاطره‌نویسی روزانه نیست ولی با این حال، باز هم جذابه. الان که چک کردم روی طاقچه رایگان قابل دانلوده. از نشر نو هم میتونید کتاب فیزیکش رو سفارش بدین.

این شاه شهید هم قلم بلیغی داره. تکه‌هایی از خاطراتش رو این کانال خاطرات و خطرات میذاره. نمیدونم هم گرایش این کانال چیه و واسم مهم هم نیست صادقانه. دنبالش میکنم که این‌ها رو بخونم صرفا. واقعا مرد خوش‌قلمیه و البته به همین هم معروف بود. خاطراتش رو که میخونی بجز اون سادگی در نوشتارش، احساساتش رو بی‌پرده بیان میکنه و این نزدیکی برای من جذابه. و از همه مهم‌تر، طنز خیلی خوبی داره پدر سوخته.
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
⭐️کتاب های فارسی و ضروری لینوکس که بر روی آکادمی کندوی دانش منتشر شدند.


🔸Linux Fundamental
https://t.iss.one/linuxtnt/4539

🔸Linux Essentials
https://t.iss.one/linuxtnt/4531

🔸LPIC1
https://t.iss.one/linuxtnt/4520


🔸LPIC2
به زودی....

همه کتابهای فارسی
https://learninghive.ir/linux-books/
مدل Claude Sonnet 4.5 به Cursor و Copilot اضافه شده.

اگه تو VSCode نمبینید، میتونید از لینک زیر گزینه Anthropic Claude Sonnet 4.5 رو Enabled کنید و بعد از چند دقیقه تو VSCode اضافه میشه. (احتمالاً‌ بزودی بصورت خودکار فعال خواهد شد)
https://github.com/settings/copilot/features

@DevTwitter | <Mohammad/>
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
اولین دوره جشن آزادی نرم افزار زنجان لاگ

ارائه‌دهنده‌های ما منتظر حضور پرانرژی شما هستند.

💡 با ایده یا بدون ایده، جای تو اینجاست!
🙏 لطفاً همه بیان، هیچ کس جا نمونده باشه!
این جشن با حضور شما قشنگ‌تر و پرانرژی‌تر میشه 😍🎉

📅 جمعه ۱۱ مهر ۱۴۰۴ – ساعت ۱۷ آنلاین

🔗 لینک ورود به رویداد: پنج‌شنبه روی همین صفحات منتشر می‌شود
همه لینک‌ها اینجاست 👇

🌐 وبسایت: https://zanjanlug.ir

📢 تلگرام: https://t.iss.one/zanjan_lug

🐧 ماستودون: https://ohai.social/@zanjanlug

📸 اینستاگرام: https://www.instagram.com/zanjanlug

🔗 لینکدین: https://ir.linkedin.com/in/zanjan-lug-393848387

🎥 پیرتیوب: https://gnulinux.tube/a/zanjanlug

📘 فیسبوک: https://www.facebook.com/61581807890416/posts/122093112849060263


🚀 پست‌ها رو با دوستانتون شیر کنید و با انرژی خودتون جشنو برق بیندازید ❤️