Sonia Software Notes
2.02K subscribers
307 photos
16 videos
46 files
531 links
Download Telegram
Sadra Codes
گوگل داره IDE خودش رو تحت عنوان IDX رلیز می‌کنه. خیلیا بهش لقب VSCode Killer رو دادن. توی خودش AI و Generative Model ها رو داره. می‌تونید همه‌چی درش توسعه بدید. از اپ اندروید و موبایل گرفته تا بک اند و فرانت. -=- کل سیستم توی مرورگر شما و تحت کلاد هست که…
همیشه وقتی یه محصولی توی فاز توسعه قرار میگیره و تبلیغ میشه هایپ های زیاد هم همراهش داره
البته این جنبه تبلیغاتی خیلی برای مارکتینگ اون شرکت مهمه ولی در آخر شاید محصول نهایی اون چیزی نباشه که بخواد خواسته کاربر رو برطرف کنه

همین پترن روی محصول Bard هم بود که الان میبینم مدل chat gpt خیلی بهتر از Bard عمل‌ میکنه و درصد خطای کمتری داره.
👍5
https://edaalat.org/home
۳ میلیون پرونده کف اینترنت
#امنیت_ملی
🤣13👍1👎1
حرف قشنگی زد.
👍5
https://youtu.be/37VZu3b045k

نکته کلیدیی که توی این ویدیو وجود داشت این بودش که توی برنامه نویسی ( کمال‌گرا ) نباشیم و همیشه دنبال بهترین راه حل نگردیم.

خیلی وقتا پیش میاد میخوایم یه کدی بنویسیم اما به جای اینکه به پیاده سازی قابلیت هاش فکر کنیم بیشتر به تمیز بودنو بهتر بودن و ... فکر میکنیم.
شاید تا جایی تمیز بودن مهم باشه اما هیچوقت (بهترین حالت) وجود نداره.
5👌1
Forwarded from Sadra Codes
اگه علاقهمند به فیزیک (چه کلاسیک چه کوانتوم) هستید، حتما این ویدئو رو با هندزفری ببینید و لذت ببرید.

این ویدئو واقعا پایان جالبی داره. منو یاد Interstellar و قضیه Observer Effect انداخت.

https://www.youtube.com/watch?v=ErMSHiQRnc8
5❤‍🔥1
😁12👍1💋1
کاخ سفید به تازگی گفته که زبان‌های C و ++C را کنار بگذارید و از Rust استفاده کنید. میگه ۷۰ درصد کل آسیب‌پذیری‌ها سمت حافظه هستن و زبان‌هایی مثل C و ++C که Memory safety ندارن‌رو کنار بذارید بعد مثال زده گفته مثلا Rust خوبه یا C# ،Go ،Java ،Ruby و سوئیفت هم زبان های خوبی هستن.

@DevTwitter | <ShayanSbi/>
👍3
وضعیت استارتاپ‌ها تو ایران:🤦‍♂️

@Techbookology
💔36😭5🥱3🤣2👎1
Forwarded from a pessimistic researcher (Kc)
با توجه به نزدیکی عید نوروز و انتشار ریپورت اخیر Office of the National Cyber Director یا همون ONCD کاخ سفید، پیرامون شیفت صنعت و آکادمی به استفاده و توسعه از فرمال‌متد بخصوص Model Checking و زبان‌های برنامه‌نویسی Safe Memory مثل Rust به جای C/C++، جا داره که امسال رو سالِ "جهش فرمال و رونق PL" نام گذاری کنم. باشد که سالتون پر از فرمال و منطق و سمنتیک، و از شر هر گونه هایپ و چاخان مربوط به شبه‌علم هوش‌مصنوعی به دور باشه.

فرمال‌تون برقرار.
👍11
Forwarded from Python BackendHub (Mani)
کار کردن با کسی که هیچ سواد برنامه نویسی نداره راحت تره نسبت با کار کردن کسی که خیلی با سواده ولی چیزی که نمیدونه رو ادعا میکنه بلده! چون اولی پیشرفت میکنه و از یکجایی عصا دست میشه ولی دومی جز سردرد باری نداره.

@PyBackEndHub
👌24👍8
نکته جالبی بود ولی با یک مطالعه سطحی نمیشه یک زبان رو زیر سوال برد.
🤣22👍3🙏1😐1
Forwarded from white2hack 📚
Designing_Secure_Software_A_Guide_for_Developers_2021.pdf
9.2 MB
Designing Secure Software: A Guide for Developers , Loren Kohnfelder, 2021
👍1
Forwarded from Md Daily
۱۱ تا tip کمک کننده در برنامه نویسی

۱.حفظ نکن!

یاد بگیر چطور اطلاعاتی که نیاز داری رو پیدا کنی. منظورم فقط StackOverflow و GenAI نیست. برای ابزارها و زبان‌هایی که استفاده می‌کنی، باید بدونی که مستنداتشون کجا پیدا می‌شه. کی بهترین راهنماها رو می‌نویسه؟ مهم نیست که یادت نمی‌مونه موقع استفاده از عملگر شرطی اولویت با ؟ یا : هست. مهم اینه که بدونی کی از یه عملگر شرطی استفاده کنی و کجا دقیقاً syntax رو پیدا کنی. ابزارها دائماً به‌روز می‌شن یه راهی برای به‌روز بودن پیدا کن، چه یه خبرنامه باشه چه یه دوست که عاشق CSS هست :)

