Forwarded from یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 همین طور می ببینید ۷۵ نفر شرکت کردند و بیشترین دوره ای که رای آورد سایت شرکت با لاراول است.
دوستمون آقای @mir_alix میگه بهتره پروژه فروشگاهی باشه و پروژه شرکتی چالش خاصی نداره!
درسته که چالش خاصی نداره اما هدفم اینکه تازه کارها دوره مبتدی و متوسطه ببینند و بعد بروند سراغ پروژه پیچیده تر که با دیزاین پترن ها سروکار دارند.
پس دو هفته دیگه ضبط دوره سایت شرکتی با لاراول شروع می کنیم.
صفحات تعریف شده شامل سربرگ - اسلایدر - خدمات ما - درباره ما - نمونه کارها - وبلاگ -تماس با ما - مشتریان ما و پا برگ خواهد بود.
@TheRaymondDev
دوستمون آقای @mir_alix میگه بهتره پروژه فروشگاهی باشه و پروژه شرکتی چالش خاصی نداره!
درسته که چالش خاصی نداره اما هدفم اینکه تازه کارها دوره مبتدی و متوسطه ببینند و بعد بروند سراغ پروژه پیچیده تر که با دیزاین پترن ها سروکار دارند.
پس دو هفته دیگه ضبط دوره سایت شرکتی با لاراول شروع می کنیم.
صفحات تعریف شده شامل سربرگ - اسلایدر - خدمات ما - درباره ما - نمونه کارها - وبلاگ -تماس با ما - مشتریان ما و پا برگ خواهد بود.
@TheRaymondDev
👎1
Forwarded from Laravel News
Tim Leland: URL Shorteners, browser extensions, and more https://laravel-news.com/tim-leland
Laravel News
Tim Leland: URL Shorteners, browser extensions, and more - Laravel News
We chat with Tim Leland about the creation of T.ly, a URL-shortening service.
Forwarded from Laravel News
Managing Request Host Information in Laravel https://laravel-news.com/request-host
Laravel News
Managing Request Host Information in Laravel - Laravel News
Harness the potential of Laravel's request host methods. Build robust multi-tenant applications and manage domain-specific logic with precise URL handling capabilities.
Forwarded from Geek Alerts
Media is too big
VIEW IN TELEGRAM
گیتهاب کوپایلت یه Agent روی VSCode داده، یه دستیار خودمختار که عملا بخشهای زیادی از وظایف کدنویسی رو انجام میده. میتونه توی نوشتن کد، تکمیل یا ویرایش چندین فایل کدنویسی به صورت همزمان کمکتون کنه، ارورهای کد رو براتون پیدا و اصلاح میکنه.
میشه از بین مدلهاش O3-mini رو هم انتخاب کرد.
برای استفاده ازش باید VS Code Insiders رو دانلود کنید و تو تنظیمات GitHub Copilot Chat حالت agent mode رو روشن کنید.
بعدش برید تو پنل Copilot Edits جایی که مدل رو انتخاب میکنید، اون بالا یه گزینه هست که نوشته Edit بذاریدش رو Agent و تمام.
https://code.visualstudio.com/insiders/
blog
@geekalerts
میشه از بین مدلهاش O3-mini رو هم انتخاب کرد.
برای استفاده ازش باید VS Code Insiders رو دانلود کنید و تو تنظیمات GitHub Copilot Chat حالت agent mode رو روشن کنید.
بعدش برید تو پنل Copilot Edits جایی که مدل رو انتخاب میکنید، اون بالا یه گزینه هست که نوشته Edit بذاریدش رو Agent و تمام.
https://code.visualstudio.com/insiders/
blog
@geekalerts
Forwarded from Accio
Here is my understanding of what is UDP hole-punching and how does UDP Peer-to-Peer connection work
As you may know our devices are behind a NAT process when trying to access the internet. Meaning multiple devices on the same private network (e.g your local wifi) will have the same public IP address while on the internet. So in order for the router to know which packet is destined to which device, there must be a translation table that has records like: (DestinationAddr, DestinationPort, LocalAddr, LocalPort). You can find out more about NAT here
The problem is now clear. If we wanted a Peer-to-Peer connection, clients would have no idea of each others NAT tables hence no idea of where they should send their packets to. In fact there is not even a suitable record in their NATs for this procedure.
That's when a third server (S in picture) comes into play. S should be exposed to both A and B, meaning it should have a public UDP port open for sending/receiving packets and the rest goes as follows:
1. A and B will attempt to send UDP packets to S, hence they would have a record in their router's NAT table for an open UDP port
2. S will aid to exchange A and B's public address and port
3. Both A and B will now attempt to send a UDP packet to each other without using S and in doing so they would add another entry to their NAT tables. Bear in mind if a packet is received without any packet sent first, it will be dropped. Since the NAT entry is not initiated yet but it does not matter since it will be initiated when sending one anyways
4. After all said and done, A,B can freely send packets to each other via UDP
TCP hole punching works about the same but for UDP it's simpler since it's connection-less
As you may know our devices are behind a NAT process when trying to access the internet. Meaning multiple devices on the same private network (e.g your local wifi) will have the same public IP address while on the internet. So in order for the router to know which packet is destined to which device, there must be a translation table that has records like: (DestinationAddr, DestinationPort, LocalAddr, LocalPort). You can find out more about NAT here
The problem is now clear. If we wanted a Peer-to-Peer connection, clients would have no idea of each others NAT tables hence no idea of where they should send their packets to. In fact there is not even a suitable record in their NATs for this procedure.
That's when a third server (S in picture) comes into play. S should be exposed to both A and B, meaning it should have a public UDP port open for sending/receiving packets and the rest goes as follows:
1. A and B will attempt to send UDP packets to S, hence they would have a record in their router's NAT table for an open UDP port
2. S will aid to exchange A and B's public address and port
3. Both A and B will now attempt to send a UDP packet to each other without using S and in doing so they would add another entry to their NAT tables. Bear in mind if a packet is received without any packet sent first, it will be dropped. Since the NAT entry is not initiated yet but it does not matter since it will be initiated when sending one anyways
4. After all said and done, A,B can freely send packets to each other via UDP
TCP hole punching works about the same but for UDP it's simpler since it's connection-less
Forwarded from Laravel News
First Factor One-Time Passwords for Laravel with OTPZ https://laravel-news.com/otpz
Laravel News
First Factor One-Time Passwords for Laravel with OTPZ - Laravel News
Add First Factor One-Time Passwords to your Laravel application (ie. Passwordless OTP Login)
Forwarded from محتوای آزاد سهراب
اگر یوتوب برای شماهم روی فلان دقیقه هنوز گیر میکنه میتونید از ترکیب مسمومی که توی این پست میگم استفاده کنید.
چقدر مسموم؟ خیلی مسموم
قبلا درباره تنظیم پروکسیچینز و همینطور yt-dlp گفتم. خروجی دستور بالا به شما یک لینک مستقیم از اون ویدئو رو میده که بعد میتونید بندازیدش جلوی mpv و ویدئو یوتوب برای شما پخش بشه.
@SohrabContents
چقدر مسموم؟ خیلی مسموم
proxychains -q yt-dlp -g videolink --cookies-from-browser firefox
قبلا درباره تنظیم پروکسیچینز و همینطور yt-dlp گفتم. خروجی دستور بالا به شما یک لینک مستقیم از اون ویدئو رو میده که بعد میتونید بندازیدش جلوی mpv و ویدئو یوتوب برای شما پخش بشه.
proxychains -q mpv output
@SohrabContents
Forwarded from Linuxor ?
مدت ها قبل یه تیکه از کد خودم رو که تو چند تا حالت فرعی بد کار میکرد و ممکن بود باگ بخوره رو با کد جدید عوض کردم؛
بعد تازه داشتم دوباره ریفکتور میکردم گفتم این چه کد چرتیه و برش گردوندم به همون اولی که باگی بود در صورتی که کد خوبه همون بود !
همیشه وقتی کد تمیزی رو تغییر میدین بالاش کامنت کنید که فلان روش فلان باگو میده برای همین این روش رو نوشتم، که بعدا دوباره کسی برش نگردونه به کد باگی چون تفکر اغلب برنامه نویس ها شبیه به همه، به این کار توی مهندسی نرم افزار میگن نگهداری Decision History که باعث میشه توی آینده اشتباهی رو مثل من دوباره تکرار نکنید.
@Linuxor
بعد تازه داشتم دوباره ریفکتور میکردم گفتم این چه کد چرتیه و برش گردوندم به همون اولی که باگی بود در صورتی که کد خوبه همون بود !
همیشه وقتی کد تمیزی رو تغییر میدین بالاش کامنت کنید که فلان روش فلان باگو میده برای همین این روش رو نوشتم، که بعدا دوباره کسی برش نگردونه به کد باگی چون تفکر اغلب برنامه نویس ها شبیه به همه، به این کار توی مهندسی نرم افزار میگن نگهداری Decision History که باعث میشه توی آینده اشتباهی رو مثل من دوباره تکرار نکنید.
@Linuxor
Forwarded from یک برنامه نویس تنبل ( MΞ)
🔶 دانلود کتاب های پولی
یکی از سایتایی که کتابهای پولی رو میتونید رایگان دریافت کنید zlib هستش ولی سایتای فیک زیادی براش زدن ربات زیر رو استارت بزنید میتونید هر دفعه که دامینشون فیلتر میشه پیدا کنید:
@la3tknightarchive_bot
بعدی سایت Library Genesis:
https://libgen.is
از کانالای ایرانی هم این کانال زحمت میکشن و تا الان چیزی حدود ۱میلیون pdf رو قرار دادن:
@BOOKzMA
@TheRaymondDev
یکی از سایتایی که کتابهای پولی رو میتونید رایگان دریافت کنید zlib هستش ولی سایتای فیک زیادی براش زدن ربات زیر رو استارت بزنید میتونید هر دفعه که دامینشون فیلتر میشه پیدا کنید:
@la3tknightarchive_bot
بعدی سایت Library Genesis:
https://libgen.is
از کانالای ایرانی هم این کانال زحمت میکشن و تا الان چیزی حدود ۱میلیون pdf رو قرار دادن:
@BOOKzMA
@TheRaymondDev
Forwarded from محتوای آزاد سهراب
اینطور که معلومه یوتوب الآن به بعضی کاربرها تبلیغ های یک ساعته رو نشون میده :)))
این همه گوگل با کروم و غیره اومد ادبلاکر هارو مسدود کرد که تهشم شد این.
https://www.makeuseof.com/hour-long-unskippable-youtube-ads/
@SohrabContents
این همه گوگل با کروم و غیره اومد ادبلاکر هارو مسدود کرد که تهشم شد این.
https://www.makeuseof.com/hour-long-unskippable-youtube-ads/
جدای از اینها، وقتشه جایگزین های یوتوب رو مثل #پیرتوب و #آدسی رو یک نگاهی بهشون بندازید، با اینکه پیرتوب مدل درآمدزایی نداره ولی به علت وجود فدیورس یکی از بهترین پلتفرمهای اشتراک گذاری رایگان ویدئو بدون تبلیغات و چرت و پرتهای اضافه است.
@SohrabContents
MUO
Some People Are Seeing Hour-Long Unskippable YouTube Ads, but Why?
Is it a case of YouTube being greedy? Not quite.
Forwarded from Linuxor ?
یه جایگزین خوب برای دستور cat
ابزار bat یه میتونه یه جایگزین خوب برای cat باشه البته فقط توی کامپیوتر شما نه توی لینوکس !!! چون لینوکس یکی از اهدافش اینه ساده باشه.
ابزار bat میتونه syntax اکثر فایل ها رو بفهمه و اونارو رنگی کنه و باعث خوانایی بیشتر اونا بشه
ابزار bat به راحتی میتونه با دستور tail ترکیب بشه برای مثال
میتونید لاگ های pacman رو به صورت سینتکس هایلایت ببینید.
به نقل از توسعه دهنده هاش میتونید باهاش man پیج هارو هم سینتکس هایلایت کنید :
برای این کار باید متغیر محیطی MANPAGER رو تعریف کنید :
(اگه دبیان بیس هستید بجای bat بنویسید batcat)
🐧 @Linuxor
ابزار bat یه میتونه یه جایگزین خوب برای cat باشه البته فقط توی کامپیوتر شما نه توی لینوکس !!! چون لینوکس یکی از اهدافش اینه ساده باشه.
ابزار bat میتونه syntax اکثر فایل ها رو بفهمه و اونارو رنگی کنه و باعث خوانایی بیشتر اونا بشه
ابزار bat به راحتی میتونه با دستور tail ترکیب بشه برای مثال
tail -f /var/log/pacman.log | bat --paging=never -l logمیتونید لاگ های pacman رو به صورت سینتکس هایلایت ببینید.
به نقل از توسعه دهنده هاش میتونید باهاش man پیج هارو هم سینتکس هایلایت کنید :
برای این کار باید متغیر محیطی MANPAGER رو تعریف کنید :
export MANPAGER="sh -c 'col -bx | bat -l man -p'" man 2 select(اگه دبیان بیس هستید بجای bat بنویسید batcat)
🐧 @Linuxor
Forwarded from IRCF | اینترنت آزاد برای همه
در آپدیت جدید #oblivionDesktop تغییراتی اعمال شد تا قبل از اینکه اعلان فالس پازیتیو آنتیویروسها برطرف بشه، فایل Warp-Plus رو بهطور خودکار (درصورتی که بهش مجوز بدین) در لیست استثناهای ویندوز دیفندر یا بیتدیفندر قرار بده.
👉 github.com/bepass-org/oblivion-desktop/releases
🔍 ircf.space/software
@ircfspace
👉 github.com/bepass-org/oblivion-desktop/releases
🔍 ircf.space/software
@ircfspace
❤1
Forwarded from محتوای آزاد سهراب
Forwarded from RandRng
حدود ۲ سال پیش این موقع یک پروژه بکند رو کار کردیم که همون زمان ۲ قسمت داشت (من مدیر تیم توسعه دهنده این پروژه بودم).
بخشی از پروژه که با
توی شروع خیلی استاندارد سازی و داینامیک بودن پروژه مدنظرم بود، برای همین دوتا از تصمیماتی که گرفتم اینها بود :
۱- تمامی تستها؛ با پکیج
۲- همهی
اون زمان سر این ۲تا خیلی جنگیدم، که تغییر نکنه و حتماً رعایت بشه.
امروز مدیرعامل شرکت برای یک پروژه دیگر باهام تماس گرفت؛ توی meet ایی که داشتیم، مدیر فنی وقتی متوجه شد اون پروژه کار من بوده شاید بیش از ۱۰۰ بار تشکر کرد.
چرا ؟
چون پروژه از
تصمیم اولم کمک کرده بود با وجود زمان کوتاه برای جابجایی به
نیازی به تغییر تستها نداشته باشند (۹۰٪ هیچی رو تغییر ندادند ولی دقیقش رو نپرسیدم).
و تصمیم دوم؛ باعث شده بود بتونند به راحتی دیتابیس عوض کنند، یا حتی کدهای دپلوی شده رو تست بیگرند.
توی @pyhints قبلاً اشاره کردم به این موضوع؛ خواستم دوباره بگم که اگر درآینده تغییر فریمورک یا ابزار میبینید توی
بخشی از پروژه که با
Fastapi زده شده بود و بخش دیگری که قرار بود با Django شروع بشه. توی شروع خیلی استاندارد سازی و داینامیک بودن پروژه مدنظرم بود، برای همین دوتا از تصمیماتی که گرفتم اینها بود :
۱- تمامی تستها؛ با پکیج
requests باشه.۲- همهی
endpointهای مربوط به create, update بجای بررسی مستقیم با دیتابیس از طریق درخواست دیتا با Get detail بررسی بشه که درست توی دیتابیس هست یا نه.اون زمان سر این ۲تا خیلی جنگیدم، که تغییر نکنه و حتماً رعایت بشه.
امروز مدیرعامل شرکت برای یک پروژه دیگر باهام تماس گرفت؛ توی meet ایی که داشتیم، مدیر فنی وقتی متوجه شد اون پروژه کار من بوده شاید بیش از ۱۰۰ بار تشکر کرد.
چرا ؟
چون پروژه از
FastApi, Django رفته بود روی Golang و بجای Postgresایی که سمت خودشون باشه از Self-Hosted database های شرکت کارفرما استفاده شده بود.تصمیم اولم کمک کرده بود با وجود زمان کوتاه برای جابجایی به
Golang و فشار شرکت کارفرما مبنی بر سرعت بخشیدن به قضیه.نیازی به تغییر تستها نداشته باشند (۹۰٪ هیچی رو تغییر ندادند ولی دقیقش رو نپرسیدم).
و تصمیم دوم؛ باعث شده بود بتونند به راحتی دیتابیس عوض کنند، یا حتی کدهای دپلوی شده رو تست بیگرند.
توی @pyhints قبلاً اشاره کردم به این موضوع؛ خواستم دوباره بگم که اگر درآینده تغییر فریمورک یا ابزار میبینید توی
Integration Test ها تا جایی که میشه تستهارو از ابزارها و فریمورک جدا کنید.Forwarded from Linuxor ?
تورینگ توی مقاله جنجالیش توی سال 1950 که اولین مقاله درباره هوش داشتن ماشین ها بود باید تفکر خشک عمومی رو عوض میکرد ؛
خیلی قشنگ میدونست خیلیا بخاطر اعتقادشون حاضر نیستن قبول کنن که ماشین میتونه هوش داشته باشه بخاطر همین اولین اعتراضی که مطرح کرد و جوابشو داد The Theological Objection یا اعتراض الهیاتی بود که در جواب افرادی بود که میگفتن خدا فقط به انسان قدرت تفکر داده و ماشین روح نداره، پس نمیتونه فکر کنه؛
اما تورینگ اینطوری به این اعتراض جواب داده بود :
اگه خدا همهچیزو ممکن ساخته، چرا نتونه به یه ماشین توانایی فکر کردن بده؟ پس این اعتراض شما داره خدا رو محدود میکنه.
@Linuxor
خیلی قشنگ میدونست خیلیا بخاطر اعتقادشون حاضر نیستن قبول کنن که ماشین میتونه هوش داشته باشه بخاطر همین اولین اعتراضی که مطرح کرد و جوابشو داد The Theological Objection یا اعتراض الهیاتی بود که در جواب افرادی بود که میگفتن خدا فقط به انسان قدرت تفکر داده و ماشین روح نداره، پس نمیتونه فکر کنه؛
اما تورینگ اینطوری به این اعتراض جواب داده بود :
اگه خدا همهچیزو ممکن ساخته، چرا نتونه به یه ماشین توانایی فکر کردن بده؟ پس این اعتراض شما داره خدا رو محدود میکنه.
@Linuxor
Forwarded from کانال مهرداد لینوکس
اگر تحت تاثیر ویژگی developer-specific ویندوز سرور 2025 به اسم Dev Drive که از فناوری ReFS (که در سرور 2012 معرفی و از ویندوز ۸ به دسکتاپ اضافه شده) قرار گرفته اید
✅ در مورد ZFS و BTRFS بیشتر مطالعه کنید😏
🤬و سر لایسنس ZFS هم به Oracle فحش بدید
✅ در مورد ZFS و BTRFS بیشتر مطالعه کنید😏
🤬و سر لایسنس ZFS هم به Oracle فحش بدید
اگر علاقه داشتید یک زمانی در موردش مینویسم