Dev Perfects
41 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 Linuxor ?
این ماه دیگه پولامو الکی خرج نمی‌کنم



عهههههه اینو کَلَش پایتونه


@Linuxor
Forwarded from Woland's Linux Journal (Woland)
💠تفاوت Concurrency و Parallelism💠

این دو، مفاهیمی کلیدی در برنامه‌نویسی هستند که به نحوه اجرای همزمان وظایف اشاره دارند، اما تفاوت‌های مهمی بین آن‌ها وجود دارد.
Concurrency (همزمانی)
به توانایی یک سیستم برای مدیریت چندین کار به طور همزمان اشاره دارد. در این حالت، ممکن است که چندین کار به طور همزمان در حال اجرا نباشند، اما سیستم می‌تواند به صورت مؤثر بین آن‌ها سوئیچ کند. در واقع، concurrency بیشتر به طراحی و ساختار برنامه مربوط می‌شود تا به اجرای واقعی.

Parallelism (موازی‌سازی)
به اجرای همزمان چندین کار در زمان واقعی اشاره دارد. این مفهوم معمولاً در سیستم‌هایی با چندین هسته پردازشی (multi-core) مورد استفاده قرار می‌گیرد، جایی که می‌توان چندین کار را به طور واقعی و همزمان اجرا کرد.

مثال‌ها
مثال با C

در C، می‌توان از کتابخانه pthread برای پیاده‌سازی concurrency و parallelism استفاده کرد.

Concurrency با استفاده از pthread:
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>

void* task(void* arg) {
    printf("Task %d is running\n", *(int*)arg);
    sleep(1);
    printf("Task %d is done\n", *(int*)arg);
    return NULL;
}

int main() {
    pthread_t threads[3];
    int task_ids[3] = {1, 2, 3};

    for (int i = 0; i < 3; i++) {
        pthread_create(&threads[i], NULL, task, &task_ids[i]);
    }

    for (int i = 0; i < 3; i++) {
        pthread_join(threads[i], NULL);
    }

    return 0;
}


در این مثال، سه وظیفه به طور همزمان ایجاد می‌شوند و هر کدام برای یک ثانیه اجرا می‌شوند. این مثال نشان‌دهنده concurrency است، زیرا وظایف به صورت همزمان مدیریت می‌شوند.

Parallelism با استفاده از pthread:
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>

void* task(void* arg) {
    printf("Task %d is running\n", *(int*)arg);
    sleep(1);
    printf("Task %d is done\n", *(int*)arg);
    return NULL;
}

int main() {
    pthread_t threads[3];
    int task_ids[3] = {1, 2, 3};

    for (int i = 0; i < 3; i++) {
        pthread_create(&threads[i], NULL, task, &task_ids[i]);
    }

    for (int i = 0; i < 3; i++) {
        pthread_join(threads[i], NULL);
    }

    return 0;
}


در این مثال نیز، وظایف به صورت موازی اجرا می‌شوند و اگر سیستم دارای چندین هسته باشد، هر وظیفه می‌تواند بر روی هسته‌ای جداگانه اجرا شود.

مثال با Go (Golang)

در Go، concurrency به سادگی با goroutines و channels پیاده‌سازی می‌شود.

Concurrency با استفاده از goroutines:
package main

import (
"fmt"
"time"
)

func task(id int) {
fmt.Printf("Task %d is running\n", id)
time.Sleep(1 * time.Second)
fmt.Printf("Task %d is done\n", id)
}

func main() {
for i := 1; i <= 3; i++ {
  go task(i) // ایجاد goroutine
}

time.Sleep(3 * time.Second)
}


در این مثال، هر وظیفه به عنوان یک goroutine اجرا می‌شود. Go به طور خودکار مدیریت concurrency را انجام می‌دهد.

Parallelism با استفاده از goroutines:
package main

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

func task(id int, wg *sync.WaitGroup) {
defer wg.Done()
fmt.Printf("Task %d is running\n", id)
time.Sleep(1 * time.Second)
fmt.Printf("Task %d is done\n", id)
}

func main() {
var wg sync.WaitGroup

for i := 1; i <= 3; i++ {
  wg.Add(1)
  go task(i, &wg)
}

wg.Wait()
}


در این مثال نیز، وظایف به صورت موازی اجرا می‌شوند و اگر سیستم دارای چندین هسته باشد، Go می‌تواند آن‌ها را بر روی هسته‌های مختلف اجرا کند.

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

#آموزش
Forwarded from Linuxor ?
خوشم می‌آد همه متودولوژی های توسعه نرم افزار به کمال گرایی حمله می‌کنن و ازش اجتناب می‌کنن؛ خیلی قشنگ فهمیدن گیر کار کجاست

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