۲.رو اصول اولیه عمیقاً کار کن!

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

۳.تفکر سیستمی خیلی به دردت می‌خوره!

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

۴.قبل از پرسیدن، امتحان کن تا هیچ وقت سوالت مسخره نباشه!

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

۵.هر خط کد یه دردسره!

کد
رو طوری بنویس که انگار یه نفر دیگه قراره اون رو فیکس کنه. (حتی اگه اون یه نفر خودت باشی تو ۶ ماه دیگه!) دلیل کارهاتو مستند کن تا بعداً یه چیزی رو ناخواسته خراب نکنی. قبل از اینکه یه ابزار رو جزئی از سیستم کنی، نظرات بقیه رو راجع بهش بخون، شاید نظرات اون ابزار با قابلیت‌هایی که نیاز داری، جور درنیاد!

۶.خوندن کد بقیه رو تمرین کن!

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

۷.تست کن و باز هم تست کن!

همونطور که Chocho تو صحبت DevNexus 2024 گفت، "کد تئوریه. نرم‌افزار عملیاته." همیشه قبل از اینکه بخوای کسی کدت رو ببینه، خودت اجراش کن و تست کن. تا جایی که می‌شه نوشتن تست رو تمرین کن. اینکه بتونی پیش‌بینی کنی چطور یه کاربر می‌تونه برنامه‌ت رو خراب کنه و به چیزی فراتر از سناریوی ایده‌آل فکر کنی، باعث می‌شه یه برنامه‌نویس بهتر بشی.

۸.تمرین کن تا نیازمندی‌ها رو به نرم‌افزار تبدیل کنی!

ایشو:
یک دکمه به صفحه اضافه کن که یه modal باز کنه و کاربر بتونه این داده رو ویرایش کنه


ازت انتظار می‌ره بتونی یه همچین نیازمندی‌ای رو به یه لیست از مرحله‌ها (list of steps) یا شبه‌کد تبدیل کنی. اگه تیکت خیلی گنگه، برای شفاف تر شدنش سوال بپرس. بعد از اینکه مرحله‌ها رو مشخص کردی، نوبت این می‌رسه که اونا رو به کد و (امیدوارم) تست برای اون کد تبدیل کنی. بعدش هم کد رو وارد version control کنی، ریویو و کنترل کیفیت بشه و توی پروسه‌ی deployment قرار بگیره. برای تمرین کردن این کار، پروژه‌های اپن سورس عالین.

۹.کامیونیتی خیلی مهمه!

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

۱۰.چیزی رو تو برنامه‌نویسی پیدا کن که ازش لذت می‌بری!

نمی‌گم عاشق شغلت بشو یا تبدیل به اون برنامه‌نویس افسانه‌ای و پرشور (Passionate Programmer) بشین. اما یادگیری مداوم یعنی اینکه خودت رو برای ناخوشایندی‌های(discomfort) مکرر آماده کنی. اگه نمی‌دونی چرا می‌خوای هر روز صبح بیدار شی و این کار رو با خودت بکنی، آسیب میبینی. می‌تونه یه دلیل کاملاً خودخواهانه باشه، اما باید دلیل خودت رو پیدا کنی.

۱۱.هرکسی تو مسیر خودش قرار داره!

تو با مسیر شغلی و محتوای بقیه رقابت نمی‌کنی. مسیر موفقیت دیگران شاید اصلاً برای تو کار نکنه. روی دیدگاه و نقاط قوت منحصربه‌فرد خودت تمرکز کن. صدات رو پیدا کن و با بقیه به اشتراک بذار. اون بیرون کسی هست که می‌خواد صدات رو بشنوه.

🆔 @MdDaily
9👍521👌1
https://github.com/uber-go/dig
A reflection based dependency injection toolkit for Go.

Good for:
Powering an application framework, e.g. Fx.
Resolving the object graph during process startup.

Bad for:
Using in place of an application framework, e.g. Fx.
Resolving dependencies after the process has already started.
Exposing to user-land code as a Service Locator.
3👎1
قراره فعالیتم در این کانال بیشتر شه
یه مدت خیلی محتوای زیادی قرار نمیدادم به خاطر شرایطی که برام به وجود اومده بود

ولی از این به بعد محتوایی رو میذارم که برای مسیر مهندسی نرم افزار کاربردی باشه.
👍18❤‍🔥7🆒1
Gocron
https://github.com/go-co-op/gocron

gocron is a job scheduling package which lets you run Go functions at pre-determined intervals.

example of using Gocron in go :
func main() {
// create a scheduler
s, err := gocron.NewScheduler()
if err != nil {
// handle error
}

// add a job to the scheduler
j, err := s.NewJob(
gocron.DurationJob(
10*time.Second,
),
gocron.NewTask(
func(a string, b int) {
// do things
},
"hello",
1,
),
)
if err != nil {
// handle error
}
// each job has a unique id
fmt.Println(j.ID())

// start the scheduler
s.Start()

// block until you are ready to shut down
select {
case <-time.After(time.Minute):
}

// when you're done, shut it down
err = s.Shutdown()
if err != nil {
// handle error
}
}


#cronjob
#task_scheduling
👍2