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 فحش بدید
اگر علاقه داشتید یک زمانی در موردش مینویسم
Forwarded from Gopher Academy
🔵 عنوان مقاله
httptap: View HTTP/HTTPS Requests Made by Any Linux Program
🟢 خلاصه مقاله:
این متن درباره یک ردیاب HTTP محدود به فرایند و مبتنی بر زبان برنامهنویسی Go است که بدون نیاز به دسترسیهای ریشه (root) قابل اجرا است. این ابزار فقط از فضاهای نام شبکهای در لینوکس پشتیبانی میکند و قابلیت رمزگشایی ترافیک TLS را دارد به این ترتیب که یک مرکز احراز هویت (CA) را بلافاصله و بهصورت خودکار تولید میکند. این ویژگیها ردیاب را ابزاری مفید برای عیبیابی یا بررسی ارتباطات خارجی نرمافزارها و وابستگیهای آنها فراهم میآورد، که ممکن است بدون اطلاع کاربر، اطلاعاتی را به خارج منتقل کنند.
🟣لینک مقاله:
https://golangweekly.com/link/165337/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
httptap: View HTTP/HTTPS Requests Made by Any Linux Program
🟢 خلاصه مقاله:
این متن درباره یک ردیاب HTTP محدود به فرایند و مبتنی بر زبان برنامهنویسی Go است که بدون نیاز به دسترسیهای ریشه (root) قابل اجرا است. این ابزار فقط از فضاهای نام شبکهای در لینوکس پشتیبانی میکند و قابلیت رمزگشایی ترافیک TLS را دارد به این ترتیب که یک مرکز احراز هویت (CA) را بلافاصله و بهصورت خودکار تولید میکند. این ویژگیها ردیاب را ابزاری مفید برای عیبیابی یا بررسی ارتباطات خارجی نرمافزارها و وابستگیهای آنها فراهم میآورد، که ممکن است بدون اطلاع کاربر، اطلاعاتی را به خارج منتقل کنند.
🟣لینک مقاله:
https://golangweekly.com/link/165337/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - monasticacademy/httptap: View HTTP/HTTPS requests made by any Linux program
View HTTP/HTTPS requests made by any Linux program - monasticacademy/httptap
Forwarded from DevTwitter | توییت برنامه نویسی
بسته به نوعِ کاری که میخواهید انجام دهید (حذفِ نویز، رفعِ تاری، رنگیکردن، بازسازیِ چهره ...) و نوعِ تصویر، بهترین مدل میتونه متفاوت باشه. هیچ مدلِ واحدِ ایدهآلی برایِ همهٔ کاربردها وجود نداره. این سایت بیش از ۸۰۰ مدل رو با هم مقایسه کرده.
phhofm.github.io/upscale/
@DevTwitter | <Ayub Kokabi/>
phhofm.github.io/upscale/
@DevTwitter | <Ayub Kokabi/>
Forwarded from C & micro & fpga (فرهاد ناصری زاده 🐍)
آموزش FPGA
Course Link ==> https://www.udemy.com/course/vivado-learn-from-the-beginning-and-with-pcie-full-project/?couponCode=0C80338B08BBE0C73B70
Join Our Telegram Group: https://news.1rj.ru/str/c_micro
Course Link ==> https://www.udemy.com/course/vivado-learn-from-the-beginning-and-with-pcie-full-project/?couponCode=0C80338B08BBE0C73B70
Join Our Telegram Group: https://news.1rj.ru/str/c_micro
Udemy
Vivado Basics: Learn FPGA Design with a PCIe Project
Master FPGA Development with Vivado: Design Xilinx FPGAs from Scratch Using VHDL or Verilog
Forwarded from DevOps Labdon
پادکست نیمچه برنامه نویس:
این پادکست به شکل روان و داستانی موضوعاتی را در حوزهی دواپس و برنامه نویسی روایت میکند.
مثلا در چند اپیزود اخیر به روایت و بررسی کالبدشکافی داون تایم شرکت های بزرگ پرداخته است.
اپیزود های کوتاه و جذاب این پادکست به صورت هفتگی منتشر میشوند.
میتوانید کانال این پادکست را در کستباکس دنبال کنید:
https://castbox.fm/vh/6294201
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
این پادکست به شکل روان و داستانی موضوعاتی را در حوزهی دواپس و برنامه نویسی روایت میکند.
مثلا در چند اپیزود اخیر به روایت و بررسی کالبدشکافی داون تایم شرکت های بزرگ پرداخته است.
اپیزود های کوتاه و جذاب این پادکست به صورت هفتگی منتشر میشوند.
میتوانید کانال این پادکست را در کستباکس دنبال کنید:
https://castbox.fm/vh/6294201
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
Forwarded from Go Casts 🚀
بهتره برنامه گولنگی که مینویسید بتونه از panicهای احتمالای recover کنه خودش رو، چون اگه recover نشه برنامه crash میکنه و باعث میشه کل functionalityهای سرویس (برنامه) بره رو هوا. البته اگه مثلا روی kuber باشید یا با docker-compose باشه یا حتی daemon باشه میتونید restart کنید بصورت خودکار برنامه رو، اما خب اگه اون تیکه از برنامه که داره panic میکنه در hot path باشه خیلی زود مجدد مشکل بوجود میاد.
یه نکته مهمی که در مورد goroutineها وجود داره اینه که اگه شما روی goroutine اصلی (parent) مکانیزم recover در نظر بگیرید تاثیری روی goroutine ساخته شده child نداره و اگه child به هر دلیلی panic کنه ریکاور نمیشه.
خب حالا سوال پیش میاد که ما باید روی هر goroutineی که در برنامه میسازیم یا همون اصطلاحا spawn میشه مکانیزم recover در نظر بگیریم؟
جواب واضحی براش ندارم ولی چند تا نکته دارم که فکر میکنم کمک کنه.
یکی اینکه روی پروسه های long-runningتون حتما panic recover بذارید، مثلا اگه http server دارید معمولا خودشون یه recover middleware دارن فریمورک ها که میشه فعالش کرد.
اگه مثلا یه goroutine دارید که broker consumer هست خوبه که panic recover داشته باشه.
اگه جایی استفاده پیچیده از channelها دارید که confidence ندارید روی فهم communicationشون، چون روی close شدن panic میکنه بهتره recover داشته باشید.
در مورد goroutineهایی که lifetime کوتاهی دارن مثلا قراره یه sms ارسال کنه یا یه http request بزنه لازم نیست تنظیم بشه احتمالا. ولی بهتره یه سری اصول رو کلا رعایت کنید که از panic پرهیز بشه، مثلا تا جایی که میشه و لازم نیست از pointer استفاده نکنید…
این مقاله کوتاه یه تیکه کد آماده کرده که panic رو راحت تر ریکاور کنید در توابع مختلف
Recover panics in all Goroutines you start
https://dev.ribic.ba/recover-panics-goroutines/
نکته آخری هم که دارم اینه که استفاده از panic recover نباید به عنوان یه practice عمومی همه جا استفاده بشه، وجود panic احتمالی نشانه ای برای وجود باگ در پیاده سازی ست که بهتره ریشه موضوع و مشکل پیدا بشه و حل بشه، داشتن ریکاور صرفا برای اینه که تا زمان پیدا کردن مشکل سیستم بصورت reliable کارش رو ادامه بده.
تو تابع panic recover بهتره به اندازه کافی لاگ و متریک خوب بذارید که زودتر مشکل رو پیدا کنید.
@gocasts
یه نکته مهمی که در مورد goroutineها وجود داره اینه که اگه شما روی goroutine اصلی (parent) مکانیزم recover در نظر بگیرید تاثیری روی goroutine ساخته شده child نداره و اگه child به هر دلیلی panic کنه ریکاور نمیشه.
خب حالا سوال پیش میاد که ما باید روی هر goroutineی که در برنامه میسازیم یا همون اصطلاحا spawn میشه مکانیزم recover در نظر بگیریم؟
جواب واضحی براش ندارم ولی چند تا نکته دارم که فکر میکنم کمک کنه.
یکی اینکه روی پروسه های long-runningتون حتما panic recover بذارید، مثلا اگه http server دارید معمولا خودشون یه recover middleware دارن فریمورک ها که میشه فعالش کرد.
اگه مثلا یه goroutine دارید که broker consumer هست خوبه که panic recover داشته باشه.
اگه جایی استفاده پیچیده از channelها دارید که confidence ندارید روی فهم communicationشون، چون روی close شدن panic میکنه بهتره recover داشته باشید.
در مورد goroutineهایی که lifetime کوتاهی دارن مثلا قراره یه sms ارسال کنه یا یه http request بزنه لازم نیست تنظیم بشه احتمالا. ولی بهتره یه سری اصول رو کلا رعایت کنید که از panic پرهیز بشه، مثلا تا جایی که میشه و لازم نیست از pointer استفاده نکنید…
این مقاله کوتاه یه تیکه کد آماده کرده که panic رو راحت تر ریکاور کنید در توابع مختلف
Recover panics in all Goroutines you start
https://dev.ribic.ba/recover-panics-goroutines/
نکته آخری هم که دارم اینه که استفاده از panic recover نباید به عنوان یه practice عمومی همه جا استفاده بشه، وجود panic احتمالی نشانه ای برای وجود باگ در پیاده سازی ست که بهتره ریشه موضوع و مشکل پیدا بشه و حل بشه، داشتن ریکاور صرفا برای اینه که تا زمان پیدا کردن مشکل سیستم بصورت reliable کارش رو ادامه بده.
تو تابع panic recover بهتره به اندازه کافی لاگ و متریک خوب بذارید که زودتر مشکل رو پیدا کنید.
@gocasts
Emir Ribic
Recover panics in all Goroutines you start - Emir Ribic
Why you should always recover from panics in all Goroutines you start
Forwarded from DevTwitter | توییت برنامه نویسی
#Java
امروز گفتم برم ببینم یک جاوا دولوپر چیا باید بلد باشه که رسیدم به این عکس که خیلی خوب و کامل بود
@DevTwitter | <Mori/>
امروز گفتم برم ببینم یک جاوا دولوپر چیا باید بلد باشه که رسیدم به این عکس که خیلی خوب و کامل بود
@DevTwitter | <Mori/>
Forwarded from DevTwitter | توییت برنامه نویسی
این پکیج رو ساختم و روی npm پابلیش کردم
پکیج cli دم دستی و باحالیه
میتونید استراکچر کل فایل و ها و فولدر ها رو در یک ساختار درختی داشته باشید برای درک ساختار پروژه/دایکتوری
نیازی به نصب هم نیست و میتونید مستقیما با npx استفاده کنید
https://github.com/mohammadkhakshoor/tree-lens
@DevTwitter | <Mohammad, The DevOne/>
پکیج cli دم دستی و باحالیه
میتونید استراکچر کل فایل و ها و فولدر ها رو در یک ساختار درختی داشته باشید برای درک ساختار پروژه/دایکتوری
نیازی به نصب هم نیست و میتونید مستقیما با npx استفاده کنید
https://github.com/mohammadkhakshoor/tree-lens
@DevTwitter | <Mohammad, The DevOne/>
Forwarded from Python Hints
۹ تا ازون اسکلا رو اینجا هم داریم 🤣😂🤣
تعداد اسکلا داره میره بالا ۴۴ تا شد 🤣😂🤣
تعداد اسکلا داره میره بالا ۴۴ تا شد 🤣😂🤣
Forwarded from Future Pulse Persian
📚 معرفی دو کتاب عالی در زمینه ساختمان داده و الگوریتمها
اگر به دنبال منابع قوی برای یادگیری ساختمان دادهها (Data Structures) و الگوریتمها (Algorithms) هستید، این دو کتاب را از دست ندهید:👇
🔵https://skybooks.ir/products/Grokking-Algorithms
Table of Contents
1. Introduction to algorithms
2. Selection sort
3. Recursion
4. Quicksort
5. Hash tables
6. Beadth-first search
7. Trees
8. Balanced trees
9. Dijkstra’s algorithm
10. Greedy algorithms
11. Dynamic programming
12. k-nearest neighbors
13. where to go next
➖➖➖➖➖➖➖➖
🔵https://skybooks.ir/products/Grokking-Data-Structures
Table of Contents
1. Introducing data structures: Why you should learn about data structures
2. Static arrays: Building your first data structure
3. Sorted arrays: Searching faster, at a price
4. Big-O notation: A framework for measuring algorithm efficiency
5. Dynamic arrays: Handling dynamically sized datasets
6. Linked lists: A flexible dynamic collection
7. Abstract data types: Designing the simplest container—the bag
8. Stacks: Piling up data before processing it
9. Queues: Keeping information in the same order as it arrives
10. Priority queues and heaps: Handling data according to its priority
11. Binary search trees: A balanced container
12. Dictionaries and hash tables: How to build and use associative arrays
13. Graphs: Learning how to model complex relationships in data
اگر به دنبال منابع قوی برای یادگیری ساختمان دادهها (Data Structures) و الگوریتمها (Algorithms) هستید، این دو کتاب را از دست ندهید:👇
🔵https://skybooks.ir/products/Grokking-Algorithms
Table of Contents
1. Introduction to algorithms
2. Selection sort
3. Recursion
4. Quicksort
5. Hash tables
6. Beadth-first search
7. Trees
8. Balanced trees
9. Dijkstra’s algorithm
10. Greedy algorithms
11. Dynamic programming
12. k-nearest neighbors
13. where to go next
➖➖➖➖➖➖➖➖
🔵https://skybooks.ir/products/Grokking-Data-Structures
Table of Contents
1. Introducing data structures: Why you should learn about data structures
2. Static arrays: Building your first data structure
3. Sorted arrays: Searching faster, at a price
4. Big-O notation: A framework for measuring algorithm efficiency
5. Dynamic arrays: Handling dynamically sized datasets
6. Linked lists: A flexible dynamic collection
7. Abstract data types: Designing the simplest container—the bag
8. Stacks: Piling up data before processing it
9. Queues: Keeping information in the same order as it arrives
10. Priority queues and heaps: Handling data according to its priority
11. Binary search trees: A balanced container
12. Dictionaries and hash tables: How to build and use associative arrays
13. Graphs: Learning how to model complex relationships in data
Forwarded from Sudoer (Morteza Bashsiz)
سناریو شماره ۱۱ - کوشته شدن پراسس بخاطر کمبود مموری
توی این سناریو متوجه میشیم که سرویس انجینکسمون بخاطر کمبود مموری کوشته میشه
https://youtu.be/koSXviSHvCY
توی این سناریو متوجه میشیم که سرویس انجینکسمون بخاطر کمبود مموری کوشته میشه
https://youtu.be/koSXviSHvCY
Forwarded from Sudoer (Morteza Bashsiz)
سناریو شماره ۱۰ - افت پرفورمنس بخاطر DNS
توی این ویدیو یه سرویس API داریم که پرفورمنسش افت داشته. توی بررسیها متوجه شدیم که دلیلش عدم پاسخگویی درست DNS هست
https://youtu.be/TGSugQt2fXg
توی این ویدیو یه سرویس API داریم که پرفورمنسش افت داشته. توی بررسیها متوجه شدیم که دلیلش عدم پاسخگویی درست DNS هست
https://youtu.be/TGSugQt2fXg
Forwarded from DevTwitter | توییت برنامه نویسی
این اپ به طرز عجیبی حجم ویدئو رو کم میکنه
کیفیت هم میشه تقریبا بدون افت درنظر گرفت، توی این مدت چندتا اپ مختلف مثل vlc و HandBreak رو تست کردم و CompressO با اختلاف شاهکار بود
برای همه پلتفرمها در دسترسه
https://github.com/codeforreal1/compressO
@DevTwitter | <Hosse!n :)/>
کیفیت هم میشه تقریبا بدون افت درنظر گرفت، توی این مدت چندتا اپ مختلف مثل vlc و HandBreak رو تست کردم و CompressO با اختلاف شاهکار بود
برای همه پلتفرمها در دسترسه
https://github.com/codeforreal1/compressO
@DevTwitter | <Hosse!n :)/>
Forwarded from Laravel News
Handling Request Data Presence in Laravel https://laravel-news.com/laravel-when-has
Laravel News
Handling Request Data Presence in Laravel - Laravel News
Unlock the power of Laravel's whenHas method for handling request data presence. Discover how to process optional fields and execute conditional logic based on input availability.