@Linuxor
Forwarded from Frontend with Erfun👨🏻‍💻 (Erfun Ghodoosi)
جایی که توی جابینجا نتیجه درخواست های همکاریت پشت سر هم داره میشه "تایید برای مصاحبه" و تلفن ثابت های مختلف هی پشت سر هم دارن باهات تماس میگیرن.
یعنی یه سری نکته ی ریز رو رعایت کردی!

از تجربه های خودم براتون میگم، شاید ناقص باشه ولی واقعیه:

۱. خودتون باشید!
از متن داخل about رزومه گرفته تا توضیحاتش و cover letter و SOP و هرچیزی که فکر کنید کاملا مشخصه اگر از هوش مصنوعی استفاده کنید.
آیا چیز بدیه؟
نه!
پس چرا میگی استفاده نکنیم؟ چون الان چیزی به اسم هوش مصنوعی توی اون فازیه که همه همچین ریکشنی نسبت بهش دارن:
"از هوش مصنوعی استفاده کردی؟‌ اینو که هرکسی بلده"
که در واقع اینطور هم نیست. ولی خب بخش زیادی از اعتماد رو در این بخش از تاریخ از بین میبره..

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

---------

۲. حتما رزومتون رو نسبت به توضیحات موقعیت شغلی tailor کنید.
قبلا میگفتیم برای شرکت های بزرگ رزومه های زیادی میره
ولی متاسفانه بخاطر اینکه الان شرایط بازار کار اصلا مناسب نیست، برای شرکت های کوچیک هم حتی رزومه های زیادی میره.
ولی توضیحات موقعیت شغلی دقیقا برای اینه که به شما بگن ما منتظریم چه رزومه ای ببینیم!
میخوان بگن اگه هزار تا رزومه اومد، کدومشه که احتمالا تایم بیشتری روش فکر میکنیم حتی اگه به علت "دلایل دیگر" ردش میکنیم.

نوشته توی پروژه فعلیمون نیاز به vanilla js داریم؟
خب شماهم توی رزومه روی vanilla مانوور بدید

نوشته نیاز داریم تجربه با websocket داشته باشید؟
تجربه websocket بدست بیارید
سریع یه پروژه کوچیک هم که شده لانچ کنید و توی رزومتون بیارید
یا از تجربه های قبلیتون نام ببرید
حتما هم آیتم اول باشه.

نوشته tailwindcss برامون مهمه؟
خب بنویسیدش
قطعا توی پروژه ها از ابزار های متنوعی استفاده میشه
ولی چیزی رو توی رزومه بنویسید که توی توضیحات از شما خواستن.

---------

۳. از اعداد واضح استفاده کنید.
هرچی توضیحات شما واضح تر و clear تر باشه
قطعا شانس شما برای تایید شدن بالا میره.

این دوتا جمله رو مقایسه کنید:
۱. از تکنیک های مختلفی مثل performance tuning و memoization استفاده کردم و پرفورمنس تا حد قابل توجهی افزایش پیدا کرد!
۲. با استفاده از تکنیک های performance tuning و memoization پرفورمنس رو تا ۳۰ درصد افزایش دادم.

تفاوت و شفافیت کاملا حس میشه.
ولی از شما توی مصاحبه میپرسن چطور به این ۳۰ درصد رسیدی
این ۳۰ درصد رو با چه ابزاری اندازه گیری کردی.
(این اتفاقا خبر خوبیه چون مشخصه کارت نتیجه داده)

میتونید بگید از lighthouse , page speed insight و ...
استفاده کردم
یا برای بهتر کردن re-render ها و اندازه گیریشون از devtools profiler استفاده کردم.

واضح باشه نتایج کارتون!
همه بلدن بگن فلان کاری که کردم عالی و درجه یک بود.

----------

۴. کاور لتر (cover letter) ننویسید. اگر قراره یه متن تکراری و مصنوعی از GPT بگیرید.
توضیحات موقعیت شغلی رو بخونید
اگر فکر میکنید واقعا گزینه مناسبی برای اون موقعیت هستید
توی کاور لتر ذکر کنید
بگید که چرا انتخاب میکنید با این تیم کار کنید
چه مزیتی دیدید؟
چرا اونا باید شمارو انتخاب کنند؟
خودتون باشید و واضح ولی دقیق حرفتون رو بزنید.

چون که تمام ماجرا راجع به جلب اعتماد هست!


----------

و اما توی جلسه مصاحبه

۵. علت رد شدن شما تا ۸۰ درصد استرسی هست که دارید.
من تاحالا تجربه مصاحبه کردن داشتم
مصاحبه شدن هم داشتم
کاملا مشخص و واضح بود برای خودم که هم علت رد شدن خودم بعد از مصاحبه و هم علت رد کردن دوستانی که مصاحبه کردم باهاشون استرس و انرژی منفی بوده.

فراموش نکنید که:
با دورکاری میشه ساخت
مهارت رو میشه آموزش داد
نکته های فنی رو میشه گفت

ولی با انرژی منفی هیچکاری بجز ترک کردن نمیشه کرد!
حتی اگه ۱۰ سال هم سابقه کار داشته باشی
استرس جایی توی سازمانی که همه با امید و انگیزه کنار هم دارن برای یه هدف مشترک میجنگن نداره.

----------

۶. در نهایت هم
هیچوقت توی نمیدونم و نمیتونم نمونید
یه موضوعی رو بلد نیستید؟
خب برید بخونیدش!
توی این مصاحبه نتونستید درست جواب سوالات فنی رو بدید؟
خب چرا برای مصاحبه بعدی اینقدر قوی و محکم مطالعه نمیکنید که سری بعدی در بهترین و پرفکت ترین حالت ممکن جواب بدید؟
Forwarded from Frontend with Erfun👨🏻‍💻 (Erfun Ghodoosi)
و کلام آخر رو هم بهتون بگم
اونم اینه که صبر داشته باشید
میدونم شرایط سختیه
تعداد توسعه دهنده ها و مهندس ها روز به روز داره بیشتر میشه و موقعیت های شغلی روز به روز کمتر میشه.
ولی همیشه هم راه های زیادی برای متفاوت بودن هست.

اگر هم فکر میکنید از مهارتی که دارید نمیتونید پول در بیارید
سریع برید یه مهارت دیگه یاد بگیرید و برید سر یه کار دیگه!
گربه باید موش بگیره. چه فرقی داره سفید یا سیاه؟
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
اگر لپ تاپ میخواهید بخرید بایدحداقل پورت Thunderbolt 4 داشته باشد
چون Thunderbolt 5 معرفی شد
تاندربولت ۵ می‌تواند داده‌ها را با سرعت ۸۰ گیگابیت‌برثانیه یا حداکثر ۱۲۰ گیگابیت‌برثانیه (در حالت Bandwidth Boost) انتقال دهد.
برای مقایسه USB3 می تواند 4.8 Gbit/s (600MBps) منتقل کد


اینتل برای استفاده از استاندارد Thunderbolt 5 هزینه لایسنس دریافت نمی‌کند
اما کنترل کاملی بر فرآیند گواهینامه Thunderbolt دارد و این مانعی برای پذیرش گسترده‌تر آن در پلتفرم‌های غیراینتلی است
⚠️حتی با استفاده از کارت‌های افزودنی Thunderbolt در سیستم‌های AMD، مشکلاتی در سازگاری و عملکرد وجود داره
Forwarded from a pessimistic researcher (Kc)
✉️ ACM Learning Center <[email protected]>
January 11 Talk, "The Art of Concurrency in Go" with Platform Observability Engineer Johnny Boursiquot

ACM TechTalks
December 14, 2021
"
*January 11 Talk, "The Art of Concurrency in Go" with Platform Observability Engineer Johnny Boursiquot*
Register now for the next free ACM TechTalk, " *The Art of Concurrency in Go* ," presented on *Tuesday, January 11 at 12:00 PM ET/9:00 AM PT* by *Johnny Boursiquot* , Platform Observability Engineer at Salesforce's Heroku.
Leave your comments and questions with our speaker now and any time before the live event on ACM's Discourse Page. And check out the page after the webcast for extended discussion with your peers in the computing community, as well as further resources on Go, concurreny, and more.
( If you'd like to attend but can't make it to the virtual event, you still need to register to receive a recording of the TechTalk when it becomes available.)
Note : You can stream this and all ACM TechTalks on your mobile device, including smartphones and tablets.
Go’s concurrency mechanism is one of the language's most attractive features. In this talk, we will code an increasingly sophisticated network utility to help us learn how best to take advantage of Go’s concurrency capabilities and how to avoid some of its pitfalls. You will walk away from this talk with a practical understanding of how Go does concurrency, and what working with the language looks and feels like.
*Duration* : 60 minutes (including audience Q&A)
*Presenter* :
*Johnny Boursiquot* , Platform Observability Engineer, Salesforce's Heroku
Johnny Boursiquot is a multi-disciplined software engineer with over two decades of experience and a love for teaching and community-building. He stays busy as a trainer, speaker, and diversity advocate within the Go programming language community where he also frequently serves as podcast host, user group organizer, and conference program committee member. Johnny’s works appear on several publishing platforms, including O'Reilly and Packt. He has most recently also been a contributing author to the book 97 Things Every SRE Should Know. He is currently a Platform Observability Engineer at Salesforce’s Heroku.
Visit *learning.acm.org/techtalks-archive* for our full archive of past TechTalks.
Association for
Computing Machinery
1601 Broadway, 10th Floor, New York, NY 10019
Copyright © 2021, ACM, Inc. All rights reserved
You are subscribed with: [email protected]
Unsubscribe
Connect with us:
to view image click on to view image click on to view image click on to view image click on to view image click on to view image click on to view image click on
⁉️ برای توسعه نرم افزار حتما باید برنامه نویسی حرفه ای باشیم ؟
⁉️چطور مشارکت کنیم؟
استفاده، گزارش مشکل ، کامل کردن مستندات نصب یا کار، بخش مهمی از توسعه نرم افزار آزاد است
🔥 آموزشی عملی Issues و Pull Requests در Github

در پروژه FOSSGT در گیت هاب میتوانید اول GitHub Issues و GitHub Pull Request را فارسی و ساده یاد بگیرید سپس به صورت تمرینی
درخواست PR و Issues ثبت کنید تا یاد بگیرید


⚠️ این فقط یک تمرینه پس با خیال راحت درخواست بزنید و تمرین کنید


💠 ابزار های مهم مشارکت
✳️ابزار GitHub Issues یکی از ابزارهای قدرتمند در GitHub که به کاربران کمک می‌کند تا وظایف، مشکلات (bugs) و پیشنهادات را در پروژه‌ها مدیریت کنند.

✳️ابزار Pull Requests (PR) در GitHub روشی برای پیشنهاد تغییرات در کد است. این قابلیت اجازه میده تا کدها یا تغییرات را در شاخه‌های مختلف ایجاد کنید و سپس درخواست ادغام (merge) آن‌ها را در پروژه ارسال کنند.
@MehrdadLinuxchannel
Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
همون طور که می‌بینید این لینک فقط به مدت ۲۴ ساعت فعاله و بعدش منقضی میشه و فقط به صورت غیر رایگان و اشتراکی میتونید به مطالب چنل دسترسی داشته باشید

لینک منقضی شد برای تهیه اشتراک کانال میتونید به pv مراجعه کنید

@MohammadTazaroie

خیلی مهم ‼️
همین اول کار میگم، اگر فکر‌ میکنید که قرار نیست تایم بزارید برای استارتاپ خودتون، یا اصلا علاقه ای ندارید و ... عضو این کانال نشید، چون به دردتون نمیخوره واقعیتش

این کانال فقط به درد کسایی میخوره که واقعا دنبال خلق ارزش و یادگیری هستن، این چیزا براشون مهمه و واقعا وقت میزارن و میرن دنبالش و میخونن !
Forwarded from یه شعر (Poem Bot)
حافظ | رباعیات | رباعی شمارهٔ ۳۵

ای باد حدیث من نهانش می گو
سر دل من به صد زبانش می گو
می گو نه بدان سان که ملالش گیرد
می گو سخنی و در میانش می گو

#حافظ | گنجور
📍@iipoem
Forwarded from Gopher Academy
🔵 عنوان مقاله
DiceDB: A Reactive, In-Memory Database Optimized for Modern Hardware

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

اDice یک پایگاه داده جدید است که با زبان برنامه‌نویسی Go توسعه یافته و واکنش‌گرا است، به این معنی که تغییرات را بلافاصله به کاربران متصل اطلاع می‌دهد. این پایگاه داده از رویکرد Redis الهام گرفته و مانند Redis، به صورت حافظه‌ای (in-memory) عمل می‌کند و دستورات ساده‌ای شبیه به دستورات Redis دارد. Dice برای برنامه‌هایی که به بروزرسانی داده‌ها به صورت فوری نیاز دارند، بسیار مناسب است و با کاهش زمان پاسخ‌دهی، تجربه کاربری بهتری را فراهم می‌آورد.

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


👑 @gopher_academy
اگر جاوا دولوپر هستید و در سطح متوسط، میتونید به سورس پروژه جدید من نگاه کنید
قراره توی ادامه مسیر بهش GUI اضافه کنم وکامل کنم
توضیحات کامل هستش، میتونید مطالعه کنید
اگر هم قابل بود استار کنید
https://github.com/MisaghMomeniB/Financial-Tracking-Java

@DevTwitter | <Misagh Momeni Bashusqeh/>
جمهوری اسلامی اگر می‌خواست به این روز نیفتد، باید مثل کشور دوست و برادرش کره شمالی #اینترنت، مرزها و رسانه‌ها را می‌بست.
مردمی که بدانند آن طرف مرزها هم میلیاردها انسان به اشکال مختلف زندگی می‌کنند، برای حرف‌های تاریخ مصرف گذشته تره خرد نمی‌کنند.

© M_Salehikhaah

🔍 ircf.space
@ircfspace
افراد اومدن و گفتن که انسان هم با مسائل قبلی تمرین میکنه دیگه

به نظرم چیزی که هوش مصنوعی نداره و روی این قضیه تاثیر گذاشته در واقع نبود خلاقیت توی هوش مصنوعیه. انسان میخونه، تمرین میکنه و در نهایت مسائل رو با خلاقیت و انعصاف پذیری خیلی بالا حل میکنه.
هوش مصنوعی generative و کاملا محدوده به داده های قبلیش ولی انسان creative و توانایی خلق رو داره.

امیدوارم یه روزی creative بودن هوش مصنوعی رو هم ببینم.


#نظرم

💙💙 @PhiloLearn 💙💙
Forwarded from DevAcademy
عنوان شغلی: توسعه‌دهنده پایتون (متخصص VoIP) – به‌صورت ریموت

نوع همکاری: تمام‌وقت یا پروژه‌ای (قابل مذاکره)
مکان: ریموت (دورکاری)
زبان: تسلط به زبان انگلیسی الزامی است

شرح موقعیت شغلی:

ما به دنبال یک توسعه‌دهنده باتجربه پایتون با تخصص در سیستم‌های VoIP هستیم تا به‌صورت تمام‌وقت یا پروژه‌ای به تیم ما بپیوندد. فرد مناسب برای این موقعیت باید دانش عمیقی در حوزه VoIP و پروتکل‌های مربوطه داشته باشد و توانایی پیاده‌سازی و نگهداری سیستم‌های ارتباطی مقیاس‌پذیر را دارا باشد.
مسئولیت‌ها:
طراحی، توسعه و نگهداری اپلیکیشن‌های مرتبط با VoIP با استفاده از زبان پایتون
ادغام با پروتکل‌های ارتباطی مانند SIP، RTP، و WebRTC
کار با سیستم‌های متن‌باز VoIP مانند Asterisk، FreeSWITCH یا Kamailio
بهینه‌سازی عملکرد سیستم‌های ارتباطی بلادرنگ و اطمینان از پایداری آن‌ها
همکاری مؤثر با تیم به‌صورت ریموت
نوشتن کدهای تمیز، قابل نگهداری و مستندسازی‌شده
شرایط لازم:
تسلط بالا بر زبان برنامه‌نویسی Python
تجربه عملی با تکنولوژی‌ها و پروتکل‌های VoIP (مانند SIP، RTP، WebRTC و غیره)
آشنایی با ابزارها و پلتفرم‌هایی مانند Asterisk، FreeSWITCH یا مشابه
درک مناسب از مفاهیم شبکه (TCP/IP، UDP، NAT و...)
تجربه کار با سرورهای لینوکس
توانایی برقراری ارتباط مؤثر به زبان انگلیسی
خودانگیخته و توانمند در کار مستقل و دورکاری
امتیاز محسوب می‌شود اگر:
آشنایی با پلتفرم‌های ابری (AWS، GCP و...)
تجربه استفاده از Docker و ابزارهای CI/CD
آشنایی با پایگاه‌داده‌هایی مانند PostgreSQL

امکان همکاری به‌صورت تمام‌وقت یا پروژه‌ای

[email protected]

💻@DevAcaademy
💬@DevAcademyGroup
Forwarded from Curious Geek ⚡️
سلام ، من برای بچم دنبال یک مامان / بابای خوب میگردم.
آقا جنی عقیم شده سه سالشه وسایل داره واکسن زده آموزش هم دیده
تنها شرط واگذاری خرید یک خونه برای آقا جنی هستش
اگه میخواید مامان یا باباش بشید، بهم پیام بدید.
@JennySajde
🆔 @Tombaugh
۵۳ تا سرویس‌دهنده که میشه با کریپتو ازشون VPS خرید:

https://gist.github.com/teal33t/340f3ab42cc0c1fa75526a6d65935a43

@DevTwitter | <Saman/>
Forwarded from یک برنامه نویس تنبل (The Lazy 🌱)
نتیجه بررسی من از Llama4 بطور خلاصه.